Dave Page wrote:
It, or some related patch appears to have broken the build on buildfarm member 
snake.

I haven't had time to  investigate.

/D

Atached patch fixes it and also adds proper gai_strerror for windows.
(It's patch against CVS *after* Chucks patch was aplied)

--
Regards
Petr Jelinek (PJMODOS)
Index: src/include/getaddrinfo.h
===================================================================
RCS file: /projects/cvsroot/pgsql/src/include/getaddrinfo.h,v
retrieving revision 1.15
diff -c -r1.15 getaddrinfo.h
*** src/include/getaddrinfo.h   27 Jul 2005 12:44:10 -0000      1.15
--- src/include/getaddrinfo.h   25 Aug 2005 09:39:09 -0000
***************
*** 30,35 ****
--- 30,46 ----
  
  /* Various macros that ought to be in <netdb.h>, but might not be */
  
+ #ifdef WIN32
+ #define EAI_AGAIN     WSATRY_AGAIN
+ #define EAI_BADFLAGS  WSAEINVAL
+ #define EAI_FAIL      WSANO_RECOVERY
+ #define EAI_FAMILY    WSAEAFNOSUPPORT
+ #define EAI_MEMORY    WSA_NOT_ENOUGH_MEMORY
+ #define EAI_NODATA    WSANO_DATA
+ #define EAI_NONAME    WSAHOST_NOT_FOUND
+ #define EAI_SERVICE   WSATYPE_NOT_FOUND
+ #define EAI_SOCKTYPE  WSAESOCKTNOSUPPORT 
+ #else
  #ifndef EAI_FAIL
  #define EAI_BADFLAGS  (-1)
  #define EAI_NONAME            (-2)
***************
*** 40,46 ****
  #define EAI_SERVICE           (-8)
  #define EAI_MEMORY            (-10)
  #define EAI_SYSTEM            (-11)
! #endif
  
  #ifndef AI_PASSIVE
  #define AI_PASSIVE            0x0001
--- 51,58 ----
  #define EAI_SERVICE           (-8)
  #define EAI_MEMORY            (-10)
  #define EAI_SYSTEM            (-11)
! #endif /* !EAI_FAIL */
! #endif /* !WIN32 */
  
  #ifndef AI_PASSIVE
  #define AI_PASSIVE            0x0001
Index: src/port/getaddrinfo.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/port/getaddrinfo.c,v
retrieving revision 1.18
diff -c -r1.18 getaddrinfo.c
*** src/port/getaddrinfo.c      24 Aug 2005 22:13:23 -0000      1.18
--- src/port/getaddrinfo.c      25 Aug 2005 09:39:25 -0000
***************
*** 104,110 ****
                /* We found a dll, so now get the addresses of the routines */
  
                getaddrinfo_ptr = GetProcAddress(hLibrary, "getaddrinfo");
!               freeaddrinfo_ptr = GetProcAddress(hLibrary, "freeaddrinfo");
                getnameinfo_ptr = GetProcAddress(hLibrary, "getnameinfo");
  
                /*
--- 104,110 ----
                /* We found a dll, so now get the addresses of the routines */
  
                getaddrinfo_ptr = GetProcAddress(hLibrary, "getaddrinfo");
!               freeaddrinfo_ptr = (freeaddrinfo_ptr_t)GetProcAddress(hLibrary, 
"freeaddrinfo");
                getnameinfo_ptr = GetProcAddress(hLibrary, "getnameinfo");
  
                /*
***************
*** 277,283 ****
                 */
                if (haveNativeWindowsIPv6routines())
                {
!                       (*freeaddrinfo_ptr) (node, service, hintp, res);
                        return;
                }
  #endif
--- 277,283 ----
                 */
                if (haveNativeWindowsIPv6routines())
                {
!                       (*freeaddrinfo_ptr) (res);
                        return;
                }
  #endif
***************
*** 292,298 ****
  const char *
  gai_strerror(int errcode)
  {
! #ifdef HAVE_HSTRERROR
        int                     hcode;
  
        switch (errcode)
--- 292,298 ----
  const char *
  gai_strerror(int errcode)
  {
! #ifdef        HAVE_HSTRERROR
        int                     hcode;
  
        switch (errcode)
***************
*** 318,323 ****
--- 318,336 ----
                        return "Unknown host";
                case EAI_AGAIN:
                        return "Host name lookup failure";
+               /* Errors below are probably WIN32 only */
+               case EAI_BADFLAGS:
+                       return "Invalid argument";
+               case EAI_FAMILY:
+                       return "Address family not supported";
+               case EAI_MEMORY:
+                       return "Not enough memory";
+               case EAI_NODATA:
+                       return "No host data of that type was found";
+               case EAI_SERVICE:
+                       return "Class type not found";
+               case EAI_SOCKTYPE:
+                       return "Socket type not supported";
                case EAI_FAIL:
                default:
                        return "Unknown server error";
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to