VSF Documented
netdb.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_NETDB_H__
2#define __VSF_LINUX_NETDB_H__
3
5
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
7# include "../sys/socket.h"
8#else
9# include <sys/socket.h>
10#endif
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16// ai_flags
17#define AI_PASSIVE 0x0001
18#define AI_CANONNAME 0x0002
19#define AI_NUMERICHOST 0x0004
20#define AI_V4MAPPED 0x0008
21#define AI_ALL 0x0010
22#define AI_ADDRCONFIG 0x0020
23#define AI_NUMERICSERV 0x0400
24
25#define NI_MAXHOST 1025
26#define NI_MAXSERV 32
27
28struct addrinfo {
37};
38
39struct hostent {
40 char *h_name;
41 char **h_aliases;
45#define h_addr h_addr_list[0]
46};
47
48struct netent {
49 char *n_name;
50 char **n_aliases;
53};
54
55struct protoent {
56 char *p_name;
57 char **p_aliases;
59};
60
61struct servent {
62 char *s_name;
63 char **s_aliases;
64 int s_port;
65 char *s_proto;
66};
67
68#if VSF_LINUX_SOCKET_CFG_WRAPPER == ENABLED
69#define getnameinfo VSF_LINUX_SOCKET_WRAPPER(getnameinfo)
70#define gethostbyaddr VSF_LINUX_SOCKET_WRAPPER(gethostbyaddr)
71#define gai_strerror VSF_LINUX_SOCKET_WRAPPER(gai_strerror)
72#define gethostbyname VSF_LINUX_SOCKET_WRAPPER(gethostbyname)
73#define getaddrinfo VSF_LINUX_SOCKET_WRAPPER(getaddrinfo)
74#define freeaddrinfo VSF_LINUX_SOCKET_WRAPPER(freeaddrinfo)
75#define herror VSF_LINUX_SOCKET_WRAPPER(herror)
76#define hstrerror VSF_LINUX_SOCKET_WRAPPER(hstrerror)
77#define setservent VSF_LINUX_SOCKET_WRAPPER(setservent)
78#define endservent VSF_LINUX_SOCKET_WRAPPER(endservent)
79#define getservent VSF_LINUX_SOCKET_WRAPPER(getservent)
80#define getservbyname VSF_LINUX_SOCKET_WRAPPER(getservbyname)
81#define getservbyport VSF_LINUX_SOCKET_WRAPPER(getservbyport)
82#endif
83
84#define h_errno (*__vsf_linux_h_errno())
85
86// flags for getnameinfo
87#define NI_NAMEREQD (1 << 0)
88#define NI_DGRAM (1 << 1)
89#define NI_NOFQDN (1 << 2)
90#define NI_NUMERICHOST (1 << 3)
91#define NI_NUMERICSERV (1 << 4)
92
93#define EAI_BADFLAGS -1
94#define EAI_NONAME -2
95#define EAI_AGAIN -3
96#define EAI_FAIL -4
97#define EAI_NODATA -5
98#define EAI_FAMILY -6
99#define EAI_SOCKTYPE -7
100#define EAI_SERVICE -8
101#define EAI_ADDRFAMILY -9
102#define EAI_MEMORY -10
103#define EAI_SYSTEM -11
104#define EAI_OVERFLOW -12
105#define EAI_INPROGRESS -100
106#define EAI_CANCELED -101
107#define EAI_NOTCANCELED -102
108#define EAI_ALLDONE -103
109#define EAI_INTR -104
110#define EAI_IDN_ENCODE -105
111
112#if VSF_LINUX_APPLET_USE_NETDB == ENABLED
115
131# ifndef __VSF_APPLET__
133# endif
134#endif
135
136#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_NETDB_LIB__))\
137 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_NETDB == ENABLED
138
139#ifndef VSF_LINUX_APPLET_NETDB_VPLT
140# if VSF_LINUX_USE_APPLET == ENABLED
141# define VSF_LINUX_APPLET_NETDB_VPLT \
142 ((vsf_linux_netdb_vplt_t *)(VSF_LINUX_APPLET_VPLT->netdb_vplt))
143# else
144# define VSF_LINUX_APPLET_NETDB_VPLT \
145 ((vsf_linux_netdb_vplt_t *)vsf_vplt((void *)0))
146# endif
147#endif
148
149#define VSF_LINUX_APPLET_NETDB_ENTRY(__NAME) \
150 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_NETDB_VPLT, __NAME)
151#define VSF_LINUX_APPLET_NETDB_IMP(...) \
152 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_NETDB_VPLT, __VA_ARGS__)
153
154VSF_LINUX_APPLET_NETDB_IMP(__vsf_linux_h_errno, int *, void) {
156 return VSF_LINUX_APPLET_NETDB_ENTRY(__vsf_linux_h_errno)();
157}
158VSF_LINUX_APPLET_NETDB_IMP(gethostbyaddr, struct hostent *, const void *addr, socklen_t len, int type) {
160 return VSF_LINUX_APPLET_NETDB_ENTRY(gethostbyaddr)(addr, len, type);
161}
162VSF_LINUX_APPLET_NETDB_IMP(gethostbyname, struct hostent *, const char *name) {
164 return VSF_LINUX_APPLET_NETDB_ENTRY(gethostbyname)(name);
165}
166VSF_LINUX_APPLET_NETDB_IMP(gai_strerror, const char *, int errcode) {
168 return VSF_LINUX_APPLET_NETDB_ENTRY(gai_strerror)(errcode);
169}
170VSF_LINUX_APPLET_NETDB_IMP(getnameinfo, int, const struct sockaddr *addr, socklen_t addrlen, char *host, socklen_t hostlen, char *serv, socklen_t servlen, int flags) {
172 return VSF_LINUX_APPLET_NETDB_ENTRY(getnameinfo)(addr, addrlen, host, hostlen, serv, servlen, flags);
173}
174VSF_LINUX_APPLET_NETDB_IMP(getaddrinfo, int, const char *name, const char *service, const struct addrinfo *hints, struct addrinfo **pai) {
176 return VSF_LINUX_APPLET_NETDB_ENTRY(getaddrinfo)(name, service, hints, pai);
177}
178VSF_LINUX_APPLET_NETDB_IMP(freeaddrinfo, void, struct addrinfo *pai) {
180 VSF_LINUX_APPLET_NETDB_ENTRY(freeaddrinfo)(pai);
181}
182VSF_LINUX_APPLET_NETDB_IMP(herror, void, const char *s) {
184 VSF_LINUX_APPLET_NETDB_ENTRY(herror)(s);
185}
186VSF_LINUX_APPLET_NETDB_IMP(hstrerror, const char *, int err) {
188 return VSF_LINUX_APPLET_NETDB_ENTRY(hstrerror)(err);
189}
190VSF_LINUX_APPLET_NETDB_IMP(setservent, void, int stayopen) {
192 return VSF_LINUX_APPLET_NETDB_ENTRY(setservent)(stayopen);
193}
194VSF_LINUX_APPLET_NETDB_IMP(endservent, void, void) {
196 VSF_LINUX_APPLET_NETDB_ENTRY(endservent)();
197}
198VSF_LINUX_APPLET_NETDB_IMP(getservent, struct servent *, void) {
200 return VSF_LINUX_APPLET_NETDB_ENTRY(getservent)();
201}
202VSF_LINUX_APPLET_NETDB_IMP(getservbyname, struct servent *, const char *name, const char *proto) {
204 return VSF_LINUX_APPLET_NETDB_ENTRY(getservbyname)(name, proto);
205}
206VSF_LINUX_APPLET_NETDB_IMP(getservbyport, struct servent *, int port, const char *proto) {
208 return VSF_LINUX_APPLET_NETDB_ENTRY(getservbyport)(port, proto);
209}
210
211#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_NETDB
212
213extern int * __vsf_linux_h_errno(void);
214
215struct hostent * gethostbyaddr(const void *addr, socklen_t len, int type);
216struct hostent * gethostbyname(const char *name);
217
218void setservent(int stayopen);
219void endservent(void);
220struct servent * getservent(void);
221struct servent * getservbyname(const char *name, const char *proto);
222struct servent * getservbyport(int port, const char *proto);
223
224const char * gai_strerror(int errcode);
225
226int getnameinfo(const struct sockaddr *addr, socklen_t addrlen,
227 char *host, socklen_t hostlen,
228 char *serv, socklen_t servlen, int flags);
229int getaddrinfo(const char *name, const char *service, const struct addrinfo *hints,
230 struct addrinfo **pai);
231void freeaddrinfo(struct addrinfo *pai);
232
233void herror(const char *s);
234const char * hstrerror(int err);
235
236#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_NETDB
237
238#ifdef __cplusplus
239}
240#endif
241#endif
#define getservbyport
Definition netdb.h:81
#define setservent
Definition netdb.h:77
#define gethostbyname
Definition netdb.h:72
__VSF_VPLT_DECORATOR__ vsf_linux_netdb_vplt_t vsf_linux_netdb_vplt
Definition vsf_linux_socket.c:801
int * __vsf_linux_h_errno(void)
Definition vsf_linux_socket.c:242
#define getservbyname
Definition netdb.h:80
#define gai_strerror
Definition netdb.h:71
#define getaddrinfo
Definition netdb.h:73
#define herror
Definition netdb.h:75
#define gethostbyaddr
Definition netdb.h:70
#define hstrerror
Definition netdb.h:76
#define getnameinfo
Definition netdb.h:69
#define endservent
Definition netdb.h:78
#define getservent
Definition netdb.h:79
#define freeaddrinfo
Definition netdb.h:74
uint32_t socklen_t
Definition socket.h:68
unsigned uint32_t
Definition stdint.h:9
Definition netdb.h:28
struct sockaddr * ai_addr
Definition netdb.h:34
char * ai_canonname
Definition netdb.h:35
int ai_socktype
Definition netdb.h:31
int ai_protocol
Definition netdb.h:32
socklen_t ai_addrlen
Definition netdb.h:33
struct addrinfo * ai_next
Definition netdb.h:36
int ai_flags
Definition netdb.h:29
int ai_family
Definition netdb.h:30
Definition netdb.h:39
int h_addrtype
Definition netdb.h:42
char * h_name
Definition netdb.h:40
char ** h_addr_list
Definition netdb.h:44
int h_length
Definition netdb.h:43
char ** h_aliases
Definition netdb.h:41
Definition netdb.h:48
uint32_t n_net
Definition netdb.h:52
char ** n_aliases
Definition netdb.h:50
char * n_name
Definition netdb.h:49
int n_addrtype
Definition netdb.h:51
Definition netdb.h:55
int p_proto
Definition netdb.h:58
char ** p_aliases
Definition netdb.h:57
char * p_name
Definition netdb.h:56
Definition netdb.h:61
char * s_name
Definition netdb.h:62
char * s_proto
Definition netdb.h:65
char ** s_aliases
Definition netdb.h:63
int s_port
Definition netdb.h:64
Definition socket.h:72
Definition netdb.h:113
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(freeaddrinfo)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setservent)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(gethostbyname)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(herror)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getnameinfo)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(gethostbyaddr)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getservbyname)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(hstrerror)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getservent)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(__vsf_linux_h_errno)
vsf_vplt_info_t info
Definition netdb.h:114
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(gai_strerror)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(endservent)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getaddrinfo)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getservbyport)
Definition vsf_cfg.h:95
vk_av_control_type_t type
Definition vsf_audio.h:170
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165