Can you try without hard coding the IP address there, but use the value
from the listen address? That will show if works properly with the
config based values.
As I said, the link local might be tricky to deal with on some operating
systems and are not commonly used for traffic, so having an option to
disable/enable binding to it seems appropriate here. Also, finding the
scope id requires walking though networking interfaces for all IPv6
addresses, which can be a costly at startup.
Cheers,
Daniel
On 23.04.19 07:16, Juha Heinanen wrote:
Daniel-Constantin Mierla writes:
Anyhow, your code has hardcoded interface name, I
added a helper
function that tries to get the scope by matching the ip address when
walking over network interfaces. The commit:
https://github.com/kamailio/kamailio/commit/ce1138d2d8962296de2867d5751abf7…
Can you try using that function to get the scope id?
I tried by changing my
udp_server.c test line:
addr->sin6.sin6_scope_id = if_nametoindex("wlp1s0");
to
addr->sin6.sin6_scope_id =
addr->ipv6_get_netif_scope("fe80::6e29:95ff:fe7d:37e6");
and the test again worked fine:
Apr 23 08:10:41 salmon sip-proxy[21888]: Listening on
Apr 23 08:10:41 salmon sip-proxy[21888]: udp: FE80:0:0:0:6E29:95FF:FE7D:37E6
[FE80:0:0:0:6E29:95FF:FE7D:37E6]:5060
So rather than skipping link local addresses, ipv6_get_netif_scope could
be used to find the scope id.
-- Juha
--
Daniel-Constantin Mierla --
www.asipto.com
www.twitter.com/miconda --
www.linkedin.com/in/miconda
Kamailio World Conference - May 6-8, 2019 --
www.kamailioworld.com