X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibpsocket.so_src%2Finclude_exp%2Fnetdb.h;h=943d514d5e905fcda1248707b43d7f495033b052;hb=f8cde3fab5eb27ebacf9d76a7ac478a68a36a38b;hp=e9cf788322a31c0c6e3b75301ce08b8247aa39c3;hpb=8d2115456c8c70e6c73d713853a8c32826543601;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 e9cf7883..943d514d 100644 --- a/Usermode/Libraries/libpsocket.so_src/include_exp/netdb.h +++ b/Usermode/Libraries/libpsocket.so_src/include_exp/netdb.h @@ -3,10 +3,66 @@ #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 { @@ -22,7 +78,8 @@ enum EAI_NODATA, EAI_NONAME, EAI_SERVICE, - EAI_SYSTEM + EAI_SYSTEM, + EAI_OVERFLOW }; struct addrinfo @@ -37,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