UPnP in libpurple
Evan Schoenberg
evan.s at dreskin.net
Sat Jun 28 00:51:42 EDT 2008
You're using "UPnP" and "nat-pmp" interchangeably, I think, as
evidenced in the quoted paragraph below. Be careful, as they are
entirely separate ways to approach the same problem. UPnP is
implemented in libpurple/upnp.c, while nat-pmp is in libpurple/nat-
pmp.c. Both modules are used only by libpurple/network.c.
I don't know anything about libpurple UPnP implementation in terms of
its functionality, as my router (an Apple Airport Express) supports
only nat-pmp. However, both from experience and as the implementor of
the current nat-pmp functionality, I can speak to nat-pmp.
On Jun 28, 2008, at 12:43 AM, Ryan Govostes wrote:
> The simplest way to address this is to add a relatively short timeout
> to UPnP requests. However, a better solution would be to use requests
> that are better-formed. For this, I recommend using MiniUPnP's
> libnatpmp (http://miniupnp.free.fr/libnatpmp.html), used in
> Transmission and elsewhere.
>
> The license of MiniUPnP is fairly unrestrictive and merely requires
> attribution in source and binary distributions.
libnatpmp didn't exist in its current, mature form way back when.
It's definitely a superior implementation from what I've seen. I fully
support replacing the nitty-gritty code in libpurple/natpmp.c with
libnatpmp's innards.
Cheers,
Evan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pidgin.im/pipermail/devel/attachments/20080628/0e9e769c/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part
URL: <http://pidgin.im/pipermail/devel/attachments/20080628/0e9e769c/attachment.sig>
More information about the Devel
mailing list