* net.cc (cygwin_getsockopt): Drop erroneous double conversion of error
code returned by SOL_SOCKET/SO_ERROR. Fix error handling.
This commit is contained in:
parent
d94522a76a
commit
35e8bb2b7e
@ -1,3 +1,8 @@
|
|||||||
|
2011-09-02 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* net.cc (cygwin_getsockopt): Drop erroneous double conversion of error
|
||||||
|
code returned by SOL_SOCKET/SO_ERROR. Fix error handling.
|
||||||
|
|
||||||
2011-09-01 Corinna Vinschen <corinna@vinschen.de>
|
2011-09-01 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* lc_msg.h: Regenerate.
|
* lc_msg.h: Regenerate.
|
||||||
|
@ -844,8 +844,9 @@ cygwin_getsockopt (int fd, int level, int optname, void *optval,
|
|||||||
optname = convert_ws1_ip_optname (optname);
|
optname = convert_ws1_ip_optname (optname);
|
||||||
res = getsockopt (fh->get_socket (), level, optname, (char *) optval,
|
res = getsockopt (fh->get_socket (), level, optname, (char *) optval,
|
||||||
(int *) optlen);
|
(int *) optlen);
|
||||||
|
if (res == SOCKET_ERROR)
|
||||||
if (level == SOL_SOCKET)
|
set_winsock_errno ();
|
||||||
|
else if (level == SOL_SOCKET)
|
||||||
{
|
{
|
||||||
switch (optname)
|
switch (optname)
|
||||||
{
|
{
|
||||||
@ -873,16 +874,6 @@ cygwin_getsockopt (int fd, int level, int optname, void *optval,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (optname == SO_ERROR)
|
|
||||||
{
|
|
||||||
int *e = (int *) optval;
|
|
||||||
|
|
||||||
debug_printf ("WinSock SO_ERROR = %d", *e);
|
|
||||||
*e = find_winsock_errno (*e);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (res)
|
|
||||||
set_winsock_errno ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
syscall_printf ("%d = getsockopt (%d, %d, 0x%x, %p, %p)",
|
syscall_printf ("%d = getsockopt (%d, %d, 0x%x, %p, %p)",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user