iAdd true getaddrinfo errors, but add inconsistency. - geomyidae - A small C-based gopherd. Err bitreich.org 70 hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70 1Log /scm/geomyidae/log.gph bitreich.org 70 1Files /scm/geomyidae/files.gph bitreich.org 70 1Refs /scm/geomyidae/refs.gph bitreich.org 70 1Tags /scm/geomyidae/tag bitreich.org 70 1README /scm/geomyidae/file/README.gph bitreich.org 70 1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit a8e69abfa2b38ef12bad79516bf02da7701d549c /scm/geomyidae/commit/a8e69abfa2b38ef12bad79516bf02da7701d549c.gph bitreich.org 70 1parent bc06de10b6d279ef57ad0ba294610447bd2988fc /scm/geomyidae/commit/bc06de10b6d279ef57ad0ba294610447bd2988fc.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Thu, 30 Aug 2018 19:07:11 +0200 Err bitreich.org 70 i Err bitreich.org 70 iAdd true getaddrinfo errors, but add inconsistency. Err bitreich.org 70 i Err bitreich.org 70 iWe should all move to Plan 9. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M main.c | 12 +++++++++--- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 9 insertions(+), 3 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/main.c b/main.c /scm/geomyidae/file/main.c.gph bitreich.org 70 i@@ -290,16 +290,22 @@ initsignals(void) Err bitreich.org 70 i signal(SIGPIPE, SIG_IGN); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+/* Err bitreich.org 70 i+ * TODO: Move Linux and BSD to Plan 9 socket and bind handling, so we do not Err bitreich.org 70 i+ * need the inconsistent return and exit on getaddrinfo. Err bitreich.org 70 i+ */ Err bitreich.org 70 i int Err bitreich.org 70 i getlistenfd(struct addrinfo *hints, char *bindip, char *port) Err bitreich.org 70 i { Err bitreich.org 70 i char addstr[INET6_ADDRSTRLEN]; Err bitreich.org 70 i struct addrinfo *ai, *rp; Err bitreich.org 70 i void *sinaddr; Err bitreich.org 70 i- int on, listfd; Err bitreich.org 70 i+ int on, listfd, aierr; Err bitreich.org 70 i Err bitreich.org 70 i- if (getaddrinfo(bindip, port, hints, &ai) || ai == NULL) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i+ if ((aierr = getaddrinfo(bindip, port, hints, &ai)) || ai == NULL) { Err bitreich.org 70 i+ fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(aierr)); Err bitreich.org 70 i+ exit(1); Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i listfd = -1; Err bitreich.org 70 i on = 1; Err bitreich.org 70 .