Re: Re: [HACKERS] Re: WIN32 errno patch - Mailing list pgsql-patches

From Tom Lane
Subject Re: Re: [HACKERS] Re: WIN32 errno patch
Date
Msg-id 29834.998062689@sss.pgh.pa.us
Whole thread Raw
In response to Re: [HACKERS] Re: WIN32 errno patch  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: Re: [HACKERS] Re: WIN32 errno patch
List pgsql-patches
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> I will try to apply it within the next 48 hours.

This isn't the right patch to apply, since Mikhail didn't fix the
strerror problem.  I have some code from Magnus Naeslund that purports
to handle the strerror issue, and will work it up into a patch real soon
now.

>> I've implemented the SOCK_ERRNO macro only because
>> both strerror and FormatMessage functions know nothing
>> about sockets errors.

FWIW, Magnus says this works:

#define SOCK_STRERROR my_sock_strerror

const char* my_sock_strerror(unsigned long eno){
    static char buf[512]; // i know, not threadsafe
    if (!FormatMessage(
            FORMAT_MESSAGE_FROM_SYSTEM |
            FORMAT_MESSAGE_IGNORE_INSERTS,
            0,eno,
            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
            buf,sizeof(buf)-1,
            0
           )){
      sprintf(buf,"Unknown socket error(%u)",eno);
    }
    buf[sizeof(buf)-1]='\0';
    return buf;
}


Anyone have any objections to it?

            regards, tom lane

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Added \n to libpq prints
Next
From: Bruce Momjian
Date:
Subject: Re: Re: [HACKERS] Re: WIN32 errno patch