X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=utils%2Fgssd%2Fcacheio.c;h=75c7a5d8e3b4a0d481d394db8a39257a4afe8bf3;hb=de95c40031904260a31a3686d6a48d7842abccb4;hp=ac76c065d09a023cfa9d562ce199139d189de1b5;hpb=4fde9011946076918021a7007408b0d9802e80d0;p=nfs-utils.git diff --git a/utils/gssd/cacheio.c b/utils/gssd/cacheio.c index ac76c06..75c7a5d 100644 --- a/utils/gssd/cacheio.c +++ b/utils/gssd/cacheio.c @@ -55,6 +55,7 @@ #include #include #include +#include #include "err_util.h" void qword_add(char **bpp, int *lp, char *str) @@ -244,6 +245,8 @@ int qword_get_int(char **bpp, int *anint) return 0; } +#define READLINE_BUFFER_INCREMENT 2048 + int readline(int fd, char **buf, int *lenp) { /* read a line into *buf, which is malloced *len long @@ -254,15 +257,16 @@ int readline(int fd, char **buf, int *lenp) int len; if (*lenp == 0) { - char *b = malloc(128); + char *b = malloc(READLINE_BUFFER_INCREMENT); if (b == NULL) return 0; *buf = b; - *lenp = 128; + *lenp = READLINE_BUFFER_INCREMENT; } 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') { @@ -271,19 +275,21 @@ int readline(int fd, char **buf, int *lenp) */ char *new; int nl; - *lenp += 128; + *lenp += READLINE_BUFFER_INCREMENT; new = realloc(*buf, *lenp); if (new == NULL) return 0; *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; }