]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/gssd/cacheio.c
Properly report errors in readline() function
[nfs-utils.git] / utils / gssd / cacheio.c
index 07658e977a16685be7375e0a6f5ba9fbfb55da74..75c7a5d8e3b4a0d481d394db8a39257a4afe8bf3 100644 (file)
@@ -55,6 +55,7 @@
 #include <time.h>
 #include <stdlib.h>
 #include <string.h>
+#include <errno.h>
 #include "err_util.h"
 
 void qword_add(char **bpp, int *lp, char *str)
@@ -264,7 +265,8 @@ int readline(int fd, char **buf, int *lenp)
        }
        len = read(fd, *buf, *lenp);
        if (len <= 0) {
-               printerr(2, "read error in readline: %d\n", len);
+               printerr(0, "readline: read error: len %d errno %d (%s)\n",
+                        len, errno, strerror(errno));
                return 0;
        }
        while ((*buf)[len-1] != '\n') {
@@ -280,12 +282,14 @@ int readline(int fd, char **buf, int *lenp)
                *buf = new;
                nl = read(fd, *buf +len, *lenp - len);
                if (nl <= 0 ) {
-                       printerr(2, "read error in readline: %d\n", nl);
+                       printerr(0, "readline: read error: len %d "
+                                "errno %d (%s)\n", nl, errno, strerror(errno));
                        return 0;
                }
                len += nl;
        }
        (*buf)[len-1] = 0;
-       printerr(1, "read line with %d characters:\n%s\n", *lenp, *buf);
+       printerr(3, "readline: read %d chars into buffer of size %d:\n%s\n",
+                len, *lenp, *buf);
        return 1;
 }