1 #ifndef _NETDB_H 2 #include <resolv/netdb.h> 3 4 #ifndef _ISOMAC 5 # include <stdint.h> 6 /* Macros for accessing h_errno from inside libc. */ 7 # if IS_IN_LIB 8 # undef h_errno 9 # if IS_IN (libc) 10 # define h_errno __libc_h_errno 11 # else 12 # define h_errno __h_errno 13 # endif 14 extern __thread int h_errno attribute_tls_model_ie; 15 # endif /* IS_IN_LIB */ 16 # define __set_h_errno(x) (h_errno = (x)) 17 18 libc_hidden_proto (hstrerror) 19 libc_hidden_proto (innetgr) 20 libc_hidden_proto (rcmd_af) 21 libc_hidden_proto (rexec_af) 22 libc_hidden_proto (rresvport_af) 23 libc_hidden_proto (ruserok_af) 24 25 libc_hidden_proto (getaddrinfo) 26 libc_hidden_proto (getnameinfo) 27 libc_hidden_proto (freeaddrinfo) 28 libc_hidden_proto (gai_strerror) 29 libc_hidden_proto (__h_errno_location) 30 31 /* Document internal interfaces. */ 32 extern int __gethostent_r (struct hostent *__restrict __result_buf, 33 char *__restrict __buf, size_t __buflen, 34 struct hostent **__restrict __result, 35 int *__restrict __h_errnop) attribute_hidden; 36 extern int __old_gethostent_r (struct hostent *__restrict __result_buf, 37 char *__restrict __buf, size_t __buflen, 38 struct hostent **__restrict __result, 39 int *__restrict __h_errnop); 40 41 extern int __gethostbyaddr_r (const void *__restrict __addr, 42 socklen_t __len, int __type, 43 struct hostent *__restrict __result_buf, 44 char *__restrict __buf, size_t __buflen, 45 struct hostent **__restrict __result, 46 int *__restrict __h_errnop) 47 attribute_hidden; 48 extern int __old_gethostbyaddr_r (const void *__restrict __addr, 49 socklen_t __len, int __type, 50 struct hostent *__restrict __result_buf, 51 char *__restrict __buf, size_t __buflen, 52 struct hostent **__restrict __result, 53 int *__restrict __h_errnop); 54 55 extern int __gethostbyaddr2_r (const void *__restrict __addr, 56 socklen_t __len, int __type, 57 struct hostent *__restrict __result_buf, 58 char *__restrict __buf, size_t __buflen, 59 struct hostent **__restrict __result, 60 int *__restrict __h_errnop, 61 int32_t *ttlp); 62 63 extern int __gethostbyname_r (const char *__restrict __name, 64 struct hostent *__restrict __result_buf, 65 char *__restrict __buf, size_t __buflen, 66 struct hostent **__restrict __result, 67 int *__restrict __h_errnop) 68 attribute_hidden; 69 extern int __old_gethostbyname_r (const char *__restrict __name, 70 struct hostent *__restrict __result_buf, 71 char *__restrict __buf, size_t __buflen, 72 struct hostent **__restrict __result, 73 int *__restrict __h_errnop); 74 75 extern int __gethostbyname2_r (const char *__restrict __name, int __af, 76 struct hostent *__restrict __result_buf, 77 char *__restrict __buf, size_t __buflen, 78 struct hostent **__restrict __result, 79 int *__restrict __h_errnop) 80 attribute_hidden; 81 extern int __old_gethostbyname2_r (const char *__restrict __name, int __af, 82 struct hostent *__restrict __result_buf, 83 char *__restrict __buf, size_t __buflen, 84 struct hostent **__restrict __result, 85 int *__restrict __h_errnop); 86 87 extern int __gethostbyname3_r (const char *__restrict __name, int __af, 88 struct hostent *__restrict __result_buf, 89 char *__restrict __buf, size_t __buflen, 90 struct hostent **__restrict __result, 91 int *__restrict __h_errnop, 92 int32_t *ttlp, char **canonp); 93 94 extern int __getnetent_r (struct netent *__restrict __result_buf, 95 char *__restrict __buf, size_t __buflen, 96 struct netent **__restrict __result, 97 int *__restrict __h_errnop) attribute_hidden; 98 extern int __old_getnetent_r (struct netent *__restrict __result_buf, 99 char *__restrict __buf, size_t __buflen, 100 struct netent **__restrict __result, 101 int *__restrict __h_errnop); 102 103 extern int __getnetbyaddr_r (uint32_t __net, int __type, 104 struct netent *__restrict __result_buf, 105 char *__restrict __buf, size_t __buflen, 106 struct netent **__restrict __result, 107 int *__restrict __h_errnop) 108 attribute_hidden; 109 extern int __old_getnetbyaddr_r (uint32_t __net, int __type, 110 struct netent *__restrict __result_buf, 111 char *__restrict __buf, size_t __buflen, 112 struct netent **__restrict __result, 113 int *__restrict __h_errnop); 114 115 extern int __getnetbyname_r (const char *__restrict __name, 116 struct netent *__restrict __result_buf, 117 char *__restrict __buf, size_t __buflen, 118 struct netent **__restrict __result, 119 int *__restrict __h_errnop) 120 attribute_hidden; 121 extern int __old_getnetbyname_r (const char *__restrict __name, 122 struct netent *__restrict __result_buf, 123 char *__restrict __buf, size_t __buflen, 124 struct netent **__restrict __result, 125 int *__restrict __h_errnop); 126 127 extern int __getservent_r (struct servent *__restrict __result_buf, 128 char *__restrict __buf, size_t __buflen, 129 struct servent **__restrict __result) 130 attribute_hidden; 131 extern int __old_getservent_r (struct servent *__restrict __result_buf, 132 char *__restrict __buf, size_t __buflen, 133 struct servent **__restrict __result); 134 135 extern int __getservbyname_r (const char *__restrict __name, 136 const char *__restrict __proto, 137 struct servent *__restrict __result_buf, 138 char *__restrict __buf, size_t __buflen, 139 struct servent **__restrict __result) 140 attribute_hidden; 141 extern int __old_getservbyname_r (const char *__restrict __name, 142 const char *__restrict __proto, 143 struct servent *__restrict __result_buf, 144 char *__restrict __buf, size_t __buflen, 145 struct servent **__restrict __result); 146 147 extern int __getservbyport_r (int __port, 148 const char *__restrict __proto, 149 struct servent *__restrict __result_buf, 150 char *__restrict __buf, size_t __buflen, 151 struct servent **__restrict __result) 152 attribute_hidden; 153 extern int __old_getservbyport_r (int __port, 154 const char *__restrict __proto, 155 struct servent *__restrict __result_buf, 156 char *__restrict __buf, size_t __buflen, 157 struct servent **__restrict __result); 158 159 extern int __getprotoent_r (struct protoent *__restrict __result_buf, 160 char *__restrict __buf, size_t __buflen, 161 struct protoent **__restrict __result) 162 attribute_hidden; 163 extern int __old_getprotoent_r (struct protoent *__restrict __result_buf, 164 char *__restrict __buf, size_t __buflen, 165 struct protoent **__restrict __result); 166 167 extern int __getprotobyname_r (const char *__restrict __name, 168 struct protoent *__restrict __result_buf, 169 char *__restrict __buf, size_t __buflen, 170 struct protoent **__restrict __result) 171 attribute_hidden; 172 extern int __old_getprotobyname_r (const char *__restrict __name, 173 struct protoent *__restrict __result_buf, 174 char *__restrict __buf, size_t __buflen, 175 struct protoent **__restrict __result); 176 177 extern int __getprotobynumber_r (int __proto, 178 struct protoent *__restrict __res_buf, 179 char *__restrict __buf, size_t __buflen, 180 struct protoent **__restrict __result) 181 attribute_hidden; 182 extern int __old_getprotobynumber_r (int __proto, 183 struct protoent *__restrict __res_buf, 184 char *__restrict __buf, size_t __buflen, 185 struct protoent **__restrict __result); 186 187 extern int __getnetgrent_r (char **__restrict __hostp, 188 char **__restrict __userp, 189 char **__restrict __domainp, 190 char *__restrict __buffer, size_t __buflen) 191 attribute_hidden; 192 193 extern int ruserpass (const char *host, const char **aname, 194 const char **apass); 195 libc_hidden_proto (ruserpass) 196 197 # if __TIMESIZE == 64 198 # define __gai_suspend_time64 __gai_suspend 199 # else 200 extern int __gai_suspend_time64 (const struct gaicb *const list[], int ent, 201 const struct __timespec64 *timeout); 202 # if PTHREAD_IN_LIBC 203 libc_hidden_proto (__gai_suspend_time64) 204 # else 205 libanl_hidden_proto (__gai_suspend_time64) 206 # endif 207 # endif 208 209 /* The following definition has been removed from the public header 210 since we don't want people to use them. */ 211 212 #define AI_DEFAULT (AI_V4MAPPED | AI_ADDRCONFIG) 213 214 #include <inet/netgroup.h> 215 216 extern enum nss_status _nss_netgroup_parseline (char **cursor, 217 struct __netgrent *result, 218 char *buffer, size_t buflen, 219 int *errnop); 220 libc_hidden_proto (_nss_netgroup_parseline) 221 222 #define DECLARE_NSS_PROTOTYPES(service) \ 223 extern enum nss_status _nss_ ## service ## _setprotoent (int); \ 224 extern enum nss_status _nss_ ## service ## _endprotoent (void); \ 225 extern enum nss_status _nss_ ## service ## _getprotoent_r \ 226 (struct protoent *proto, char *buffer, size_t buflen, \ 227 int *errnop); \ 228 extern enum nss_status _nss_ ## service ## _getprotobyname_r \ 229 (const char *name, struct protoent *proto, \ 230 char *buffer, size_t buflen, int *errnop); \ 231 extern enum nss_status _nss_ ## service ## _getprotobynumber_r \ 232 (int number, struct protoent *proto, \ 233 char *buffer, size_t buflen, int *errnop); \ 234 extern enum nss_status _nss_ ## service ## _sethostent (int); \ 235 extern enum nss_status _nss_ ## service ## _endhostent (void); \ 236 extern enum nss_status _nss_ ## service ## _gethostent_r \ 237 (struct hostent *host, char *buffer, size_t buflen, \ 238 int *errnop, int *h_errnop); \ 239 extern enum nss_status _nss_ ## service ## _gethostbyname2_r \ 240 (const char *name, int af, struct hostent *host, \ 241 char *buffer, size_t buflen, int *errnop, \ 242 int *h_errnop); \ 243 extern enum nss_status _nss_ ## service ## _gethostbyname_r \ 244 (const char *name, struct hostent *host, char *buffer, \ 245 size_t buflen, int *errnop, int *h_errnop); \ 246 extern enum nss_status _nss_ ## service ## _gethostbyaddr_r \ 247 (const void *addr, socklen_t addrlen, int af, \ 248 struct hostent *host, char *buffer, size_t buflen, \ 249 int *errnop, int *h_errnop); \ 250 extern enum nss_status _nss_ ## service ## _setservent (int); \ 251 extern enum nss_status _nss_ ## service ## _endservent (void); \ 252 extern enum nss_status _nss_ ## service ## _getservent_r \ 253 (struct servent *serv, char *buffer, size_t buflen, \ 254 int *errnop); \ 255 extern enum nss_status _nss_ ## service ## _getservbyname_r \ 256 (const char *name, const char *protocol, \ 257 struct servent *serv, char *buffer, size_t buflen, \ 258 int *errnop); \ 259 extern enum nss_status _nss_ ## service ## _getservbyport_r \ 260 (int port, const char *protocol, struct servent *serv, \ 261 char *buffer, size_t buflen, int *errnop); \ 262 extern enum nss_status _nss_ ## service ## _setnetgrent \ 263 (const char *group, struct __netgrent *result); \ 264 extern enum nss_status _nss_ ## service ## _endnetgrent \ 265 (struct __netgrent *result); \ 266 extern enum nss_status _nss_ ## service ## _getnetgrent_r \ 267 (struct __netgrent *result, char *buffer, \ 268 size_t buflen, int *errnop); \ 269 extern enum nss_status _nss_ ## service ## _setnetent (int stayopen); \ 270 extern enum nss_status _nss_ ## service ## _endnetent (void); \ 271 extern enum nss_status _nss_ ## service ## _getnetent_r \ 272 (struct netent *net, char *buffer, size_t buflen, \ 273 int *errnop, int *herrnop); \ 274 extern enum nss_status _nss_ ## service ## _getnetbyname_r \ 275 (const char *name, struct netent *net, char *buffer, \ 276 size_t buflen, int *errnop, int *herrnop); \ 277 extern enum nss_status _nss_ ## service ## _getnetbyaddr_r \ 278 (uint32_t addr, int type, struct netent *net, \ 279 char *buffer, size_t buflen, int *errnop, \ 280 int *herrnop); \ 281 extern enum nss_status _nss_ ## service ## _endspent (void); 282 283 DECLARE_NSS_PROTOTYPES (compat) 284 DECLARE_NSS_PROTOTYPES (dns) 285 DECLARE_NSS_PROTOTYPES (files) 286 DECLARE_NSS_PROTOTYPES (hesiod) 287 288 #undef DECLARE_NSS_PROTOTYPES 289 290 #endif 291 292 #endif /* !_NETDB_H */ 293