UPnP in libpurple
rgovostes at gmail.com
Sat Jun 28 00:43:46 EDT 2008
I'm hoping to tackle some UPnP bugs in libpurple in the near future.
In my own experiences, libpurple does not have an explicit timeout
built-in, and my Linksys router doesn't seem to like the request
libpurple is sending it. It takes exactly 10 minutes for my router to
decide that it's not going to honor the request, whereupon libpurple
sends a second request, requiring another 10 minute wait. The result
is that any file transfer or direct connect request takes 20 minutes
to go through.
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.
More information about the Devel