* net.cc (cygwin_setsockopt): Ignore IPV6_TCLASS the same way as IP_TOS.

This commit is contained in:
Corinna Vinschen 2014-04-16 08:58:20 +00:00
parent b5a7cb02cd
commit c0efb4de1c
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2014-04-16 Corinna Vinschen <corinna@vinschen.de>
* net.cc (cygwin_setsockopt): Ignore IPV6_TCLASS the same way as IP_TOS.
2014-04-12 Corinna Vinschen <corinna@vinschen.de> 2014-04-12 Corinna Vinschen <corinna@vinschen.de>
* uinfo.cc (pwdgrp::fetch_account_from_windows): Fix gid evaluation * uinfo.cc (pwdgrp::fetch_account_from_windows): Fix gid evaluation

View File

@ -848,13 +848,22 @@ cygwin_setsockopt (int fd, int level, int optname, const void *optval,
Sidenote: The reasoning for dropping ToS in Win2K is that ToS Sidenote: The reasoning for dropping ToS in Win2K is that ToS
per RFC 1349 is incompatible with DiffServ per RFC 2474/2475. per RFC 1349 is incompatible with DiffServ per RFC 2474/2475.
We just ignore the return value of setting IP_TOS entirely. */ We just ignore the return value of setting IP_TOS entirely.
CV 2014-04-16: Same for IPV6_TCLASS
FIXME: Same for IPV6_RECVTCLASS? */
if (level == IPPROTO_IP && optname == IP_TOS if (level == IPPROTO_IP && optname == IP_TOS
&& WSAGetLastError () == WSAEINVAL) && WSAGetLastError () == WSAEINVAL)
{ {
debug_printf ("Faked IP_TOS success"); debug_printf ("Faked IP_TOS success");
res = 0; res = 0;
} }
else if (level == IPPROTO_IPV6 && optname == IPV6_TCLASS
&& WSAGetLastError () == WSAENOPROTOOPT)
{
debug_printf ("Faked IPV6_TCLASS success");
res = 0;
}
else else
set_winsock_errno (); set_winsock_errno ();
} }