diff options
author | Bruce Momjian <bruce@momjian.us> | 2006-07-06 02:12:32 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2006-07-06 02:12:32 +0000 |
commit | 591e90a4d9dd5698dd5fd01d0d8620233c326da4 (patch) | |
tree | 8d907037b2804a787dfdaf07952c2ca1ebe328e1 /src/include | |
parent | a7aa0b818970579238e1424a81363eeb3c0b358c (diff) |
WIN32 fixes:
I take out patch for this as a promise. This is client-build support of
MS-VC6+.
Fix for different getaddrinfo structure ordering on Win32 for IPv6.
Hiroshi Saito
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/getaddrinfo.h | 23 | ||||
-rw-r--r-- | src/include/pg_config.h.win32 | 10 |
2 files changed, 32 insertions, 1 deletions
diff --git a/src/include/getaddrinfo.h b/src/include/getaddrinfo.h index 6393ccfeae0..ee60b71d840 100644 --- a/src/include/getaddrinfo.h +++ b/src/include/getaddrinfo.h @@ -15,7 +15,7 @@ * * Copyright (c) 2003-2006, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/include/getaddrinfo.h,v 1.20 2006/06/07 22:24:45 momjian Exp $ + * $PostgreSQL: pgsql/src/include/getaddrinfo.h,v 1.21 2006/07/06 02:12:32 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -41,7 +41,9 @@ #define EAI_SYSTEM (-11) #else /* WIN32 */ #ifdef WIN32_ONLY_COMPILER +#ifndef WSA_NOT_ENOUGH_MEMORY #define WSA_NOT_ENOUGH_MEMORY (WSAENOBUFS) +#endif #define WSATYPE_NOT_FOUND (WSABASEERR+109) #endif #define EAI_AGAIN WSATRY_AGAIN @@ -89,6 +91,7 @@ #ifndef HAVE_STRUCT_ADDRINFO +#ifndef WIN32 struct addrinfo { int ai_flags; @@ -100,6 +103,24 @@ struct addrinfo char *ai_canonname; struct addrinfo *ai_next; }; +#else +/* + * The order of the structure elements on Win32 doesn't match the + * order specified in the standard, but we have to match it for + * IPv6 to work. + */ +struct addrinfo +{ + int ai_flags; + int ai_family; + int ai_socktype; + int ai_protocol; + size_t ai_addrlen; + char *ai_canonname; + struct sockaddr *ai_addr; + struct addrinfo *ai_next; +}; +#endif #endif /* HAVE_STRUCT_ADDRINFO */ diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32 index b2cf29246ea..a805aa4da5c 100644 --- a/src/include/pg_config.h.win32 +++ b/src/include/pg_config.h.win32 @@ -247,13 +247,17 @@ /* Define to 1 if constants of type 'long long int' should have the suffix LL. */ +#if (_MSC_VER > 1200) #define HAVE_LL_CONSTANTS 1 +#endif /* Define to 1 if `long int' works and is 64 bits. */ /* #undef HAVE_LONG_INT_64 */ /* Define to 1 if `long long int' works and is 64 bits. */ +#if (_MSC_VER > 1200) #define HAVE_LONG_LONG_INT_64 +#endif /* Define to 1 if you have the `memmove' function. */ #define HAVE_MEMMOVE 1 @@ -395,7 +399,9 @@ /* #undef HAVE_STRTOUQ */ /* Define to 1 if the system has the type `struct addrinfo'. */ +#if (_MSC_VER > 1200) #define HAVE_STRUCT_ADDRINFO 1 +#endif /* Define to 1 if the system has the type `struct cmsgcred'. */ /* #undef HAVE_STRUCT_CMSGCRED */ @@ -410,10 +416,14 @@ /* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */ /* Define to 1 if the system has the type `struct sockaddr_storage'. */ +#if (_MSC_VER > 1200) #define HAVE_STRUCT_SOCKADDR_STORAGE 1 +#endif /* Define to 1 if `ss_family' is member of `struct sockaddr_storage'. */ +#if (_MSC_VER > 1200) #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 +#endif /* Define to 1 if `ss_len' is member of `struct sockaddr_storage'. */ /* #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN */ |