printf core: fix gratuitous integer formatting buffer size
[musl] / include / netdb.h
1 #ifndef _NETDB_H
2 #define _NETDB_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #include <features.h>
9 #include <netinet/in.h>
10
11 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
12 #define __NEED_size_t
13 #include <bits/alltypes.h>
14 #endif
15
16 struct addrinfo {
17         int ai_flags;
18         int ai_family;
19         int ai_socktype;
20         int ai_protocol;
21         socklen_t ai_addrlen;
22         struct sockaddr *ai_addr;
23         char *ai_canonname;
24         struct addrinfo *ai_next;
25 };
26
27 #define AI_PASSIVE      0x01
28 #define AI_CANONNAME    0x02
29 #define AI_NUMERICHOST  0x04
30 #define AI_V4MAPPED     0x08
31 #define AI_ALL          0x10
32 #define AI_ADDRCONFIG   0x20
33 #define AI_NUMERICSERV  0x400
34
35
36 #define NI_NUMERICHOST  0x01
37 #define NI_NUMERICSERV  0x02
38 #define NI_NOFQDN       0x04
39 #define NI_NAMEREQD     0x08
40 #define NI_DGRAM        0x10
41 #define NI_NUMERICSCOPE 0x100
42
43 #define EAI_BADFLAGS   -1
44 #define EAI_NONAME     -2
45 #define EAI_AGAIN      -3
46 #define EAI_FAIL       -4
47 #define EAI_NODATA     -5
48 #define EAI_FAMILY     -6
49 #define EAI_SOCKTYPE   -7
50 #define EAI_SERVICE    -8
51 #define EAI_MEMORY     -10
52 #define EAI_SYSTEM     -11
53 #define EAI_OVERFLOW   -12
54
55 int getaddrinfo (const char *__restrict, const char *__restrict, const struct addrinfo *__restrict, struct addrinfo **__restrict);
56 void freeaddrinfo (struct addrinfo *);
57 int getnameinfo (const struct sockaddr *__restrict, socklen_t, char *__restrict, socklen_t, char *__restrict, socklen_t, int);
58 const char *gai_strerror(int);
59
60
61 /* Legacy functions follow (marked OBsolete in SUS) */
62
63 struct netent {
64         char *n_name;
65         char **n_aliases;
66         int n_addrtype;
67         uint32_t n_net;
68 };
69
70 struct hostent {
71         char *h_name;
72         char **h_aliases;
73         int h_addrtype;
74         int h_length;
75         char **h_addr_list;
76 };
77 #define h_addr h_addr_list[0]
78
79 struct servent {
80         char *s_name;
81         char **s_aliases;
82         int s_port;
83         char *s_proto;
84 };
85
86 struct protoent {
87         char *p_name;
88         char **p_aliases;
89         int p_proto;
90 };
91
92 void sethostent (int);
93 void endhostent (void);
94 struct hostent *gethostent (void);
95
96 void setnetent (int);
97 void endnetent (void);
98 struct netent *getnetent (void);
99 struct netent *getnetbyaddr (uint32_t, int);
100 struct netent *getnetbyname (const char *);
101
102 void setservent (int);
103 void endservent (void);
104 struct servent *getservent (void);
105 struct servent *getservbyname (const char *, const char *);
106 struct servent *getservbyport (int, const char *);
107
108 void setprotoent (int);
109 void endprotoent (void);
110 struct protoent *getprotoent (void);
111 struct protoent *getprotobyname (const char *);
112 struct protoent *getprotobynumber (int);
113
114 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \
115  || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \
116  || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
117 struct hostent *gethostbyname (const char *);
118 struct hostent *gethostbyaddr (const void *, socklen_t, int);
119 #ifdef __GNUC__
120 __attribute__((const))
121 #endif
122 int *__h_errno_location(void);
123 #define h_errno (*__h_errno_location())
124 #define HOST_NOT_FOUND 1
125 #define TRY_AGAIN      2
126 #define NO_RECOVERY    3
127 #define NO_DATA        4
128 #define NO_ADDRESS     NO_DATA
129 #endif
130
131 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
132 void herror(const char *);
133 const char *hstrerror(int);
134 int gethostbyname_r(const char *, struct hostent *, char *, size_t, struct hostent **, int *);
135 int gethostbyname2_r(const char *, int, struct hostent *, char *, size_t, struct hostent **, int *);
136 struct hostent *gethostbyname2(const char *, int);
137 int gethostbyaddr_r(const void *, socklen_t, int, struct hostent *, char *, size_t, struct hostent **, int *);
138 int getservbyport_r(int, const char *, struct servent *, char *, size_t, struct servent **);
139 int getservbyname_r(const char *, const char *, struct servent *, char *, size_t, struct servent **);
140 #define EAI_NODATA     -5
141 #define EAI_ADDRFAMILY -9
142 #define EAI_INPROGRESS -100
143 #define EAI_CANCELED   -101
144 #define EAI_NOTCANCELED -102
145 #define EAI_ALLDONE    -103
146 #define EAI_INTR       -104
147 #define EAI_IDN_ENCODE -105
148 #define NI_MAXHOST 255
149 #define NI_MAXSERV 32
150 #endif
151
152
153 #ifdef __cplusplus
154 }
155 #endif
156
157 #endif