1135446Strhodes/* 2193149Sdougb * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") 3135446Strhodes * Copyright (C) 2000, 2001 Internet Software Consortium. 4135446Strhodes * 5193149Sdougb * Permission to use, copy, modify, and/or distribute this software for any 6135446Strhodes * purpose with or without fee is hereby granted, provided that the above 7135446Strhodes * copyright notice and this permission notice appear in all copies. 8135446Strhodes * 9135446Strhodes * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 10135446Strhodes * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11135446Strhodes * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 12135446Strhodes * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13135446Strhodes * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14135446Strhodes * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15135446Strhodes * PERFORMANCE OF THIS SOFTWARE. 16135446Strhodes */ 17135446Strhodes 18234010Sdougb/* $Id: netdb.h.in,v 1.41 2009/01/18 23:48:14 tbox Exp $ */ 19135446Strhodes 20170222Sdougb/*! \file */ 21170222Sdougb 22135446Strhodes#ifndef LWRES_NETDB_H 23135446Strhodes#define LWRES_NETDB_H 1 24135446Strhodes 25135446Strhodes#include <stddef.h> /* Required on FreeBSD (and others?) for size_t. */ 26135446Strhodes#include <netdb.h> /* Contractual provision. */ 27135446Strhodes 28135446Strhodes#include <lwres/lang.h> 29135446Strhodes 30135446Strhodes/* 31135446Strhodes * Define if <netdb.h> does not declare struct addrinfo. 32135446Strhodes */ 33135446Strhodes@ISC_LWRES_NEEDADDRINFO@ 34135446Strhodes 35135446Strhodes#ifdef ISC_LWRES_NEEDADDRINFO 36135446Strhodesstruct addrinfo { 37135446Strhodes int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ 38135446Strhodes int ai_family; /* PF_xxx */ 39135446Strhodes int ai_socktype; /* SOCK_xxx */ 40135446Strhodes int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ 41135446Strhodes size_t ai_addrlen; /* Length of ai_addr */ 42135446Strhodes char *ai_canonname; /* Canonical name for hostname */ 43135446Strhodes struct sockaddr *ai_addr; /* Binary address */ 44135446Strhodes struct addrinfo *ai_next; /* Next structure in linked list */ 45135446Strhodes}; 46135446Strhodes#endif 47135446Strhodes 48135446Strhodes/* 49135446Strhodes * Undefine all #defines we are interested in as <netdb.h> may or may not have 50135446Strhodes * defined them. 51135446Strhodes */ 52135446Strhodes 53135446Strhodes/* 54135446Strhodes * Error return codes from gethostbyname() and gethostbyaddr() 55135446Strhodes * (left in extern int h_errno). 56135446Strhodes */ 57135446Strhodes 58135446Strhodes#undef NETDB_INTERNAL 59135446Strhodes#undef NETDB_SUCCESS 60135446Strhodes#undef HOST_NOT_FOUND 61135446Strhodes#undef TRY_AGAIN 62135446Strhodes#undef NO_RECOVERY 63135446Strhodes#undef NO_DATA 64135446Strhodes#undef NO_ADDRESS 65135446Strhodes 66135446Strhodes#define NETDB_INTERNAL -1 /* see errno */ 67135446Strhodes#define NETDB_SUCCESS 0 /* no problem */ 68135446Strhodes#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ 69193149Sdougb#define TRY_AGAIN 2 /* Non-Authoritative Host not found, or SERVERFAIL */ 70135446Strhodes#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ 71135446Strhodes#define NO_DATA 4 /* Valid name, no data record of requested type */ 72135446Strhodes#define NO_ADDRESS NO_DATA /* no address, look for MX record */ 73135446Strhodes 74135446Strhodes/* 75135446Strhodes * Error return codes from getaddrinfo() 76135446Strhodes */ 77135446Strhodes 78135446Strhodes#undef EAI_ADDRFAMILY 79135446Strhodes#undef EAI_AGAIN 80135446Strhodes#undef EAI_BADFLAGS 81135446Strhodes#undef EAI_FAIL 82135446Strhodes#undef EAI_FAMILY 83135446Strhodes#undef EAI_MEMORY 84135446Strhodes#undef EAI_NODATA 85135446Strhodes#undef EAI_NONAME 86135446Strhodes#undef EAI_SERVICE 87135446Strhodes#undef EAI_SOCKTYPE 88135446Strhodes#undef EAI_SYSTEM 89135446Strhodes#undef EAI_BADHINTS 90135446Strhodes#undef EAI_PROTOCOL 91135446Strhodes#undef EAI_MAX 92135446Strhodes 93135446Strhodes#define EAI_ADDRFAMILY 1 /* address family for hostname not supported */ 94135446Strhodes#define EAI_AGAIN 2 /* temporary failure in name resolution */ 95135446Strhodes#define EAI_BADFLAGS 3 /* invalid value for ai_flags */ 96135446Strhodes#define EAI_FAIL 4 /* non-recoverable failure in name resolution */ 97135446Strhodes#define EAI_FAMILY 5 /* ai_family not supported */ 98135446Strhodes#define EAI_MEMORY 6 /* memory allocation failure */ 99135446Strhodes#define EAI_NODATA 7 /* no address associated with hostname */ 100135446Strhodes#define EAI_NONAME 8 /* hostname nor servname provided, or not known */ 101135446Strhodes#define EAI_SERVICE 9 /* servname not supported for ai_socktype */ 102135446Strhodes#define EAI_SOCKTYPE 10 /* ai_socktype not supported */ 103135446Strhodes#define EAI_SYSTEM 11 /* system error returned in errno */ 104135446Strhodes#define EAI_BADHINTS 12 105135446Strhodes#define EAI_PROTOCOL 13 106135446Strhodes#define EAI_MAX 14 107135446Strhodes 108135446Strhodes/* 109135446Strhodes * Flag values for getaddrinfo() 110135446Strhodes */ 111135446Strhodes#undef AI_PASSIVE 112135446Strhodes#undef AI_CANONNAME 113135446Strhodes#undef AI_NUMERICHOST 114135446Strhodes 115135446Strhodes#define AI_PASSIVE 0x00000001 116135446Strhodes#define AI_CANONNAME 0x00000002 117135446Strhodes#define AI_NUMERICHOST 0x00000004 118135446Strhodes 119135446Strhodes/* 120135446Strhodes * Flag values for getipnodebyname() 121135446Strhodes */ 122135446Strhodes#undef AI_V4MAPPED 123135446Strhodes#undef AI_ALL 124135446Strhodes#undef AI_ADDRCONFIG 125135446Strhodes#undef AI_DEFAULT 126135446Strhodes 127135446Strhodes#define AI_V4MAPPED 0x00000008 128135446Strhodes#define AI_ALL 0x00000010 129135446Strhodes#define AI_ADDRCONFIG 0x00000020 130135446Strhodes#define AI_DEFAULT (AI_V4MAPPED|AI_ADDRCONFIG) 131135446Strhodes 132135446Strhodes/* 133135446Strhodes * Constants for lwres_getnameinfo() 134135446Strhodes */ 135135446Strhodes#undef NI_MAXHOST 136135446Strhodes#undef NI_MAXSERV 137135446Strhodes 138135446Strhodes#define NI_MAXHOST 1025 139135446Strhodes#define NI_MAXSERV 32 140135446Strhodes 141135446Strhodes/* 142135446Strhodes * Flag values for lwres_getnameinfo() 143135446Strhodes */ 144135446Strhodes#undef NI_NOFQDN 145135446Strhodes#undef NI_NUMERICHOST 146135446Strhodes#undef NI_NAMEREQD 147135446Strhodes#undef NI_NUMERICSERV 148135446Strhodes#undef NI_DGRAM 149135446Strhodes#undef NI_NUMERICSCOPE 150135446Strhodes 151135446Strhodes#define NI_NOFQDN 0x00000001 152135446Strhodes#define NI_NUMERICHOST 0x00000002 153135446Strhodes#define NI_NAMEREQD 0x00000004 154135446Strhodes#define NI_NUMERICSERV 0x00000008 155135446Strhodes#define NI_DGRAM 0x00000010 156135446Strhodes#define NI_NUMERICSCOPE 0x00000020 /*2553bis-00*/ 157135446Strhodes 158135446Strhodes/* 159135446Strhodes * Define if <netdb.h> does not declare struct rrsetinfo. 160135446Strhodes */ 161135446Strhodes@ISC_LWRES_NEEDRRSETINFO@ 162135446Strhodes 163135446Strhodes#ifdef ISC_LWRES_NEEDRRSETINFO 164135446Strhodes/* 165135446Strhodes * Structures for getrrsetbyname() 166135446Strhodes */ 167135446Strhodesstruct rdatainfo { 168135446Strhodes unsigned int rdi_length; 169135446Strhodes unsigned char *rdi_data; 170135446Strhodes}; 171135446Strhodes 172135446Strhodesstruct rrsetinfo { 173135446Strhodes unsigned int rri_flags; 174135446Strhodes int rri_rdclass; 175135446Strhodes int rri_rdtype; 176135446Strhodes unsigned int rri_ttl; 177135446Strhodes unsigned int rri_nrdatas; 178135446Strhodes unsigned int rri_nsigs; 179135446Strhodes char *rri_name; 180135446Strhodes struct rdatainfo *rri_rdatas; 181135446Strhodes struct rdatainfo *rri_sigs; 182135446Strhodes}; 183135446Strhodes 184135446Strhodes/* 185135446Strhodes * Flags for getrrsetbyname() 186135446Strhodes */ 187135446Strhodes#define RRSET_VALIDATED 0x00000001 188135446Strhodes /* Set was dnssec validated */ 189135446Strhodes 190135446Strhodes/* 191135446Strhodes * Return codes for getrrsetbyname() 192135446Strhodes */ 193135446Strhodes#define ERRSET_SUCCESS 0 194135446Strhodes#define ERRSET_NOMEMORY 1 195135446Strhodes#define ERRSET_FAIL 2 196135446Strhodes#define ERRSET_INVAL 3 197135446Strhodes#define ERRSET_NONAME 4 198135446Strhodes#define ERRSET_NODATA 5 199135446Strhodes#endif 200135446Strhodes 201135446Strhodes/* 202135446Strhodes * Define to map into lwres_ namespace. 203135446Strhodes */ 204135446Strhodes 205135446Strhodes#define LWRES_NAMESPACE 206135446Strhodes 207135446Strhodes#ifdef LWRES_NAMESPACE 208135446Strhodes 209135446Strhodes/* 210135446Strhodes * Use our versions not the ones from the C library. 211135446Strhodes */ 212135446Strhodes 213135446Strhodes#ifdef getnameinfo 214135446Strhodes#undef getnameinfo 215135446Strhodes#endif 216135446Strhodes#define getnameinfo lwres_getnameinfo 217135446Strhodes 218135446Strhodes#ifdef getaddrinfo 219135446Strhodes#undef getaddrinfo 220135446Strhodes#endif 221135446Strhodes#define getaddrinfo lwres_getaddrinfo 222135446Strhodes 223135446Strhodes#ifdef freeaddrinfo 224135446Strhodes#undef freeaddrinfo 225135446Strhodes#endif 226135446Strhodes#define freeaddrinfo lwres_freeaddrinfo 227135446Strhodes 228135446Strhodes#ifdef gai_strerror 229135446Strhodes#undef gai_strerror 230135446Strhodes#endif 231135446Strhodes#define gai_strerror lwres_gai_strerror 232135446Strhodes 233135446Strhodes#ifdef herror 234135446Strhodes#undef herror 235135446Strhodes#endif 236135446Strhodes#define herror lwres_herror 237135446Strhodes 238135446Strhodes#ifdef hstrerror 239135446Strhodes#undef hstrerror 240135446Strhodes#endif 241135446Strhodes#define hstrerror lwres_hstrerror 242135446Strhodes 243135446Strhodes#ifdef getipnodebyname 244135446Strhodes#undef getipnodebyname 245135446Strhodes#endif 246135446Strhodes#define getipnodebyname lwres_getipnodebyname 247135446Strhodes 248135446Strhodes#ifdef getipnodebyaddr 249135446Strhodes#undef getipnodebyaddr 250135446Strhodes#endif 251135446Strhodes#define getipnodebyaddr lwres_getipnodebyaddr 252135446Strhodes 253135446Strhodes#ifdef freehostent 254135446Strhodes#undef freehostent 255135446Strhodes#endif 256135446Strhodes#define freehostent lwres_freehostent 257135446Strhodes 258135446Strhodes#ifdef gethostbyname 259135446Strhodes#undef gethostbyname 260135446Strhodes#endif 261135446Strhodes#define gethostbyname lwres_gethostbyname 262135446Strhodes 263135446Strhodes#ifdef gethostbyname2 264135446Strhodes#undef gethostbyname2 265135446Strhodes#endif 266135446Strhodes#define gethostbyname2 lwres_gethostbyname2 267135446Strhodes 268135446Strhodes#ifdef gethostbyaddr 269135446Strhodes#undef gethostbyaddr 270135446Strhodes#endif 271135446Strhodes#define gethostbyaddr lwres_gethostbyaddr 272135446Strhodes 273135446Strhodes#ifdef gethostent 274135446Strhodes#undef gethostent 275135446Strhodes#endif 276135446Strhodes#define gethostent lwres_gethostent 277135446Strhodes 278135446Strhodes#ifdef sethostent 279135446Strhodes#undef sethostent 280135446Strhodes#endif 281135446Strhodes#define sethostent lwres_sethostent 282135446Strhodes 283135446Strhodes#ifdef endhostent 284135446Strhodes#undef endhostent 285135446Strhodes#endif 286135446Strhodes#define endhostent lwres_endhostent 287135446Strhodes 288135446Strhodes/* #define sethostfile lwres_sethostfile */ 289135446Strhodes 290135446Strhodes#ifdef gethostbyname_r 291135446Strhodes#undef gethostbyname_r 292135446Strhodes#endif 293135446Strhodes#define gethostbyname_r lwres_gethostbyname_r 294135446Strhodes 295135446Strhodes#ifdef gethostbyaddr_r 296135446Strhodes#undef gethostbyaddr_r 297135446Strhodes#endif 298135446Strhodes#define gethostbyaddr_r lwres_gethostbyaddr_r 299135446Strhodes 300135446Strhodes#ifdef gethostent_r 301135446Strhodes#undef gethostent_r 302135446Strhodes#endif 303135446Strhodes#define gethostent_r lwres_gethostent_r 304135446Strhodes 305135446Strhodes#ifdef sethostent_r 306135446Strhodes#undef sethostent_r 307135446Strhodes#endif 308135446Strhodes#define sethostent_r lwres_sethostent_r 309135446Strhodes 310135446Strhodes#ifdef endhostent_r 311135446Strhodes#undef endhostent_r 312135446Strhodes#endif 313135446Strhodes#define endhostent_r lwres_endhostent_r 314135446Strhodes 315135446Strhodes#ifdef getrrsetbyname 316135446Strhodes#undef getrrsetbyname 317135446Strhodes#endif 318135446Strhodes#define getrrsetbyname lwres_getrrsetbyname 319135446Strhodes 320135446Strhodes#ifdef freerrset 321135446Strhodes#undef freerrset 322135446Strhodes#endif 323135446Strhodes#define freerrset lwres_freerrset 324135446Strhodes 325135446Strhodes#ifdef notyet 326135446Strhodes#define getservbyname lwres_getservbyname 327135446Strhodes#define getservbyport lwres_getservbyport 328135446Strhodes#define getservent lwres_getservent 329135446Strhodes#define setservent lwres_setservent 330135446Strhodes#define endservent lwres_endservent 331135446Strhodes 332135446Strhodes#define getservbyname_r lwres_getservbyname_r 333135446Strhodes#define getservbyport_r lwres_getservbyport_r 334135446Strhodes#define getservent_r lwres_getservent_r 335135446Strhodes#define setservent_r lwres_setservent_r 336135446Strhodes#define endservent_r lwres_endservent_r 337135446Strhodes 338135446Strhodes#define getprotobyname lwres_getprotobyname 339135446Strhodes#define getprotobynumber lwres_getprotobynumber 340135446Strhodes#define getprotoent lwres_getprotoent 341135446Strhodes#define setprotoent lwres_setprotoent 342135446Strhodes#define endprotoent lwres_endprotoent 343135446Strhodes 344135446Strhodes#define getprotobyname_r lwres_getprotobyname_r 345135446Strhodes#define getprotobynumber_r lwres_getprotobynumber_r 346135446Strhodes#define getprotoent_r lwres_getprotoent_r 347135446Strhodes#define setprotoent_r lwres_setprotoent_r 348135446Strhodes#define endprotoent_r lwres_endprotoent_r 349135446Strhodes 350135446Strhodes#ifdef getnetbyname 351135446Strhodes#undef getnetbyname 352135446Strhodes#endif 353135446Strhodes#define getnetbyname lwres_getnetbyname 354135446Strhodes 355135446Strhodes#ifdef getnetbyaddr 356135446Strhodes#undef getnetbyaddr 357135446Strhodes#endif 358135446Strhodes#define getnetbyaddr lwres_getnetbyaddr 359135446Strhodes 360135446Strhodes#ifdef getnetent 361135446Strhodes#undef getnetent 362135446Strhodes#endif 363135446Strhodes#define getnetent lwres_getnetent 364135446Strhodes 365135446Strhodes#ifdef setnetent 366135446Strhodes#undef setnetent 367135446Strhodes#endif 368135446Strhodes#define setnetent lwres_setnetent 369135446Strhodes 370135446Strhodes#ifdef endnetent 371135446Strhodes#undef endnetent 372135446Strhodes#endif 373135446Strhodes#define endnetent lwres_endnetent 374135446Strhodes 375135446Strhodes 376135446Strhodes#ifdef getnetbyname_r 377135446Strhodes#undef getnetbyname_r 378135446Strhodes#endif 379135446Strhodes#define getnetbyname_r lwres_getnetbyname_r 380135446Strhodes 381135446Strhodes#ifdef getnetbyaddr_r 382135446Strhodes#undef getnetbyaddr_r 383135446Strhodes#endif 384135446Strhodes#define getnetbyaddr_r lwres_getnetbyaddr_r 385135446Strhodes 386135446Strhodes#ifdef getnetent_r 387135446Strhodes#undef getnetent_r 388135446Strhodes#endif 389135446Strhodes#define getnetent_r lwres_getnetent_r 390135446Strhodes 391135446Strhodes#ifdef setnetent_r 392135446Strhodes#undef setnetent_r 393135446Strhodes#endif 394135446Strhodes#define setnetent_r lwres_setnetent_r 395135446Strhodes 396135446Strhodes#ifdef endnetent_r 397135446Strhodes#undef endnetent_r 398135446Strhodes#endif 399135446Strhodes#define endnetent_r lwres_endnetent_r 400135446Strhodes#endif /* notyet */ 401135446Strhodes 402135446Strhodes#ifdef h_errno 403135446Strhodes#undef h_errno 404135446Strhodes#endif 405135446Strhodes#define h_errno lwres_h_errno 406135446Strhodes 407135446Strhodes#endif /* LWRES_NAMESPACE */ 408135446Strhodes 409135446StrhodesLWRES_LANG_BEGINDECLS 410135446Strhodes 411135446Strhodesextern int lwres_h_errno; 412135446Strhodes 413135446Strhodesint lwres_getaddrinfo(const char *, const char *, 414135446Strhodes const struct addrinfo *, struct addrinfo **); 415135446Strhodesint lwres_getnameinfo(const struct sockaddr *, size_t, char *, 416135446Strhodes size_t, char *, size_t, int); 417135446Strhodesvoid lwres_freeaddrinfo(struct addrinfo *); 418135446Strhodeschar *lwres_gai_strerror(int); 419135446Strhodes 420135446Strhodesstruct hostent *lwres_gethostbyaddr(const char *, int, int); 421135446Strhodesstruct hostent *lwres_gethostbyname(const char *); 422135446Strhodesstruct hostent *lwres_gethostbyname2(const char *, int); 423135446Strhodesstruct hostent *lwres_gethostent(void); 424135446Strhodesstruct hostent *lwres_getipnodebyname(const char *, int, int, int *); 425135446Strhodesstruct hostent *lwres_getipnodebyaddr(const void *, size_t, int, int *); 426135446Strhodesvoid lwres_endhostent(void); 427135446Strhodesvoid lwres_sethostent(int); 428135446Strhodes/* void lwres_sethostfile(const char *); */ 429135446Strhodesvoid lwres_freehostent(struct hostent *); 430135446Strhodes 431135446Strhodesint lwres_getrrsetbyname(const char *, unsigned int, unsigned int, 432135446Strhodes unsigned int, struct rrsetinfo **); 433135446Strhodesvoid lwres_freerrset(struct rrsetinfo *); 434135446Strhodes 435135446Strhodes#ifdef notyet 436135446Strhodesstruct netent *lwres_getnetbyaddr(unsigned long, int); 437135446Strhodesstruct netent *lwres_getnetbyname(const char *); 438135446Strhodesstruct netent *lwres_getnetent(void); 439135446Strhodesvoid lwres_endnetent(void); 440135446Strhodesvoid lwres_setnetent(int); 441135446Strhodes 442135446Strhodesstruct protoent *lwres_getprotobyname(const char *); 443135446Strhodesstruct protoent *lwres_getprotobynumber(int); 444135446Strhodesstruct protoent *lwres_getprotoent(void); 445135446Strhodesvoid lwres_endprotoent(void); 446135446Strhodesvoid lwres_setprotoent(int); 447135446Strhodes 448135446Strhodesstruct servent *lwres_getservbyname(const char *, const char *); 449135446Strhodesstruct servent *lwres_getservbyport(int, const char *); 450135446Strhodesstruct servent *lwres_getservent(void); 451135446Strhodesvoid lwres_endservent(void); 452135446Strhodesvoid lwres_setservent(int); 453135446Strhodes#endif /* notyet */ 454135446Strhodes 455135446Strhodesvoid lwres_herror(const char *); 456135446Strhodesconst char *lwres_hstrerror(int); 457135446Strhodes 458135446Strhodes 459135446Strhodesstruct hostent *lwres_gethostbyaddr_r(const char *, int, int, struct hostent *, 460135446Strhodes char *, int, int *); 461135446Strhodesstruct hostent *lwres_gethostbyname_r(const char *, struct hostent *, 462135446Strhodes char *, int, int *); 463135446Strhodesstruct hostent *lwres_gethostent_r(struct hostent *, char *, int, int *); 464135446Strhodesvoid lwres_sethostent_r(int); 465135446Strhodesvoid lwres_endhostent_r(void); 466135446Strhodes 467135446Strhodes#ifdef notyet 468135446Strhodesstruct netent *lwres_getnetbyname_r(const char *, struct netent *, 469135446Strhodes char *, int); 470135446Strhodesstruct netent *lwres_getnetbyaddr_r(long, int, struct netent *, 471135446Strhodes char *, int); 472135446Strhodesstruct netent *lwres_getnetent_r(struct netent *, char *, int); 473135446Strhodesvoid lwres_setnetent_r(int); 474135446Strhodesvoid lwres_endnetent_r(void); 475135446Strhodes 476135446Strhodesstruct protoent *lwres_getprotobyname_r(const char *, 477135446Strhodes struct protoent *, char *, int); 478135446Strhodesstruct protoent *lwres_getprotobynumber_r(int, 479135446Strhodes struct protoent *, char *, int); 480135446Strhodesstruct protoent *lwres_getprotoent_r(struct protoent *, char *, int); 481135446Strhodesvoid lwres_setprotoent_r(int); 482135446Strhodesvoid lwres_endprotoent_r(void); 483135446Strhodes 484135446Strhodesstruct servent *lwres_getservbyname_r(const char *name, const char *, 485135446Strhodes struct servent *, char *, int); 486135446Strhodesstruct servent *lwres_getservbyport_r(int port, const char *, 487135446Strhodes struct servent *, char *, int); 488135446Strhodesstruct servent *lwres_getservent_r(struct servent *, char *, int); 489135446Strhodesvoid lwres_setservent_r(int); 490135446Strhodesvoid lwres_endservent_r(void); 491135446Strhodes#endif /* notyet */ 492135446Strhodes 493135446StrhodesLWRES_LANG_ENDDECLS 494135446Strhodes 495135446Strhodes#ifdef notyet 496135446Strhodes/* This is nec'y to make this include file properly replace the sun version. */ 497135446Strhodes#ifdef sun 498135446Strhodes#ifdef __GNU_LIBRARY__ 499135446Strhodes#include <rpc/netdb.h> /* Required. */ 500135446Strhodes#else /* !__GNU_LIBRARY__ */ 501135446Strhodesstruct rpcent { 502135446Strhodes char *r_name; /* name of server for this rpc program */ 503135446Strhodes char **r_aliases; /* alias list */ 504135446Strhodes int r_number; /* rpc program number */ 505135446Strhodes}; 506135446Strhodesstruct rpcent *lwres_getrpcbyname(); 507135446Strhodesstruct rpcent *lwres_getrpcbynumber(), 508135446Strhodesstruct rpcent *lwres_getrpcent(); 509135446Strhodes#endif /* __GNU_LIBRARY__ */ 510135446Strhodes#endif /* sun */ 511135446Strhodes#endif /* notyet */ 512135446Strhodes 513135446Strhodes/* 514135446Strhodes * Tell Emacs to use C mode on this file. 515135446Strhodes * Local variables: 516135446Strhodes * mode: c 517135446Strhodes * End: 518135446Strhodes */ 519135446Strhodes 520135446Strhodes#endif /* LWRES_NETDB_H */ 521