154
154
char buf[MAI_SERVPORT_STRSIZE];
155
155
} MAI_SERVPORT_STR;
157
extern int hostname_to_sockaddr(const char *, const char *, int,
157
extern int hostname_to_sockaddr_pf(const char *, int, const char *, int,
159
159
extern int hostaddr_to_sockaddr(const char *, const char *, int,
160
160
struct addrinfo **);
161
161
extern int sockaddr_to_hostaddr(const struct sockaddr *, SOCKADDR_SIZE,
169
169
#define MAI_STRERROR(e) ((e) == EAI_SYSTEM ? strerror(errno) : gai_strerror(e))
171
#define hostname_to_sockaddr(host, serv, sock, res) \
172
hostname_to_sockaddr_pf((host), PF_UNSPEC, (serv), (sock), (res))
172
175
* Macros for the case where we really don't want to be bothered with things
178
#define HOSTNAME_TO_SOCKADDR_PF(host, pf, serv, sock, res) \
181
_aierr = hostname_to_sockaddr_pf((host), (pf), (serv), (sock), (res)); \
183
msg_fatal("hostname_to_sockaddr_pf: %s", MAI_STRERROR(_aierr)); \
175
186
#define HOSTNAME_TO_SOCKADDR(host, serv, sock, res) \
178
_aierr = hostname_to_sockaddr((host), (serv), (sock), (res)); \
180
msg_fatal("hostname_to_sockaddr: %s", MAI_STRERROR(_aierr)); \
187
HOSTNAME_TO_SOCKADDR_PF((host), PF_UNSPEC, (serv), (sock), (res))
183
189
#define HOSTADDR_TO_SOCKADDR(host, serv, sock, res) \