Explorar el Código

Added DSCP support for IPv6 sockets

Alexander Amanuel hace 11 años
padre
commit
dccd8192a4
Se han modificado 1 ficheros con 9 adiciones y 1 borrados
  1. 9 1
      src/SocketCore.cc

+ 9 - 1
src/SocketCore.cc

@@ -535,7 +535,15 @@ void SocketCore::setTcpNodelay(bool f)
 
 void SocketCore::applyIpDscp()
 {
-  setSockOpt(IPPROTO_IP, IP_TOS, &ipDscp_, sizeof(ipDscp_));
+  int family = getAddressFamily();
+  if(family == AF_INET) {
+    setSockOpt(IPPROTO_IP, IP_TOS, &ipDscp_, sizeof(ipDscp_));
+  }
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
+  else if(family == AF_INET6) {
+    setSockOpt(IPPROTO_IPV6, IPV6_TCLASS, &ipDscp_, sizeof(ipDscp_));
+  }
+#endif
 }
 
 void SocketCore::setNonBlockingMode()