each time a device been added, UpnpInit() is called, on exit, UpnpFinish()
is called, but the memories allocated by ThreadPoolInit() may lost because
there's no code to call ThreadPoolShutdown() to release the memories. And
inet_ntoa() is not thread safe, so in my patch, I substitute inet_ntoa()
with inet_ntop(). Your comments are welcome, thank you!
The ThreadPoolShutdown call is already added to both 1.6.6 and 1.8.0, thanks for the heads-up on it.
Both branches still use inet_ntoa though. Since 1.8.0 is otherwise IPV6 capable, this is something I'll do a patch for soon.
Committed.