Daniel-Constantin Mierla writes:
> I pushed a patch to compare ips using parsed structure. Initial version
> was using string comparison, which is not safe for ipv6, but I was
> looking for a quick proof of a solution.
> 
> The role of this ip comparison is to figure out what is the interface
> name for which to get scope id. So we get the ifname by walking all of
> the network interfaces and seeing which one has the respective ip
> assigned to it.
> 
> Can you try and see if now works better?

Thanks, now this code in udp_server.c works:

        } else if (addr->s.sa_family==AF_INET6){
                if (setsockopt(sock_info->socket, IPPROTO_IPV6, IPV6_TCLASS,
                                        (void*)&optval, sizeof(optval)) ==-1) {
                        LM_WARN("setsockopt v6 tos: %s\n", strerror(errno));
                        /* continue since this is not critical */
                }
                LM_INFO("Setting scope of %s\n", sock_info->address_str.s);
                addr->sin6.sin6_scope_id =
                        ipv6_get_netif_scope(sock_info->address_str.s);
    }

-- Juha

_______________________________________________
Kamailio (SER) - Users Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to