]> arthur.barton.de Git - ngircd-alex.git/commitdiff
simplify Resolve_Read().
authorFlorian Westphal <fw@strlen.de>
Sat, 12 Aug 2006 11:54:23 +0000 (11:54 +0000)
committerFlorian Westphal <fw@strlen.de>
Sat, 12 Aug 2006 11:54:23 +0000 (11:54 +0000)
src/ngircd/resolve.c

index 7f10698d3aab9437e9f71947343753b154c37660..ec993037cb6c6badf96b54395edfee9bd605aa35 100644 (file)
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: resolve.c,v 1.24 2006/05/10 21:24:01 alex Exp $";
+static char UNUSED id[] = "$Id: resolve.c,v 1.25 2006/08/12 11:54:23 fw Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -340,33 +340,24 @@ Resolve_Shutdown( RES_STAT *s)
 GLOBAL size_t
 Resolve_Read( RES_STAT *s, void* readbuf, size_t buflen)
 {
-       int err;
        ssize_t bytes_read;
 
        assert(buflen > 0);
 
        /* Read result from pipe */
-       errno = 0;
        bytes_read = read(s->resolver_fd, readbuf, buflen);
        if (bytes_read < 0) {
-               if (errno != EAGAIN) {
-                       err = errno;
-                       Log( LOG_CRIT, "Resolver: Can't read result: %s!", strerror(err));
-                       Resolve_Shutdown(s);
-                       errno = err;
+               if (errno == EAGAIN)
                        return 0;
-               }
-               return 0;
-       }
 
-       Resolve_Shutdown(s);
-       if (bytes_read == 0) {  /* EOF: lookup failed */
+               Log( LOG_CRIT, "Resolver: Can't read result: %s!", strerror(errno));
+               bytes_read = 0;
+       }
 #ifdef DEBUG
+       else if (bytes_read == 0)
                Log( LOG_DEBUG, "Resolver: Can't read result: EOF");
 #endif
-               return 0;
-       }
-
+       Resolve_Shutdown(s);
        return (size_t)bytes_read;
 }
 /* -eof- */