liblo
liblo copied to clipboard
Help wanted with IPv6 support.
Current there are some failures with IPv6 support. It is not easy to solve, so if anyone wants to help it's a nice challenge.
Firstly, it's not clear to me how multicast works with IPv6, so test_multicast()
fails. There are a couple of TODO notes in the source regarding this. Specifically,
setsockopt(s->sockets[0].fd, IPPROTO_IP, IPV6_MULTICAST_IF,
&s->addr_if.a.addr6, s->addr_if.size
appears to return an error on Linux.
However, if you compile with --enable-ipv6
and comment-out test_multicast()
, there are still some errors in basic liblo functionality when communicating with the subtest
subprocess.
subtest: creating new address `osc.udp://bicycle15:17776/'
<-- subtest_handler()
subtest: got reply (/subtest)
<-- subtest_reply_handler()
<-- subtest_reply_handler()
<-- subtest_reply_handler()
<-- subtest_reply_handler()
<-- subtest_reply_handler()
<-- subtest_reply_handler()
<-- subtest_reply_handler()
<-- subtest_reply_handler()
<-- subtest_reply_handler()
<-- subtest_reply_handler()
<-- subtest_reply_handler()
FAILED reply_count == 3 at testlo.c:1441
test run not completed
liblo test FAILED
I was originally going to open a separate issue to note about the README that Pure Data vanilla versions 0.51 and greater support IPv6, but I think it might be more helpful to share our networking helper functions for handling ailists and multicast settings: s_net.h and s_net.c. It was definitely a slog to add proper IPv6 handling, so I hope this is useful to liblo which I personally use in many projects.
Thank you @danomatika ! I will look at those when I get a chance to work on this again, much appreciated.