X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FLibraries%2Flibpsocket.so_src%2Finclude_exp%2Fnetdb.h;h=943d514d5e905fcda1248707b43d7f495033b052;hb=9b09b24a5cc3dfb0cee51e0d1876c9253894666a;hp=cea819c5943ba384fc6b2ecbc10f105bac655614;hpb=0dfc38f0ca6b391b15154e3173b5c9504df17f84;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libpsocket.so_src/include_exp/netdb.h b/Usermode/Libraries/libpsocket.so_src/include_exp/netdb.h index cea819c5..943d514d 100644 --- a/Usermode/Libraries/libpsocket.so_src/include_exp/netdb.h +++ b/Usermode/Libraries/libpsocket.so_src/include_exp/netdb.h @@ -1,7 +1,86 @@ #ifndef _LIBPSOCKET__NETDB_H_ #define _LIBPSOCKET__NETDB_H_ -typedef unsigned int socklen_t; +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +struct hostent +{ + char *h_name; + char **h_aliases; + int h_addrtype; + int h_length; + char **h_addr_list; +}; +#define h_addr h_addr_list[0] // backwards compataibility + +struct netent +{ + char *n_name; + char **n_aliases; + int n_addrtype; + uint32_t n_net; +}; + +struct protoent +{ + char *p_name; + char **p_aliases; + int p_proto; +}; + +struct servent +{ + char *s_name; + char **s_aliases; + int s_port; + char *s_proto; +}; + +#define AI_PASSIVE 0x001 +#define AI_V4MAPPED 0x002 +#define AI_ADDRCONFIG 0x004 +#define AI_NUMERICHOST 0x008 +#define AI_NUMERICSERV 0x010 + +#define NI_NAMEREQD (1<<0) +#define NI_DGRAM (1<<1) +#define NI_NOFQDN (1<<2) +#define NI_NUMERICHOST (1<<3) +#define NI_NUMERICSERV (1<<4) + +#define NI_MAXHOST 1024 // may not be posix + +// Error values from gethostbyaddr/gethostbyname +enum +{ + HOST_NOT_FOUND = 1, + NO_DATA, + NO_RECOVERY, + TRY_AGAIN, +}; + +enum +{ + EAI_SUCCESS, + EAI_AGAIN, + EAI_BADFLAGS, + EAI_FAMILY, + EAI_SOCKTTPE, + + EAI_ADDRFAMILY, + EAI_FAIL, + EAI_MEMORY, + EAI_NODATA, + EAI_NONAME, + EAI_SERVICE, + EAI_SYSTEM, + EAI_OVERFLOW +}; struct addrinfo { @@ -15,10 +94,24 @@ struct addrinfo struct addrinfo *ai_next; }; +extern int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags); extern int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); extern void freeaddrinfo(struct addrinfo *res); const char *gai_strerror(int errorcode); +extern struct servent *getservbyname(const char *name, const char *proto); +extern struct servent *getservbyport(int port, const char *proto); + +extern struct hostent *gethostbyname(const char *name); +extern struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type); + +extern void setservent(int stayopen); +extern struct servent *getservent(void); +extern void enservent(void); + +#ifdef __cplusplus +} +#endif #endif