Browse Source

Merge branch 'dscp-support' of https://github.com/iavael/aria2 into iavael-dscp-support

Tatsuhiro Tsujikawa 11 years ago
parent
commit
a67096522d
1 changed files with 9 additions and 1 deletions
  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()