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