#ifndef _NETDB_H
#define _NETDB_H
#include <stddef.h>
#include <stdint.h>
struct hostent {
char* h_name;
char** h_aliases;
int h_addrtype;
int h_length;
char** h_addr_list;
};
struct servent {
char* s_name;
char** s_aliases;
int s_port;
char* s_proto;
};
struct addrinfo {
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
unsigned int ai_addrlen;
struct sockaddr* ai_addr;
char* ai_canonname;
struct addrinfo* ai_next;
};
#define AI_PASSIVE 1
#define AI_CANONNAME 2
#define AI_NUMERICHOST 4
#define NI_MAXHOST 1025
#define NI_MAXSERV 32
#define NI_NUMERICHOST 1
#define NI_NUMERICSERV 2
#define NI_NAMEREQD 8
#define NI_DGRAM 16
#define NI_NOFQDN 4
extern int h_errno;
#define HOST_NOT_FOUND 1
#define TRY_AGAIN 2
#define NO_RECOVERY 3
#define NO_DATA 4
struct hostent* gethostbyname(const char* name);
struct hostent* gethostbyaddr(const void* addr, unsigned int len, int type);
struct servent* getservbyname(const char* name, const char* proto);
int getaddrinfo(const char* node, const char* service,
const struct addrinfo* hints, struct addrinfo** res);
void freeaddrinfo(struct addrinfo* res);
const char* gai_strerror(int errcode);
int getnameinfo(const void* sa, unsigned int salen,
char* host, unsigned int hostlen,
char* serv, unsigned int servlen, int flags);
#endif