X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibpsocket.so_src%2Finclude_exp%2Fnetdb.h;h=95f6f2e19e35c424b39474155afe4d493caafd92;hb=312bdfe970c88089509e12f3b0a98b8ace48dac1;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..95f6f2e1 100644 --- a/Usermode/Libraries/libpsocket.so_src/include_exp/netdb.h +++ b/Usermode/Libraries/libpsocket.so_src/include_exp/netdb.h @@ -1,7 +1,80 @@ #ifndef _LIBPSOCKET__NETDB_H_ #define _LIBPSOCKET__NETDB_H_ -typedef unsigned int socklen_t; +#include + +struct hostent +{ + char *h_name; + char **h_aliases; + int h_addrtype; + int h_length; + char **h_addr_list; +}; + +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 +88,17 @@ 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 void setservent(int stayopen); +extern struct servent *getservent(void); +extern void enservent(void); #endif