liblo icon indicating copy to clipboard operation
liblo copied to clipboard

Help wanted with IPv6 support.

Open radarsat1 opened this issue 7 years ago • 2 comments

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

radarsat1 avatar Aug 29 '17 18:08 radarsat1

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.

danomatika avatar May 29 '22 07:05 danomatika

Thank you @danomatika ! I will look at those when I get a chance to work on this again, much appreciated.

radarsat1 avatar Sep 09 '22 08:09 radarsat1