diff --git a/daemon/call.c b/daemon/call.c index 27d730c..059d200 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -1176,14 +1176,16 @@ static int get_port6(struct udp_fd *r, u_int16_t p, struct callmaster *m) { nonblock(fd); reuseaddr(fd); - tos = m->conf.tos; + ipv6only(fd, 0); + if (m->conf.tos) + setsockopt(fd, IPPROTO_IP, IP_TOS, &m->conf.tos, sizeof(m->conf.tos)); #ifdef IPV6_TCLASS + tos = m->conf.tos; if (tos) setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, &tos, sizeof(tos)); #else #warning "Will not set IPv6 traffic class" #endif - ipv6only(fd, 0); ZERO(sin); sin.sin6_family = AF_INET6;