From bcc020eefba14f2650b0e9dd1ccad798b17f241f Mon Sep 17 00:00:00 2001 From: Richard Fuchs <rfuchs@sipwise.com> Date: Mon, 24 Feb 2014 11:25:43 -0500 Subject: [PATCH] fix IPv4 TOS if IPv6 is enabled --- daemon/call.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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;