? identd ? identd.8.manlint Index: identd.c =================================================================== RCS file: /cvs/src/usr.sbin/identd/identd.c,v retrieving revision 1.28 diff -u -p -r1.28 identd.c --- identd.c 27 Mar 2015 07:16:38 -0000 1.28 +++ identd.c 3 Aug 2015 03:41:46 -0000 @@ -473,11 +473,14 @@ parent_wr(int fd, short events, void *ar n = writev(fd, iov, iovcnt); if (n == -1) { - if (errno == EAGAIN) { + switch (errno) { + case EINTR: + case EAGAIN: event_add(&proc_wr, NULL); return; + default: + lerr(1, "parent write"); } - lerr(1, "parent write"); } if (n != sizeof(r->error) + r->buflen) @@ -585,6 +588,7 @@ child_wr(int fd, short events, void *arg switch (n) { case -1: switch (errno) { + case EINTR: case EAGAIN: event_add(&proc_wr, NULL); return; @@ -866,9 +870,10 @@ identd_resolving(int fd, short events, v case EAGAIN: return; default: - lerrx(1, "resolving read"); + lwarn("resolving read"); + break; } - /* NOTREACHED */ + break; case 0: ldebug("%s closed connection during resolving", gethost(&c->client.ss)); @@ -989,7 +994,8 @@ identd_response(int fd, short events, vo /* meh, try a write */ break; default: - lerrx(1, "response read"); + lwarn("response read"); + goto done; } break; case 0: @@ -1012,6 +1018,7 @@ identd_response(int fd, short events, vo n = write(fd, c->buf + c->bufoff, c->buflen - c->bufoff); if (n == -1) { switch (errno) { + case EINTR: case EAGAIN: return; /* try again later */ default: