You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
3.8 KiB
156 lines
3.8 KiB
#ifndef SYSROOT_NETDB_H_
|
|
#define SYSROOT_NETDB_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <features.h>
|
|
#include <netinet/in.h>
|
|
|
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
|
#define __NEED_size_t
|
|
#include <bits/alltypes.h>
|
|
#endif
|
|
|
|
struct addrinfo {
|
|
int ai_flags;
|
|
int ai_family;
|
|
int ai_socktype;
|
|
int ai_protocol;
|
|
socklen_t ai_addrlen;
|
|
struct sockaddr* ai_addr;
|
|
char* ai_canonname;
|
|
struct addrinfo* ai_next;
|
|
};
|
|
|
|
#define IPPORT_RESERVED 1024
|
|
|
|
#define AI_PASSIVE 0x01
|
|
#define AI_CANONNAME 0x02
|
|
#define AI_NUMERICHOST 0x04
|
|
#define AI_V4MAPPED 0x08
|
|
#define AI_ALL 0x10
|
|
#define AI_ADDRCONFIG 0x20
|
|
#define AI_NUMERICSERV 0x400
|
|
|
|
#define NI_NUMERICHOST 0x01
|
|
#define NI_NUMERICSERV 0x02
|
|
#define NI_NOFQDN 0x04
|
|
#define NI_NAMEREQD 0x08
|
|
#define NI_DGRAM 0x10
|
|
#define NI_NUMERICSCOPE 0x100
|
|
|
|
#define EAI_BADFLAGS -1
|
|
#define EAI_NONAME -2
|
|
#define EAI_AGAIN -3
|
|
#define EAI_FAIL -4
|
|
#define EAI_FAMILY -6
|
|
#define EAI_SOCKTYPE -7
|
|
#define EAI_SERVICE -8
|
|
#define EAI_MEMORY -10
|
|
#define EAI_SYSTEM -11
|
|
#define EAI_OVERFLOW -12
|
|
|
|
int getaddrinfo(const char* __restrict, const char* __restrict, const struct addrinfo* __restrict,
|
|
struct addrinfo** __restrict);
|
|
void freeaddrinfo(struct addrinfo*);
|
|
int getnameinfo(const struct sockaddr* __restrict, socklen_t, char* __restrict, socklen_t,
|
|
char* __restrict, socklen_t, int);
|
|
const char* gai_strerror(int);
|
|
|
|
/* Legacy functions follow (marked OBsolete in SUS) */
|
|
|
|
struct netent {
|
|
char* n_name;
|
|
char** n_aliases;
|
|
int n_addrtype;
|
|
uint32_t n_net;
|
|
};
|
|
|
|
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]
|
|
|
|
struct servent {
|
|
char* s_name;
|
|
char** s_aliases;
|
|
int s_port;
|
|
char* s_proto;
|
|
};
|
|
|
|
struct protoent {
|
|
char* p_name;
|
|
char** p_aliases;
|
|
int p_proto;
|
|
};
|
|
|
|
void sethostent(int);
|
|
void endhostent(void);
|
|
struct hostent* gethostent(void);
|
|
|
|
void setnetent(int);
|
|
void endnetent(void);
|
|
struct netent* getnetent(void);
|
|
struct netent* getnetbyaddr(uint32_t, int);
|
|
struct netent* getnetbyname(const char*);
|
|
|
|
void setservent(int);
|
|
void endservent(void);
|
|
struct servent* getservent(void);
|
|
struct servent* getservbyname(const char*, const char*);
|
|
struct servent* getservbyport(int, const char*);
|
|
|
|
void setprotoent(int);
|
|
void endprotoent(void);
|
|
struct protoent* getprotoent(void);
|
|
struct protoent* getprotobyname(const char*);
|
|
struct protoent* getprotobynumber(int);
|
|
|
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) || \
|
|
(defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE + 0 < 200809L) || \
|
|
(defined(_XOPEN_SOURCE) && _XOPEN_SOURCE + 0 < 700)
|
|
struct hostent* gethostbyname(const char*);
|
|
struct hostent* gethostbyaddr(const void*, socklen_t, int);
|
|
int* __h_errno_location(void);
|
|
#define h_errno (*__h_errno_location())
|
|
#define HOST_NOT_FOUND 1
|
|
#define TRY_AGAIN 2
|
|
#define NO_RECOVERY 3
|
|
#define NO_DATA 4
|
|
#define NO_ADDRESS NO_DATA
|
|
#endif
|
|
|
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
|
void herror(const char*);
|
|
const char* hstrerror(int);
|
|
int gethostbyname_r(const char*, struct hostent*, char*, size_t, struct hostent**, int*);
|
|
int gethostbyname2_r(const char*, int, struct hostent*, char*, size_t, struct hostent**, int*);
|
|
struct hostent* gethostbyname2(const char*, int);
|
|
int gethostbyaddr_r(const void*, socklen_t, int, struct hostent*, char*, size_t, struct hostent**,
|
|
int*);
|
|
int getservbyport_r(int, const char*, struct servent*, char*, size_t, struct servent**);
|
|
int getservbyname_r(const char*, const char*, struct servent*, char*, size_t, struct servent**);
|
|
#define EAI_NODATA -5
|
|
#define EAI_ADDRFAMILY -9
|
|
#define EAI_INPROGRESS -100
|
|
#define EAI_CANCELED -101
|
|
#define EAI_NOTCANCELED -102
|
|
#define EAI_ALLDONE -103
|
|
#define EAI_INTR -104
|
|
#define EAI_IDN_ENCODE -105
|
|
#define NI_MAXHOST 255
|
|
#define NI_MAXSERV 32
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // SYSROOT_NETDB_H_
|