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