1135549Sdes/* $FreeBSD$ */
2135549Sdes
3135549Sdes/*
4193149Sdougb * Copyright (C) 2004, 2005, 2007, 2009  Internet Systems Consortium, Inc. ("ISC")
5135549Sdes * Copyright (C) 2000, 2001  Internet Software Consortium.
6135549Sdes *
7193149Sdougb * Permission to use, copy, modify, and/or distribute this software for any
8135549Sdes * purpose with or without fee is hereby granted, provided that the above
9135549Sdes * copyright notice and this permission notice appear in all copies.
10135549Sdes *
11135549Sdes * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
12135549Sdes * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13135549Sdes * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
14135549Sdes * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15135549Sdes * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16135549Sdes * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17135549Sdes * PERFORMANCE OF THIS SOFTWARE.
18135549Sdes */
19135549Sdes
20234010Sdougb/* $Id: netdb.h.in,v 1.41 2009/01/18 23:48:14 tbox Exp $ */
21135549Sdes
22170224Sdougb/*! \file */
23170224Sdougb
24135549Sdes#ifndef LWRES_NETDB_H
25135549Sdes#define LWRES_NETDB_H 1
26135549Sdes
27135549Sdes#include <stddef.h>	/* Required on FreeBSD (and  others?) for size_t. */
28135549Sdes#include <netdb.h>	/* Contractual provision. */
29135549Sdes
30135549Sdes#include <lwres/lang.h>
31135549Sdes
32135549Sdes/*
33135549Sdes * Define if <netdb.h> does not declare struct addrinfo.
34135549Sdes */
35135549Sdes#undef ISC_LWRES_NEEDADDRINFO
36135549Sdes
37135549Sdes#ifdef ISC_LWRES_NEEDADDRINFO
38135549Sdesstruct addrinfo {
39135549Sdes	int		ai_flags;      /* AI_PASSIVE, AI_CANONNAME */
40135549Sdes	int		ai_family;     /* PF_xxx */
41135549Sdes	int		ai_socktype;   /* SOCK_xxx */
42135549Sdes	int		ai_protocol;   /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
43135549Sdes	size_t		ai_addrlen;    /* Length of ai_addr */
44135549Sdes	char		*ai_canonname; /* Canonical name for hostname */
45135549Sdes	struct sockaddr	*ai_addr;      /* Binary address */
46135549Sdes	struct addrinfo	*ai_next;      /* Next structure in linked list */
47135549Sdes};
48135549Sdes#endif
49135549Sdes
50135549Sdes/*
51135549Sdes * Undefine all #defines we are interested in as <netdb.h> may or may not have
52135549Sdes * defined them.
53135549Sdes */
54135549Sdes
55135549Sdes/*
56135549Sdes * Error return codes from gethostbyname() and gethostbyaddr()
57135549Sdes * (left in extern int h_errno).
58135549Sdes */
59135549Sdes
60135549Sdes#undef	NETDB_INTERNAL
61135549Sdes#undef	NETDB_SUCCESS
62135549Sdes#undef	HOST_NOT_FOUND
63135549Sdes#undef	TRY_AGAIN
64135549Sdes#undef	NO_RECOVERY
65135549Sdes#undef	NO_DATA
66135549Sdes#undef	NO_ADDRESS
67135549Sdes
68135549Sdes#define	NETDB_INTERNAL	-1	/* see errno */
69135549Sdes#define	NETDB_SUCCESS	0	/* no problem */
70135549Sdes#define	HOST_NOT_FOUND	1 /* Authoritative Answer Host not found */
71193149Sdougb#define	TRY_AGAIN	2 /* Non-Authoritative Host not found, or SERVERFAIL */
72135549Sdes#define	NO_RECOVERY	3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
73135549Sdes#define	NO_DATA		4 /* Valid name, no data record of requested type */
74135549Sdes#define	NO_ADDRESS	NO_DATA		/* no address, look for MX record */
75135549Sdes
76135549Sdes/*
77135549Sdes * Error return codes from getaddrinfo()
78135549Sdes */
79135549Sdes
80135549Sdes#undef	EAI_ADDRFAMILY
81135549Sdes#undef	EAI_AGAIN
82135549Sdes#undef	EAI_BADFLAGS
83135549Sdes#undef	EAI_FAIL
84135549Sdes#undef	EAI_FAMILY
85135549Sdes#undef	EAI_MEMORY
86135549Sdes#undef	EAI_NODATA
87135549Sdes#undef	EAI_NONAME
88135549Sdes#undef	EAI_SERVICE
89135549Sdes#undef	EAI_SOCKTYPE
90135549Sdes#undef	EAI_SYSTEM
91135549Sdes#undef	EAI_BADHINTS
92135549Sdes#undef	EAI_PROTOCOL
93135549Sdes#undef	EAI_MAX
94135549Sdes
95135549Sdes#define	EAI_ADDRFAMILY	 1	/* address family for hostname not supported */
96135549Sdes#define	EAI_AGAIN	 2	/* temporary failure in name resolution */
97135549Sdes#define	EAI_BADFLAGS	 3	/* invalid value for ai_flags */
98135549Sdes#define	EAI_FAIL	 4	/* non-recoverable failure in name resolution */
99135549Sdes#define	EAI_FAMILY	 5	/* ai_family not supported */
100135549Sdes#define	EAI_MEMORY	 6	/* memory allocation failure */
101135549Sdes#define	EAI_NODATA	 7	/* no address associated with hostname */
102135549Sdes#define	EAI_NONAME	 8	/* hostname nor servname provided, or not known */
103135549Sdes#define	EAI_SERVICE	 9	/* servname not supported for ai_socktype */
104135549Sdes#define	EAI_SOCKTYPE	10	/* ai_socktype not supported */
105135549Sdes#define	EAI_SYSTEM	11	/* system error returned in errno */
106135549Sdes#define EAI_BADHINTS	12
107135549Sdes#define EAI_PROTOCOL	13
108135549Sdes#define EAI_MAX		14
109135549Sdes
110135549Sdes/*
111135549Sdes * Flag values for getaddrinfo()
112135549Sdes */
113135549Sdes#undef	AI_PASSIVE
114135549Sdes#undef	AI_CANONNAME
115135549Sdes#undef	AI_NUMERICHOST
116135549Sdes
117135549Sdes#define	AI_PASSIVE	0x00000001
118135549Sdes#define	AI_CANONNAME	0x00000002
119135549Sdes#define AI_NUMERICHOST	0x00000004
120135549Sdes
121135549Sdes/*
122135549Sdes * Flag values for getipnodebyname()
123135549Sdes */
124135549Sdes#undef AI_V4MAPPED
125135549Sdes#undef AI_ALL
126135549Sdes#undef AI_ADDRCONFIG
127135549Sdes#undef AI_DEFAULT
128135549Sdes
129135549Sdes#define AI_V4MAPPED	0x00000008
130135549Sdes#define AI_ALL		0x00000010
131135549Sdes#define AI_ADDRCONFIG	0x00000020
132135549Sdes#define AI_DEFAULT	(AI_V4MAPPED|AI_ADDRCONFIG)
133135549Sdes
134135549Sdes/*
135135549Sdes * Constants for lwres_getnameinfo()
136135549Sdes */
137135549Sdes#undef	NI_MAXHOST
138135549Sdes#undef	NI_MAXSERV
139135549Sdes
140135549Sdes#define	NI_MAXHOST	1025
141135549Sdes#define	NI_MAXSERV	32
142135549Sdes
143135549Sdes/*
144135549Sdes * Flag values for lwres_getnameinfo()
145135549Sdes */
146135549Sdes#undef	NI_NOFQDN
147135549Sdes#undef	NI_NUMERICHOST
148135549Sdes#undef	NI_NAMEREQD
149135549Sdes#undef	NI_NUMERICSERV
150135549Sdes#undef	NI_DGRAM
151135549Sdes#undef	NI_NUMERICSCOPE
152135549Sdes
153135549Sdes#define	NI_NOFQDN	0x00000001
154135549Sdes#define	NI_NUMERICHOST	0x00000002
155135549Sdes#define	NI_NAMEREQD	0x00000004
156135549Sdes#define	NI_NUMERICSERV	0x00000008
157135549Sdes#define	NI_DGRAM	0x00000010
158135549Sdes#define	NI_NUMERICSCOPE	0x00000020	/*2553bis-00*/
159135549Sdes
160135549Sdes/*
161135549Sdes * Define if <netdb.h> does not declare struct rrsetinfo.
162135549Sdes */
163135549Sdes#define ISC_LWRES_NEEDRRSETINFO 1
164135549Sdes
165135549Sdes#ifdef ISC_LWRES_NEEDRRSETINFO
166135549Sdes/*
167135549Sdes * Structures for getrrsetbyname()
168135549Sdes */
169135549Sdesstruct rdatainfo {
170135549Sdes	unsigned int		rdi_length;
171135549Sdes	unsigned char		*rdi_data;
172135549Sdes};
173135549Sdes
174135549Sdesstruct rrsetinfo {
175135549Sdes	unsigned int		rri_flags;
176135549Sdes	int			rri_rdclass;
177135549Sdes	int			rri_rdtype;
178135549Sdes	unsigned int		rri_ttl;
179135549Sdes	unsigned int		rri_nrdatas;
180135549Sdes	unsigned int		rri_nsigs;
181135549Sdes	char			*rri_name;
182135549Sdes	struct rdatainfo	*rri_rdatas;
183135549Sdes	struct rdatainfo	*rri_sigs;
184135549Sdes};
185135549Sdes
186135549Sdes/*
187135549Sdes * Flags for getrrsetbyname()
188135549Sdes */
189135549Sdes#define RRSET_VALIDATED		0x00000001
190135549Sdes	/* Set was dnssec validated */
191135549Sdes
192135549Sdes/*
193135549Sdes * Return codes for getrrsetbyname()
194135549Sdes */
195135549Sdes#define ERRSET_SUCCESS		0
196135549Sdes#define ERRSET_NOMEMORY		1
197135549Sdes#define ERRSET_FAIL		2
198135549Sdes#define ERRSET_INVAL		3
199135549Sdes#define	ERRSET_NONAME	 	4
200135549Sdes#define	ERRSET_NODATA	 	5
201135549Sdes#endif
202135549Sdes
203135549Sdes/*
204135549Sdes * Define to map into lwres_ namespace.
205135549Sdes */
206135549Sdes
207135549Sdes#define LWRES_NAMESPACE
208135549Sdes
209135549Sdes#ifdef LWRES_NAMESPACE
210135549Sdes
211135549Sdes/*
212135549Sdes * Use our versions not the ones from the C library.
213135549Sdes */
214135549Sdes
215135549Sdes#ifdef getnameinfo
216135549Sdes#undef getnameinfo
217135549Sdes#endif
218135549Sdes#define getnameinfo lwres_getnameinfo
219135549Sdes
220135549Sdes#ifdef getaddrinfo
221135549Sdes#undef getaddrinfo
222135549Sdes#endif
223135549Sdes#define getaddrinfo lwres_getaddrinfo
224135549Sdes
225135549Sdes#ifdef freeaddrinfo
226135549Sdes#undef freeaddrinfo
227135549Sdes#endif
228135549Sdes#define freeaddrinfo lwres_freeaddrinfo
229135549Sdes
230135549Sdes#ifdef gai_strerror
231135549Sdes#undef gai_strerror
232135549Sdes#endif
233135549Sdes#define gai_strerror lwres_gai_strerror
234135549Sdes
235135549Sdes#ifdef herror
236135549Sdes#undef herror
237135549Sdes#endif
238135549Sdes#define herror lwres_herror
239135549Sdes
240135549Sdes#ifdef hstrerror
241135549Sdes#undef hstrerror
242135549Sdes#endif
243135549Sdes#define hstrerror lwres_hstrerror
244135549Sdes
245135549Sdes#ifdef getipnodebyname
246135549Sdes#undef getipnodebyname
247135549Sdes#endif
248135549Sdes#define getipnodebyname lwres_getipnodebyname
249135549Sdes
250135549Sdes#ifdef getipnodebyaddr
251135549Sdes#undef getipnodebyaddr
252135549Sdes#endif
253135549Sdes#define getipnodebyaddr lwres_getipnodebyaddr
254135549Sdes
255135549Sdes#ifdef freehostent
256135549Sdes#undef freehostent
257135549Sdes#endif
258135549Sdes#define freehostent lwres_freehostent
259135549Sdes
260135549Sdes#ifdef gethostbyname
261135549Sdes#undef gethostbyname
262135549Sdes#endif
263135549Sdes#define gethostbyname lwres_gethostbyname
264135549Sdes
265135549Sdes#ifdef gethostbyname2
266135549Sdes#undef gethostbyname2
267135549Sdes#endif
268135549Sdes#define gethostbyname2 lwres_gethostbyname2
269135549Sdes
270135549Sdes#ifdef gethostbyaddr
271135549Sdes#undef gethostbyaddr
272135549Sdes#endif
273135549Sdes#define gethostbyaddr lwres_gethostbyaddr
274135549Sdes
275135549Sdes#ifdef gethostent
276135549Sdes#undef gethostent
277135549Sdes#endif
278135549Sdes#define gethostent lwres_gethostent
279135549Sdes
280135549Sdes#ifdef sethostent
281135549Sdes#undef sethostent
282135549Sdes#endif
283135549Sdes#define sethostent lwres_sethostent
284135549Sdes
285135549Sdes#ifdef endhostent
286135549Sdes#undef endhostent
287135549Sdes#endif
288135549Sdes#define endhostent lwres_endhostent
289135549Sdes
290135549Sdes/* #define sethostfile lwres_sethostfile */
291135549Sdes
292135549Sdes#ifdef gethostbyname_r
293135549Sdes#undef gethostbyname_r
294135549Sdes#endif
295135549Sdes#define gethostbyname_r lwres_gethostbyname_r
296135549Sdes
297135549Sdes#ifdef gethostbyaddr_r
298135549Sdes#undef gethostbyaddr_r
299135549Sdes#endif
300135549Sdes#define gethostbyaddr_r lwres_gethostbyaddr_r
301135549Sdes
302135549Sdes#ifdef gethostent_r
303135549Sdes#undef gethostent_r
304135549Sdes#endif
305135549Sdes#define gethostent_r lwres_gethostent_r
306135549Sdes
307135549Sdes#ifdef sethostent_r
308135549Sdes#undef sethostent_r
309135549Sdes#endif
310135549Sdes#define sethostent_r lwres_sethostent_r
311135549Sdes
312135549Sdes#ifdef endhostent_r
313135549Sdes#undef endhostent_r
314135549Sdes#endif
315135549Sdes#define endhostent_r lwres_endhostent_r
316135549Sdes
317135549Sdes#ifdef getrrsetbyname
318135549Sdes#undef getrrsetbyname
319135549Sdes#endif
320135549Sdes#define getrrsetbyname lwres_getrrsetbyname
321135549Sdes
322135549Sdes#ifdef freerrset
323135549Sdes#undef freerrset
324135549Sdes#endif
325135549Sdes#define freerrset lwres_freerrset
326135549Sdes
327135549Sdes#ifdef notyet
328135549Sdes#define getservbyname lwres_getservbyname
329135549Sdes#define getservbyport lwres_getservbyport
330135549Sdes#define getservent lwres_getservent
331135549Sdes#define setservent lwres_setservent
332135549Sdes#define endservent lwres_endservent
333135549Sdes
334135549Sdes#define getservbyname_r lwres_getservbyname_r
335135549Sdes#define getservbyport_r lwres_getservbyport_r
336135549Sdes#define getservent_r lwres_getservent_r
337135549Sdes#define setservent_r lwres_setservent_r
338135549Sdes#define endservent_r lwres_endservent_r
339135549Sdes
340135549Sdes#define getprotobyname lwres_getprotobyname
341135549Sdes#define getprotobynumber lwres_getprotobynumber
342135549Sdes#define getprotoent lwres_getprotoent
343135549Sdes#define setprotoent lwres_setprotoent
344135549Sdes#define endprotoent lwres_endprotoent
345135549Sdes
346135549Sdes#define getprotobyname_r lwres_getprotobyname_r
347135549Sdes#define getprotobynumber_r lwres_getprotobynumber_r
348135549Sdes#define getprotoent_r lwres_getprotoent_r
349135549Sdes#define setprotoent_r lwres_setprotoent_r
350135549Sdes#define endprotoent_r lwres_endprotoent_r
351135549Sdes
352135549Sdes#ifdef getnetbyname
353135549Sdes#undef getnetbyname
354135549Sdes#endif
355135549Sdes#define getnetbyname lwres_getnetbyname
356135549Sdes
357135549Sdes#ifdef getnetbyaddr
358135549Sdes#undef getnetbyaddr
359135549Sdes#endif
360135549Sdes#define getnetbyaddr lwres_getnetbyaddr
361135549Sdes
362135549Sdes#ifdef getnetent
363135549Sdes#undef getnetent
364135549Sdes#endif
365135549Sdes#define getnetent lwres_getnetent
366135549Sdes
367135549Sdes#ifdef setnetent
368135549Sdes#undef setnetent
369135549Sdes#endif
370135549Sdes#define setnetent lwres_setnetent
371135549Sdes
372135549Sdes#ifdef endnetent
373135549Sdes#undef endnetent
374135549Sdes#endif
375135549Sdes#define endnetent lwres_endnetent
376135549Sdes
377135549Sdes
378135549Sdes#ifdef getnetbyname_r
379135549Sdes#undef getnetbyname_r
380135549Sdes#endif
381135549Sdes#define getnetbyname_r lwres_getnetbyname_r
382135549Sdes
383135549Sdes#ifdef getnetbyaddr_r
384135549Sdes#undef getnetbyaddr_r
385135549Sdes#endif
386135549Sdes#define getnetbyaddr_r lwres_getnetbyaddr_r
387135549Sdes
388135549Sdes#ifdef getnetent_r
389135549Sdes#undef getnetent_r
390135549Sdes#endif
391135549Sdes#define getnetent_r lwres_getnetent_r
392135549Sdes
393135549Sdes#ifdef setnetent_r
394135549Sdes#undef setnetent_r
395135549Sdes#endif
396135549Sdes#define setnetent_r lwres_setnetent_r
397135549Sdes
398135549Sdes#ifdef endnetent_r
399135549Sdes#undef endnetent_r
400135549Sdes#endif
401135549Sdes#define endnetent_r lwres_endnetent_r
402135549Sdes#endif	/* notyet */
403135549Sdes
404135549Sdes#ifdef h_errno
405135549Sdes#undef h_errno
406135549Sdes#endif
407135549Sdes#define h_errno lwres_h_errno
408135549Sdes
409135549Sdes#endif	/* LWRES_NAMESPACE */
410135549Sdes
411135549SdesLWRES_LANG_BEGINDECLS
412135549Sdes
413135549Sdesextern int lwres_h_errno;
414135549Sdes
415135549Sdesint		lwres_getaddrinfo(const char *, const char *,
416135549Sdes				 const struct addrinfo *, struct addrinfo **);
417135549Sdesint		lwres_getnameinfo(const struct sockaddr *, size_t, char *,
418135549Sdes				 size_t, char *, size_t, int);
419135549Sdesvoid		lwres_freeaddrinfo(struct addrinfo *);
420135549Sdeschar		*lwres_gai_strerror(int);
421135549Sdes
422135549Sdesstruct hostent	*lwres_gethostbyaddr(const char *, int, int);
423135549Sdesstruct hostent	*lwres_gethostbyname(const char *);
424135549Sdesstruct hostent	*lwres_gethostbyname2(const char *, int);
425135549Sdesstruct hostent	*lwres_gethostent(void);
426135549Sdesstruct hostent	*lwres_getipnodebyname(const char *, int, int, int *);
427135549Sdesstruct hostent	*lwres_getipnodebyaddr(const void *, size_t, int, int *);
428135549Sdesvoid		lwres_endhostent(void);
429135549Sdesvoid		lwres_sethostent(int);
430135549Sdes/* void		lwres_sethostfile(const char *); */
431135549Sdesvoid		lwres_freehostent(struct hostent *);
432135549Sdes
433135549Sdesint		lwres_getrrsetbyname(const char *, unsigned int, unsigned int,
434135549Sdes				     unsigned int, struct rrsetinfo **);
435135549Sdesvoid		lwres_freerrset(struct rrsetinfo *);
436135549Sdes
437135549Sdes#ifdef notyet
438135549Sdesstruct netent	*lwres_getnetbyaddr(unsigned long, int);
439135549Sdesstruct netent	*lwres_getnetbyname(const char *);
440135549Sdesstruct netent	*lwres_getnetent(void);
441135549Sdesvoid		lwres_endnetent(void);
442135549Sdesvoid		lwres_setnetent(int);
443135549Sdes
444135549Sdesstruct protoent	*lwres_getprotobyname(const char *);
445135549Sdesstruct protoent	*lwres_getprotobynumber(int);
446135549Sdesstruct protoent	*lwres_getprotoent(void);
447135549Sdesvoid		lwres_endprotoent(void);
448135549Sdesvoid		lwres_setprotoent(int);
449135549Sdes
450135549Sdesstruct servent	*lwres_getservbyname(const char *, const char *);
451135549Sdesstruct servent	*lwres_getservbyport(int, const char *);
452135549Sdesstruct servent	*lwres_getservent(void);
453135549Sdesvoid		lwres_endservent(void);
454135549Sdesvoid		lwres_setservent(int);
455135549Sdes#endif /* notyet */
456135549Sdes
457135549Sdesvoid		lwres_herror(const char *);
458135549Sdesconst char	*lwres_hstrerror(int);
459135549Sdes
460135549Sdes
461135549Sdesstruct hostent	*lwres_gethostbyaddr_r(const char *, int, int, struct hostent *,
462135549Sdes					char *, int, int *);
463135549Sdesstruct hostent	*lwres_gethostbyname_r(const char *, struct hostent *,
464135549Sdes					char *, int, int *);
465135549Sdesstruct hostent	*lwres_gethostent_r(struct hostent *, char *, int, int *);
466135549Sdesvoid		lwres_sethostent_r(int);
467135549Sdesvoid		lwres_endhostent_r(void);
468135549Sdes
469135549Sdes#ifdef notyet
470135549Sdesstruct netent	*lwres_getnetbyname_r(const char *, struct netent *,
471135549Sdes					char *, int);
472135549Sdesstruct netent	*lwres_getnetbyaddr_r(long, int, struct netent *,
473135549Sdes					char *, int);
474135549Sdesstruct netent	*lwres_getnetent_r(struct netent *, char *, int);
475135549Sdesvoid		lwres_setnetent_r(int);
476135549Sdesvoid		lwres_endnetent_r(void);
477135549Sdes
478135549Sdesstruct protoent	*lwres_getprotobyname_r(const char *,
479135549Sdes				struct protoent *, char *, int);
480135549Sdesstruct protoent	*lwres_getprotobynumber_r(int,
481135549Sdes				struct protoent *, char *, int);
482135549Sdesstruct protoent	*lwres_getprotoent_r(struct protoent *, char *, int);
483135549Sdesvoid		lwres_setprotoent_r(int);
484135549Sdesvoid		lwres_endprotoent_r(void);
485135549Sdes
486135549Sdesstruct servent	*lwres_getservbyname_r(const char *name, const char *,
487135549Sdes					struct servent *, char *, int);
488135549Sdesstruct servent	*lwres_getservbyport_r(int port, const char *,
489135549Sdes					struct servent *, char *, int);
490135549Sdesstruct servent	*lwres_getservent_r(struct servent *, char *, int);
491135549Sdesvoid		lwres_setservent_r(int);
492135549Sdesvoid		lwres_endservent_r(void);
493135549Sdes#endif	/* notyet */
494135549Sdes
495135549SdesLWRES_LANG_ENDDECLS
496135549Sdes
497135549Sdes#ifdef notyet
498135549Sdes/* This is nec'y to make this include file properly replace the sun version. */
499135549Sdes#ifdef sun
500135549Sdes#ifdef __GNU_LIBRARY__
501135549Sdes#include <rpc/netdb.h>		/* Required. */
502135549Sdes#else /* !__GNU_LIBRARY__ */
503135549Sdesstruct rpcent {
504135549Sdes	char	*r_name;	/* name of server for this rpc program */
505135549Sdes	char	**r_aliases;	/* alias list */
506135549Sdes	int	r_number;	/* rpc program number */
507135549Sdes};
508135549Sdesstruct rpcent	*lwres_getrpcbyname();
509135549Sdesstruct rpcent	*lwres_getrpcbynumber(),
510135549Sdesstruct rpcent	*lwres_getrpcent();
511135549Sdes#endif /* __GNU_LIBRARY__ */
512135549Sdes#endif /* sun */
513135549Sdes#endif /* notyet */
514135549Sdes
515135549Sdes/*
516135549Sdes * Tell Emacs to use C mode on this file.
517135549Sdes * Local variables:
518135549Sdes * mode: c
519135549Sdes * End:
520135549Sdes */
521135549Sdes
522135549Sdes#endif /* LWRES_NETDB_H */
523