-/*
- * server.c - Utilities for fake servers used by the nmh test suite
+/* server.c - Utilities for fake servers used by the nmh test suite
*
* This code is Copyright (c) 2014, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
static void killpidfile(void);
static void handleterm(int);
+#ifndef EPROTOTYPE
+#define EPROTOTYPE 0
+#endif
+
static int
try_bind(int socket, const struct sockaddr *address, socklen_t len)
{
exit(1);
}
+ freeaddrinfo(res);
+
if (listen(l, 1) == -1) {
fprintf(stderr, "Unable to listen on socket: %s\n",
strerror(errno));
iov[1].iov_len = 2;
/* ECONNRESET just means the client already closed its end */
+ /* MacOS X can also return EPROTOTYPE (!) here sometimes */
/* XXX is it useful to log errors here at all? */
- if (writev(socket, iov, 2) < 0 && errno != ECONNRESET) {
- perror ("writev");
+ if (writev(socket, iov, 2) < 0 && errno != ECONNRESET &&
+ errno != EPROTOTYPE) {
+ perror ("server writev");
}
}