This patch maps getsockopt() SO_ERROR optval's from their Winsock versions to
their corresponding errno versions.  This prevents strerror(optval) from
generating cryptic messages like:

    error 10061

instead of:

    Connection refused

Jason

-- 
Jason Tishler
Director, Software Engineering       Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corp.               Fax:   +1 (732) 264-8798
82 Bethany Road, Suite 7             Email: [EMAIL PROTECTED]
Hazlet, NJ 07730 USA                 WWW:   http://www.dothill.com
Index: net.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/net.cc,v
retrieving revision 1.43
diff -u -p -r1.43 net.cc
--- net.cc      2001/03/20 19:50:28     1.43
+++ net.cc      2001/04/02 18:36:43
@@ -584,10 +584,22 @@ cygwin_getsockopt (int fd,
        case SO_OOBINLINE:
          name="SO_OOBINLINE";
          break;
+       case SO_ERROR:
+         name="SO_ERROR";
+         break;
        }
 
       res = getsockopt (h->get_socket (), level, optname,
                                       (char *) optval, (int *) optlen);
+
+      /* For the SO_ERROR case, convert optval from Winsock to errno errors. */
+      if (optname == SO_ERROR)
+       {
+         int *p = (int *) optval;
+         for (int i = 0; errmap[i].w != 0; ++i)
+           if (*p == errmap[i].w)
+             *p = errmap[i].e;
+       }
 
       if (res)
        set_winsock_errno ();
Mon Apr  2 14:58:53 2001  Jason Tishler <[EMAIL PROTECTED]>

        * net.cc (cygwin_getsockopt): Add SO_ERROR support -- specifically,
        the mapping of Winsock optval's to their corresponding errno versions.

Reply via email to