]> git.meshlink.io Git - meshlink/blob - src/fake-getaddrinfo.h
Skeleton design for opening a reliable channel
[meshlink] / src / fake-getaddrinfo.h
1 #ifndef _FAKE_GETADDRINFO_H
2 #define _FAKE_GETADDRINFO_H
3
4 #include "fake-gai-errnos.h"
5
6 #ifndef AI_PASSIVE
7 # define AI_PASSIVE        1
8 # define AI_CANONNAME      2
9 #endif
10
11 #ifndef NI_NUMERICHOST
12 # define NI_NUMERICHOST    2
13 # define NI_NAMEREQD       4
14 # define NI_NUMERICSERV    8
15 #endif
16
17 #ifndef AI_NUMERICHOST
18 #define AI_NUMERICHOST     4
19 #endif
20
21 #ifndef HAVE_STRUCT_ADDRINFO
22 struct addrinfo {
23         int     ai_flags;               /* AI_PASSIVE, AI_CANONNAME */
24         int     ai_family;              /* PF_xxx */
25         int     ai_socktype;            /* SOCK_xxx */
26         int     ai_protocol;            /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
27         size_t  ai_addrlen;             /* length of ai_addr */
28         char    *ai_canonname;          /* canonical name for hostname */
29         struct sockaddr *ai_addr;       /* binary address */
30         struct addrinfo *ai_next;       /* next structure in linked list */
31 };
32 #endif /* !HAVE_STRUCT_ADDRINFO */
33
34 #if !HAVE_DECL_GETADDRINFO
35 int getaddrinfo(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res);
36 #endif /* !HAVE_GETADDRINFO */
37
38 #if !HAVE_DECL_GAI_STRERROR
39 char *gai_strerror(int ecode);
40 #endif /* !HAVE_GAI_STRERROR */
41
42 #if !HAVE_DECL_FREEADDRINFO
43 void freeaddrinfo(struct addrinfo *ai);
44 #endif /* !HAVE_FREEADDRINFO */
45
46 #endif /* _FAKE_GETADDRINFO_H */