]> sourceware.org Git - newlib-cygwin.git/commitdiff
* net.cc (cygwin_getsockopt): Drop erroneous double conversion of error
authorCorinna Vinschen <corinna@vinschen.de>
Fri, 2 Sep 2011 09:52:08 +0000 (09:52 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Fri, 2 Sep 2011 09:52:08 +0000 (09:52 +0000)
code returned by SOL_SOCKET/SO_ERROR.  Fix error handling.

winsup/cygwin/ChangeLog
winsup/cygwin/net.cc

index b0c4656fd19e9435a127cde58b1913bfb841b68f..6aaaa7cb433adc833cbf5146a86be78a0ea1e70c 100644 (file)
@@ -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>
 
        * lc_msg.h: Regenerate.
index 6b63f4b0d4495fd31305a4223ff3d4dfc477b375..e55dd03ed3464436b59f7e24f33396d7a51277cd 100644 (file)
@@ -844,8 +844,9 @@ cygwin_getsockopt (int fd, int level, int optname, void *optval,
        optname = convert_ws1_ip_optname (optname);
       res = getsockopt (fh->get_socket (), level, optname, (char *) optval,
                        (int *) optlen);
-
-      if (level == SOL_SOCKET)
+      if (res == SOCKET_ERROR)
+       set_winsock_errno ();
+      else if (level == SOL_SOCKET)
        {
          switch (optname)
            {
@@ -873,16 +874,6 @@ cygwin_getsockopt (int fd, int level, int optname, void *optval,
              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)",
This page took 0.039206 seconds and 5 git commands to generate.