Viewing: netdb.h
📄 netdb.h (Read Only) ⬅ To go back
#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