UPnP in libpurple

Ryan Govostes 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.

Ryan Govostes

More information about the Devel mailing list