The functions lo_server_new() and lo_server_thread_new() take a very long time to execute on Debian Etch (2007-02-04). The reason seems to be that the called function getnameinfo() takes a very long time to execute, on the order of 5 to 10 seconds. The comments in the code says that this is the "IPv6-friendly" way, so I tried adding some #ifdef ENABLE_IPV6 around it and that made things much snappier (pretty much instantaneous) when liblo is built without --enable-ipv6. I'm attaching the patch.
Patch that makes the use of getnameinfo() depend on ENABLE_IPV6
Logged In: NO
By the way, I am lars dot luthman at gmail . Not logged in automatically for some reason.
Logged In: YES
user_id=711618
Originator: NO
Thanks for the bug report, I have implemented this changed in Subversion Trunk,
Thanks,
nick.
Logged In: YES
user_id=1353907
Originator: NO
Hi,
I was about to submit this bug.
I would not mark it as solved, if most GNU/Linux distributions distribute a liblo version with ipv6 support enabled we would have to suffer this slowness in our applications.
Is there any way to get ipv6 friendlyness without calling getnameinfo()?
If the answer is just *no*, could you please let ipv6 support be determined at realtime (for example with a lo_server_new_noipv6, or with a LO_UDP_NOIPV6 protocol or sth like that in case you don't want to break backwards compatibility), so applications developers can be sure that the users of their apps won't suffer annoying delays.
Lots of thanks.