On Mon, Jun 30, 2014 at 10:20 AM, Ben Pfaff <b...@nicira.com> wrote: > On Mon, Jun 30, 2014 at 10:13:54AM -0700, Gurucharan Shetty wrote: >> On Thu, Jun 26, 2014 at 1:26 PM, Ben Pfaff <b...@nicira.com> wrote: >> > On Tue, Jun 24, 2014 at 11:52:54AM -0700, Gurucharan Shetty wrote: >> >> On Windows ECONNRESET is WSAECONNRESET. >> >> >> >> Also, "unix" connections are done through TCP sockets. >> >> For the 'refuse-connection' test, the error message for Windows >> >> is WSAECONNRESET instead of EPIPE. >> >> >> >> Signed-off-by: Gurucharan Shetty <gshe...@nicira.com> >> > >> > I'm a little confused about why Windows has error codes like ECONNRESET >> > if it never uses them. Is there any reason not to add something like >> Currently, Windows has kept errno.h constants separate from winsock2 >> error constants. The WinSock error values are the BSD error values >> with a "WinSock API base" error (WSABASEERR) value added to each of >> them. >> >> http://msdn.microsoft.com/en-us/library/windows/desktop/ms737828(v=vs.85).aspx >> >> Though one can possibly do as you suggest below (apparently it was the >> default a few years ago), Microsoft now recommends against doing it >> for possible conflicts. In case of ECONNRESET, there is probably no >> issues in doing what you suggest. > > Hmm. > > Here is another possibility. We have this sock_errno() function that > all checks for socket errnos must go through. Can it detect that the > value is a WSA* and subtract WSABASEERR to transform it into a standard > error code? I was wrong when I previously said "The WinSock error values are the BSD error values with a "WinSock API base" error (WSABASEERR) value added to each of them." So, the above solution wouldn't work. I only realized it after implementing the above suggestion. I misunderstood the intent of WSABASEERR while reading the header file.
So the question is should we handle the case of ECONNRESET as a one-off thing and handle it separately like you suggested. i.e., #if _WIN32 #undef ECONNRESET #define ECONNRESET WSAECONNRESET #endif _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev