X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fgssd%2Fcacheio.c;h=f47f1fa9d9be936713dd556163f7dad09f881ab8;hp=07658e977a16685be7375e0a6f5ba9fbfb55da74;hb=44f7f2f92038572663acf22b4fd8dc34640c8c81;hpb=ee664fd246d77010af13fb557407c612752a5ea8 diff --git a/utils/gssd/cacheio.c b/utils/gssd/cacheio.c index 07658e9..f47f1fa 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) @@ -131,6 +132,17 @@ void qword_addint(char **bpp, int *lp, int n) *lp -= len; } +void qword_adduint(char **bpp, int *lp, unsigned int n) +{ + int len; + + len = snprintf(*bpp, *lp, "%u ", n); + if (len > *lp) + len = *lp; + *bpp += len; + *lp -= len; +} + void qword_addeol(char **bpp, int *lp) { if (*lp <= 0) @@ -141,17 +153,12 @@ void qword_addeol(char **bpp, int *lp) } static char qword_buf[8192]; -static char tmp_buf[8192]; void qword_print(FILE *f, char *str) { char *bp = qword_buf; int len = sizeof(qword_buf); qword_add(&bp, &len, str); fwrite(qword_buf, bp-qword_buf, 1, f); - /* XXX: */ - memcpy(tmp_buf, qword_buf, bp-qword_buf); - tmp_buf[bp-qword_buf] = '\0'; - printerr(2, "%s", tmp_buf); } void qword_printhex(FILE *f, char *str, int slen) @@ -160,23 +167,19 @@ void qword_printhex(FILE *f, char *str, int slen) int len = sizeof(qword_buf); qword_addhex(&bp, &len, str, slen); fwrite(qword_buf, bp-qword_buf, 1, f); - /* XXX: */ - memcpy(tmp_buf, qword_buf, bp-qword_buf); - tmp_buf[bp-qword_buf] = '\0'; - printerr(2, "%s", tmp_buf); } void qword_printint(FILE *f, int num) { fprintf(f, "%d ", num); - printerr(2, "%d ", num); } -void qword_eol(FILE *f) +int qword_eol(FILE *f) { + int err; fprintf(f,"\n"); - fflush(f); - printerr(2, "\n"); + err = fflush(f); + return err; } @@ -264,7 +267,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 +284,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; }