commit a8e69abfa2b38ef12bad79516bf02da7701d549c
parent bc06de10b6d279ef57ad0ba294610447bd2988fc
Author: Christoph Lohmann <20h@r-36.net>
Date: Thu, 30 Aug 2018 19:07:11 +0200
Add true getaddrinfo errors, but add inconsistency.
We should all move to Plan 9.
Diffstat:
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/main.c b/main.c
@@ -290,16 +290,22 @@ initsignals(void)
signal(SIGPIPE, SIG_IGN);
}
+/*
+ * TODO: Move Linux and BSD to Plan 9 socket and bind handling, so we do not
+ * need the inconsistent return and exit on getaddrinfo.
+ */
int
getlistenfd(struct addrinfo *hints, char *bindip, char *port)
{
char addstr[INET6_ADDRSTRLEN];
struct addrinfo *ai, *rp;
void *sinaddr;
- int on, listfd;
+ int on, listfd, aierr;
- if (getaddrinfo(bindip, port, hints, &ai) || ai == NULL)
- return -1;
+ if ((aierr = getaddrinfo(bindip, port, hints, &ai)) || ai == NULL) {
+ fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(aierr));
+ exit(1);
+ }
listfd = -1;
on = 1;