summaryrefslogtreecommitdiff
path: root/src/SocketCore.cc
diff options
context:
space:
mode:
authorAlexander Amanuel <iavael@yandex-team.ru>2014-03-11 23:22:50 +0400
committerAlexander Amanuel <iavael@yandex-team.ru>2014-03-12 15:22:46 +0400
commitdccd8192a43f4d5928e3ec65ae0c22016452ff06 (patch)
tree02bbcfffda2ca9d69618d6051fe163c9e6fce1e0 /src/SocketCore.cc
parentfd2380de2653610381fc0b6bca2c4e84a902dd45 (diff)
Added DSCP support for IPv6 sockets
Diffstat (limited to 'src/SocketCore.cc')
-rw-r--r--src/SocketCore.cc10
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()