Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef ADDR_INFO_H
00031 #define ADDR_INFO_H
00032
00033
00034 #undef EAI_ADDRFAMILY
00035 #undef EAI_AGAIN
00036 #undef EAI_BADFLAGS
00037 #undef EAI_FAIL
00038 #undef EAI_FAMILY
00039 #undef EAI_MEMORY
00040 #undef EAI_NODATA
00041 #undef EAI_NONAME
00042 #undef EAI_SERVICE
00043 #undef EAI_SOCKTYPE
00044 #undef EAI_SYSTEM
00045 #undef EAI_BADHINTS
00046 #undef EAI_PROTOCOL
00047 #undef EAI_MAX
00048
00049 #undef AI_PASSIVE
00050 #undef AI_CANONNAME
00051 #undef AI_NUMERICHOST
00052 #undef AI_NUMERICSERV
00053 #undef AI_ALL
00054 #undef AI_ADDRCONFIG
00055 #undef AI_V4MAPPED
00056 #undef AI_DEFAULT
00057
00058 #undef NI_NOFQDN
00059 #undef NI_NUMERICHOST
00060 #undef NI_NAMEREQD
00061 #undef NI_NUMERICSERV
00062 #undef NI_DGRAM
00063
00064 #ifndef __P
00065 # ifdef HAVE_PROTOTYPES
00066 # define __P(args) args
00067 # else
00068 # define __P(args) ()
00069 # endif
00070 #endif
00071
00072
00073
00074
00075
00076
00077
00078 #define EAI_ADDRFAMILY 1
00079 #define EAI_AGAIN 2
00080 #define EAI_BADFLAGS 3
00081 #define EAI_FAIL 4
00082 #define EAI_FAMILY 5
00083 #define EAI_MEMORY 6
00084 #define EAI_NODATA 7
00085 #define EAI_NONAME 8
00086 #define EAI_SERVICE 9
00087 #define EAI_SOCKTYPE 10
00088 #define EAI_SYSTEM 11
00089 #define EAI_BADHINTS 12
00090 #define EAI_PROTOCOL 13
00091 #define EAI_MAX 14
00092
00093
00094
00095
00096 #define AI_PASSIVE 0x00000001
00097 #define AI_CANONNAME 0x00000002
00098 #define AI_NUMERICHOST 0x00000004
00099 #define AI_NUMERICSERV 0x00000008
00100
00101 #ifndef __HAIKU__
00102 #undef AI_MASK
00103 #define AI_MASK (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV)
00104 #endif
00105
00106 #define AI_ALL 0x00000100
00107 #define AI_V4MAPPED_CFG 0x00000200
00108 #define AI_ADDRCONFIG 0x00000400
00109 #define AI_V4MAPPED 0x00000800
00110
00111 #define AI_DEFAULT (AI_V4MAPPED_CFG | AI_ADDRCONFIG)
00112
00113
00114
00115
00116 #ifndef NI_MAXHOST
00117 #define NI_MAXHOST 1025
00118 #define NI_MAXSERV 32
00119 #endif
00120
00121
00122
00123
00124 #define NI_NOFQDN 0x00000001
00125 #define NI_NUMERICHOST 0x00000002
00126 #define NI_NAMEREQD 0x00000004
00127 #define NI_NUMERICSERV 0x00000008
00128 #define NI_DGRAM 0x00000010
00129
00130 #ifndef HAVE_TYPE_STRUCT_ADDRINFO
00131 struct addrinfo {
00132 int ai_flags;
00133 int ai_family;
00134 int ai_socktype;
00135 int ai_protocol;
00136 size_t ai_addrlen;
00137 char *ai_canonname;
00138 struct sockaddr *ai_addr;
00139 struct addrinfo *ai_next;
00140 };
00141 #endif
00142
00143 #ifndef HAVE_GETADDRINFO
00144 #undef getaddrinfo
00145 #define getaddrinfo getaddrinfo__compat
00146 #endif
00147 #ifndef HAVE_GETNAMEINFO
00148 #undef getnameinfo
00149 #define getnameinfo getnameinfo__compat
00150 #endif
00151 #ifndef HAVE_FREEHOSTENT
00152 #undef freehostent
00153 #define freehostent freehostent__compat
00154 #endif
00155 #ifndef HAVE_FREEADDRINFO
00156 #undef freeaddrinfo
00157 #define freeaddrinfo freeaddrinfo__compat
00158 #endif
00159
00160 extern int getaddrinfo __P((
00161 const char *hostname, const char *servname,
00162 const struct addrinfo *hints,
00163 struct addrinfo **res));
00164
00165 extern int getnameinfo __P((
00166 const struct sockaddr *sa,
00167 socklen_t salen,
00168 char *host,
00169 socklen_t hostlen,
00170 char *serv,
00171 socklen_t servlen,
00172 int flags));
00173
00174 extern void freehostent __P((struct hostent *));
00175 extern void freeaddrinfo __P((struct addrinfo *));
00176 extern
00177 #ifdef GAI_STRERROR_CONST
00178 const
00179 #endif
00180 char *gai_strerror __P((int));
00181
00182
00183
00184
00185 #ifndef offsetof
00186 #define offsetof(p_type,field) ((size_t)&(((p_type *)0)->field))
00187 #endif
00188
00189 #endif
00190