| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 PostgreSQL Database Management System | |
| 3 (formerly known as Postgres, then as Postgres95) | |
| 4 | |
| 5 Portions Copyright (c) 1996-2005, The PostgreSQL Global Development Group | |
| 6 | |
| 7 Portions Copyright (c) 1994, The Regents of the University of California | |
| 8 | |
| 9 Permission to use, copy, modify, and distribute this software and its | |
| 10 documentation for any purpose, without fee, and without a written agreement | |
| 11 is hereby granted, provided that the above copyright notice and this paragraph | |
| 12 and the following two paragraphs appear in all copies. | |
| 13 | |
| 14 IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR | |
| 15 DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING | |
| 16 LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, | |
| 17 EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF | |
| 18 SUCH DAMAGE. | |
| 19 | |
| 20 THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, | |
| 21 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY | |
| 22 AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS | |
| 23 ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS | |
| 24 TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. | |
| 25 | |
| 26 */ | |
| 27 | |
| 28 /*------------------------------------------------------------------------- | |
| 29 * | |
| 30 * getaddrinfo.h | |
| 31 * Support getaddrinfo() on platforms that don't have it. | |
| 32 * | |
| 33 * Note: we use our own routines on platforms that don't HAVE_STRUCT_ADDRINFO, | |
| 34 * whether or not the library routine getaddrinfo() can be found. This | |
| 35 * policy is needed because on some platforms a manually installed libbind.a | |
| 36 * may provide getaddrinfo(), yet the system headers may not provide the | |
| 37 * struct definitions needed to call it. To avoid conflict with the libbind | |
| 38 * definition in such cases, we rename our routines to pg_xxx() via macros. | |
| 39 * | |
| 40 | |
| 41 in lib/replace we use rep_xxx() | |
| 42 | |
| 43 * This code will also work on platforms where struct addrinfo is defined | |
| 44 * in the system headers but no getaddrinfo() can be located. | |
| 45 * | |
| 46 * Copyright (c) 2003-2007, PostgreSQL Global Development Group | |
| 47 * | |
| 48 *------------------------------------------------------------------------- | |
| 49 */ | |
| 50 #ifndef GETADDRINFO_H | |
| 51 #define GETADDRINFO_H | |
| 52 | |
| 53 #ifndef HAVE_GETADDRINFO | |
| 54 | |
| 55 /* Rename private copies per comments above */ | |
| 56 #ifdef getaddrinfo | |
| 57 #undef getaddrinfo | |
| 58 #endif | |
| 59 #define getaddrinfo rep_getaddrinfo | |
| 60 #define HAVE_GETADDRINFO | |
| 61 | |
| 62 #ifdef freeaddrinfo | |
| 63 #undef freeaddrinfo | |
| 64 #endif | |
| 65 #define freeaddrinfo rep_freeaddrinfo | |
| 66 #define HAVE_FREEADDRINFO | |
| 67 | |
| 68 #ifdef gai_strerror | |
| 69 #undef gai_strerror | |
| 70 #endif | |
| 71 #define gai_strerror rep_gai_strerror | |
| 72 #define HAVE_GAI_STRERROR | |
| 73 | |
| 74 #ifdef getnameinfo | |
| 75 #undef getnameinfo | |
| 76 #endif | |
| 77 #define getnameinfo rep_getnameinfo | |
| 78 #ifndef HAVE_GETNAMEINFO | |
| 79 #define HAVE_GETNAMEINFO | |
| 80 #endif | |
| 81 | |
| 82 extern int rep_getaddrinfo(const char *node, const char *service, | |
| 83 const struct addrinfo * hints, struct addrinfo ** res); | |
| 84 extern void rep_freeaddrinfo(struct addrinfo * res); | |
| 85 extern const char *rep_gai_strerror(int errcode); | |
| 86 extern int rep_getnameinfo(const struct sockaddr * sa, socklen_t salen, | |
| 87 char *node, size_t nodelen, | |
| 88 char *service, size_t servicelen, int flags); | |
| 89 #endif /* HAVE_GETADDRINFO */ | |
| 90 | |
| 91 #endif /* GETADDRINFO_H */ | |
| OLD | NEW |