diff options
| author | Alexander Amanuel <iavael@yandex-team.ru> | 2014-03-11 23:22:50 +0400 |
|---|---|---|
| committer | Alexander Amanuel <iavael@yandex-team.ru> | 2014-03-12 15:22:46 +0400 |
| commit | dccd8192a43f4d5928e3ec65ae0c22016452ff06 (patch) | |
| tree | 02bbcfffda2ca9d69618d6051fe163c9e6fce1e0 | |
| parent | fd2380de2653610381fc0b6bca2c4e84a902dd45 (diff) | |
Added DSCP support for IPv6 sockets
| -rw-r--r-- | src/SocketCore.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/SocketCore.cc b/src/SocketCore.cc index fb78dc02..f560d939 100644 --- a/src/SocketCore.cc +++ b/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() |
