Re: [HACKERS] Re: WIN32 errno patch
От | Mikhail Terekhov |
---|---|
Тема | Re: [HACKERS] Re: WIN32 errno patch |
Дата | |
Msg-id | 3B7D67CF.37578368@emc.com обсуждение исходный текст |
Ответ на | Re: Re: [HACKERS] Re: WIN32 errno patch (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-patches |
Tom Lane wrote: > > 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? > On my system (NT4 sp.6, VC6.0) the FormatMessage function always returns 0 for errno in the [10000 - 10100] range (winsock errors). That's why i've wrote that this function knows nothing about sockets errors. Using this function looks very impressive but the net result is null. If Magnus could get some meaningfull messages for winsock errors from FormatMessage I'd be glad to know what is missing from my setup. Regards, Mikhail Terekhov
В списке pgsql-patches по дате отправления: