Don't use strlen() on a NULL pointer.
[tinc] / lib / 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, 
36                 const struct addrinfo *hints, struct addrinfo **res);
37 #endif /* !HAVE_GETADDRINFO */
38
39 #if !HAVE_DECL_GAI_STRERROR
40 char *gai_strerror(int ecode);
41 #endif /* !HAVE_GAI_STRERROR */
42
43 #if !HAVE_DECL_FREEADDRINFO
44 void freeaddrinfo(struct addrinfo *ai);
45 #endif /* !HAVE_FREEADDRINFO */
46
47 #endif /* _FAKE_GETADDRINFO_H */