1*11038SRao.Shoaib@Sun.COM /* 2*11038SRao.Shoaib@Sun.COM * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 3*11038SRao.Shoaib@Sun.COM * Use is subject to license terms. 4*11038SRao.Shoaib@Sun.COM */ 5*11038SRao.Shoaib@Sun.COM 6*11038SRao.Shoaib@Sun.COM 7*11038SRao.Shoaib@Sun.COM #ifndef _PORT_NETDB_H 8*11038SRao.Shoaib@Sun.COM #define _PORT_NETDB_H 9*11038SRao.Shoaib@Sun.COM 10*11038SRao.Shoaib@Sun.COM #ifdef __cplusplus 11*11038SRao.Shoaib@Sun.COM extern "C" { 12*11038SRao.Shoaib@Sun.COM #endif 13*11038SRao.Shoaib@Sun.COM 14*11038SRao.Shoaib@Sun.COM /* AI_NUMERICSERV is not a valid flag for getaddrinfo */ 15*11038SRao.Shoaib@Sun.COM #define AI_MASK 0x0038 /* mask of valid flags */ 16*11038SRao.Shoaib@Sun.COM 17*11038SRao.Shoaib@Sun.COM /* EAI_OVERFLOW was removed from ISC */ 18*11038SRao.Shoaib@Sun.COM #define EAI_BADHINTS 12 19*11038SRao.Shoaib@Sun.COM 20*11038SRao.Shoaib@Sun.COM /* 21*11038SRao.Shoaib@Sun.COM * these are libresolv2 functions that were renamed in previous versions to 22*11038SRao.Shoaib@Sun.COM * res_* because they conflict with libnsl or libsocket 23*11038SRao.Shoaib@Sun.COM */ 24*11038SRao.Shoaib@Sun.COM 25*11038SRao.Shoaib@Sun.COM #define endhostent res_endhostent /* libnsl */ 26*11038SRao.Shoaib@Sun.COM void endhostent __P((void)); 27*11038SRao.Shoaib@Sun.COM #define endnetent res_endnetent /* libsocket */ 28*11038SRao.Shoaib@Sun.COM void endnetent __P((void)); 29*11038SRao.Shoaib@Sun.COM #define freeaddrinfo res_freeaddrinfo /* libsocket */ 30*11038SRao.Shoaib@Sun.COM void freeaddrinfo __P((struct addrinfo *)); 31*11038SRao.Shoaib@Sun.COM #define freehostent res_freehostent /* libsocket and libnsl */ 32*11038SRao.Shoaib@Sun.COM void freehostent __P((struct hostent *)); 33*11038SRao.Shoaib@Sun.COM #define getaddrinfo res_getaddrinfo /* libsocket */ 34*11038SRao.Shoaib@Sun.COM int getaddrinfo __P((const char *, const char *, 35*11038SRao.Shoaib@Sun.COM const struct addrinfo *, struct addrinfo **)); 36*11038SRao.Shoaib@Sun.COM #define gethostbyaddr res_gethostbyaddr /* libnsl */ 37*11038SRao.Shoaib@Sun.COM struct hostent *gethostbyaddr __P((const char *, int, int)); 38*11038SRao.Shoaib@Sun.COM #define gethostbyname res_gethostbyname /* libnsl */ 39*11038SRao.Shoaib@Sun.COM struct hostent *gethostbyname __P((const char *)); 40*11038SRao.Shoaib@Sun.COM #define gethostbyname2 res_gethostbyname2 /* lib/nsswitch/dns */ 41*11038SRao.Shoaib@Sun.COM struct hostent *gethostbyname2 __P((const char *, int)); 42*11038SRao.Shoaib@Sun.COM #define gethostent res_gethostent /* libnsl */ 43*11038SRao.Shoaib@Sun.COM struct hostent *gethostent __P((void)); 44*11038SRao.Shoaib@Sun.COM #define getipnodebyaddr res_getipnodebyaddr /* libnsl and libsocket */ 45*11038SRao.Shoaib@Sun.COM struct hostent *getipnodebyaddr __P((const void *, size_t, int, int *)); 46*11038SRao.Shoaib@Sun.COM #define getipnodebyname res_getipnodebyname /* libnsl and libsocket */ 47*11038SRao.Shoaib@Sun.COM struct hostent *getipnodebyname __P((const char *, int, int, int *)); 48*11038SRao.Shoaib@Sun.COM 49*11038SRao.Shoaib@Sun.COM #define getnetbyaddr res_getnetbyaddr /* libsocket */ 50*11038SRao.Shoaib@Sun.COM struct netent *getnetbyaddr __P((unsigned long, int)); 51*11038SRao.Shoaib@Sun.COM #define getnetbyname res_getnetbyname /* libsocket */ 52*11038SRao.Shoaib@Sun.COM struct netent *getnetbyname __P((const char *)); 53*11038SRao.Shoaib@Sun.COM #define getnetent res_getnetent /* libsocket */ 54*11038SRao.Shoaib@Sun.COM struct netent *getnetent __P((void)); 55*11038SRao.Shoaib@Sun.COM #define sethostent res_sethostent /* libnsl */ 56*11038SRao.Shoaib@Sun.COM void sethostent __P((int)); 57*11038SRao.Shoaib@Sun.COM #define setnetent res_setnetent /* libsocket */ 58*11038SRao.Shoaib@Sun.COM void setnetent __P((int)); 59*11038SRao.Shoaib@Sun.COM 60*11038SRao.Shoaib@Sun.COM /* 61*11038SRao.Shoaib@Sun.COM * these are other irs functions now included in libresolv.so.2. We rename the 62*11038SRao.Shoaib@Sun.COM * ones that overlap with libsocket or libnsl 63*11038SRao.Shoaib@Sun.COM */ 64*11038SRao.Shoaib@Sun.COM 65*11038SRao.Shoaib@Sun.COM /* endprotoent is in libsocket.so.1 */ 66*11038SRao.Shoaib@Sun.COM #define endprotoent res_endprotoent 67*11038SRao.Shoaib@Sun.COM void endprotoent __P((void)); 68*11038SRao.Shoaib@Sun.COM 69*11038SRao.Shoaib@Sun.COM /* endservent is in libsocket.so.1 */ 70*11038SRao.Shoaib@Sun.COM #define endservent res_endservent 71*11038SRao.Shoaib@Sun.COM void endservent __P((void)); 72*11038SRao.Shoaib@Sun.COM 73*11038SRao.Shoaib@Sun.COM /* note: the next two symbols are variables, not functions */ 74*11038SRao.Shoaib@Sun.COM 75*11038SRao.Shoaib@Sun.COM /* gai_errlist is in libsocket.so.1 */ 76*11038SRao.Shoaib@Sun.COM #define gai_errlist res_gai_errlist 77*11038SRao.Shoaib@Sun.COM 78*11038SRao.Shoaib@Sun.COM /* gai_nerr is in libsocket.so.1 */ 79*11038SRao.Shoaib@Sun.COM #define gai_nerr res_gai_nerr 80*11038SRao.Shoaib@Sun.COM 81*11038SRao.Shoaib@Sun.COM /* gai_strerror is in libsocket.so.1 */ 82*11038SRao.Shoaib@Sun.COM #define gai_strerror res_gai_strerror 83*11038SRao.Shoaib@Sun.COM const char *gai_strerror __P((int ecode)); 84*11038SRao.Shoaib@Sun.COM 85*11038SRao.Shoaib@Sun.COM /* gethostbyaddr_r is in libnsl.so.1 */ 86*11038SRao.Shoaib@Sun.COM #define gethostbyaddr_r res_gethostbyaddr_r 87*11038SRao.Shoaib@Sun.COM struct hostent *gethostbyaddr_r __P((const char *addr, int len, int type, 88*11038SRao.Shoaib@Sun.COM struct hostent *hptr, char *buf, 89*11038SRao.Shoaib@Sun.COM int buflen, int *h_errnop)); 90*11038SRao.Shoaib@Sun.COM 91*11038SRao.Shoaib@Sun.COM /* gethostbyname_r is in libnsl.so.1 */ 92*11038SRao.Shoaib@Sun.COM #define gethostbyname_r res_gethostbyname_r 93*11038SRao.Shoaib@Sun.COM struct hostent *gethostbyname_r __P((const char *name, struct hostent *hptr, 94*11038SRao.Shoaib@Sun.COM char *buf, int buflen, int *h_errnop)); 95*11038SRao.Shoaib@Sun.COM 96*11038SRao.Shoaib@Sun.COM /* gethostent_r is in libnsl.so.1 */ 97*11038SRao.Shoaib@Sun.COM #define gethostent_r res_gethostent_r 98*11038SRao.Shoaib@Sun.COM struct hostent *gethostent_r __P((struct hostent *hptr, char *buf, int buflen, 99*11038SRao.Shoaib@Sun.COM int *h_errnop)); 100*11038SRao.Shoaib@Sun.COM 101*11038SRao.Shoaib@Sun.COM /* getnameinfo is in libsocket.so.1 */ 102*11038SRao.Shoaib@Sun.COM #define getnameinfo res_getnameinfo 103*11038SRao.Shoaib@Sun.COM int getnameinfo __P((const struct sockaddr *, size_t, char *, 104*11038SRao.Shoaib@Sun.COM size_t, char *, size_t, int)); 105*11038SRao.Shoaib@Sun.COM 106*11038SRao.Shoaib@Sun.COM /* getnetbyaddr_r is in libsocket.so.1 */ 107*11038SRao.Shoaib@Sun.COM #define getnetbyaddr_r res_getnetbyaddr_r 108*11038SRao.Shoaib@Sun.COM struct netent *getnetbyaddr_r __P((long, int, struct netent *, char *, int)); 109*11038SRao.Shoaib@Sun.COM 110*11038SRao.Shoaib@Sun.COM /* getnetbyname_r is in libsocket.so.1 */ 111*11038SRao.Shoaib@Sun.COM #define getnetbyname_r res_getnetbyname_r 112*11038SRao.Shoaib@Sun.COM struct netent *getnetbyname_r __P((const char *, struct netent *, char *, int)); 113*11038SRao.Shoaib@Sun.COM 114*11038SRao.Shoaib@Sun.COM /* getnetent_r is in libsocket.so.1 */ 115*11038SRao.Shoaib@Sun.COM #define getnetent_r res_getnetent_r 116*11038SRao.Shoaib@Sun.COM struct netent *getnetent_r __P((struct netent *, char *, int)); 117*11038SRao.Shoaib@Sun.COM 118*11038SRao.Shoaib@Sun.COM /* getprotobyname is in libsocket.so.1 */ 119*11038SRao.Shoaib@Sun.COM #define getprotobyname res_getprotobyname 120*11038SRao.Shoaib@Sun.COM struct protoent *getprotobyname __P((const char *)); 121*11038SRao.Shoaib@Sun.COM 122*11038SRao.Shoaib@Sun.COM /* getprotobyname_r is in libsocket.so.1 */ 123*11038SRao.Shoaib@Sun.COM #define getprotobyname_r res_getprotobyname_r 124*11038SRao.Shoaib@Sun.COM struct protoent *getprotobyname_r __P((const char *, struct protoent *, 125*11038SRao.Shoaib@Sun.COM char *, int)); 126*11038SRao.Shoaib@Sun.COM 127*11038SRao.Shoaib@Sun.COM /* getprotobynumber is in libsocket.so.1 */ 128*11038SRao.Shoaib@Sun.COM #define getprotobynumber res_getprotobynumber 129*11038SRao.Shoaib@Sun.COM struct protoent *getprotobynumber __P((int)); 130*11038SRao.Shoaib@Sun.COM 131*11038SRao.Shoaib@Sun.COM /* getprotobynumber_r is in libsocket.so.1 */ 132*11038SRao.Shoaib@Sun.COM #define getprotobynumber_r res_getprotobynumber_r 133*11038SRao.Shoaib@Sun.COM struct protoent *getprotobynumber_r __P((int, 134*11038SRao.Shoaib@Sun.COM struct protoent *, char *, int)); 135*11038SRao.Shoaib@Sun.COM 136*11038SRao.Shoaib@Sun.COM /* getprotoent is in libsocket.so.1 */ 137*11038SRao.Shoaib@Sun.COM #define getprotoent res_getprotoent 138*11038SRao.Shoaib@Sun.COM struct protoent *getprotoent __P((void)); 139*11038SRao.Shoaib@Sun.COM 140*11038SRao.Shoaib@Sun.COM /* getprotoent_r is in libsocket.so.1 */ 141*11038SRao.Shoaib@Sun.COM #define getprotoent_r res_getprotoent_r 142*11038SRao.Shoaib@Sun.COM struct protoent *getprotoent_r __P((struct protoent *, char *, int)); 143*11038SRao.Shoaib@Sun.COM 144*11038SRao.Shoaib@Sun.COM /* getservbyname is in libsocket.so.1 and libnsl.so.1 */ 145*11038SRao.Shoaib@Sun.COM #define getservbyname res_getservbyname 146*11038SRao.Shoaib@Sun.COM struct servent *getservbyname __P((const char *, const char *)); 147*11038SRao.Shoaib@Sun.COM 148*11038SRao.Shoaib@Sun.COM /* getservbyname_r is in libsocket.so.1 and libnsl.so.1 */ 149*11038SRao.Shoaib@Sun.COM #define getservbyname_r res_getservbyname_r 150*11038SRao.Shoaib@Sun.COM struct servent *getservbyname_r __P((const char *name, const char *, 151*11038SRao.Shoaib@Sun.COM struct servent *, char *, int)); 152*11038SRao.Shoaib@Sun.COM 153*11038SRao.Shoaib@Sun.COM /* getservbyport is in libsocket.so.1 and libnsl.so.1 */ 154*11038SRao.Shoaib@Sun.COM #define getservbyport res_getservbyport 155*11038SRao.Shoaib@Sun.COM struct servent *getservbyport __P((int, const char *)); 156*11038SRao.Shoaib@Sun.COM 157*11038SRao.Shoaib@Sun.COM /* getservbyport_r is in libsocket.so.1 and libnsl.so.1 */ 158*11038SRao.Shoaib@Sun.COM #define getservbyport_r res_getservbyport_r 159*11038SRao.Shoaib@Sun.COM struct servent *getservbyport_r __P((int port, const char *, 160*11038SRao.Shoaib@Sun.COM struct servent *, char *, int)); 161*11038SRao.Shoaib@Sun.COM 162*11038SRao.Shoaib@Sun.COM /* getservent is in libsocket.so.1 */ 163*11038SRao.Shoaib@Sun.COM #define getservent res_getservent 164*11038SRao.Shoaib@Sun.COM struct servent *getservent __P((void)); 165*11038SRao.Shoaib@Sun.COM 166*11038SRao.Shoaib@Sun.COM /* getservent_r is in libsocket.so.1 */ 167*11038SRao.Shoaib@Sun.COM #define getservent_r res_getservent_r 168*11038SRao.Shoaib@Sun.COM struct servent *getservent_r __P((struct servent *, char *, int)); 169*11038SRao.Shoaib@Sun.COM 170*11038SRao.Shoaib@Sun.COM /* innetgr is in libsocket.so.1 */ 171*11038SRao.Shoaib@Sun.COM #define innetgr res_innetgr 172*11038SRao.Shoaib@Sun.COM int innetgr __P((const char *, const char *, const char *, const char *)); 173*11038SRao.Shoaib@Sun.COM 174*11038SRao.Shoaib@Sun.COM /* setprotoent is in libsocket.so.1 */ 175*11038SRao.Shoaib@Sun.COM #define setprotoent res_setprotoent 176*11038SRao.Shoaib@Sun.COM void setprotoent __P((int)); 177*11038SRao.Shoaib@Sun.COM 178*11038SRao.Shoaib@Sun.COM /* setservent is in libsocket.so.1 */ 179*11038SRao.Shoaib@Sun.COM #define setservent res_setservent 180*11038SRao.Shoaib@Sun.COM void setservent __P((int)); 181*11038SRao.Shoaib@Sun.COM 182*11038SRao.Shoaib@Sun.COM 183*11038SRao.Shoaib@Sun.COM 184*11038SRao.Shoaib@Sun.COM #ifdef __cplusplus 185*11038SRao.Shoaib@Sun.COM } 186*11038SRao.Shoaib@Sun.COM #endif 187*11038SRao.Shoaib@Sun.COM 188*11038SRao.Shoaib@Sun.COM #endif /* _PORT_NETDB_H */ 189