Ignore error when setting DSCP value

Setting DSCP is additional feature and failure to enable it should not
abort download entirely.  This change fixes the bug that windows build
does not perform bittorrent downloads.
pull/220/merge
Tatsuhiro Tsujikawa 2014-03-30 14:14:28 +09:00
parent 551adc5133
commit f0473dc34d
1 changed files with 14 additions and 6 deletions

View File

@ -535,15 +535,23 @@ void SocketCore::setTcpNodelay(bool f)
void SocketCore::applyIpDscp()
{
int family = getAddressFamily();
if(family == AF_INET) {
setSockOpt(IPPROTO_IP, IP_TOS, &ipDscp_, sizeof(ipDscp_));
if(ipDscp_ == 0) {
return;
}
try {
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_));
}
else if(family == AF_INET6) {
setSockOpt(IPPROTO_IPV6, IPV6_TCLASS, &ipDscp_, sizeof(ipDscp_));
}
#endif
} catch(RecoverableException& e) {
A2_LOG_INFO_EX("Applying DSCP value failed", e);
}
}
void SocketCore::setNonBlockingMode()