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 |