From df1989aeaece61bf958ef01b1ce46b0565453c92 Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Thu, 2 Feb 2006 18:08:25 +0000 Subject: [PATCH] Make urlget return errors on non-200 http codes --- commands/urlget/urlget.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/commands/urlget/urlget.c b/commands/urlget/urlget.c index 44be5e22a..37c343c15 100755 --- a/commands/urlget/urlget.c +++ b/commands/urlget/urlget.c @@ -240,8 +240,28 @@ int len; write(fd, qs, len); skip = 1; - while((s = read(fd, buffer, sizeof(buffer))) > 0) { + while((s = read(fd, buffer, sizeof(buffer)-1)) > 0) { + buffer[s] = '\0'; if(skip) { + static int firstline = 1; + if(firstline) { + static char linebuf[1000]; + int l = 0; + int c, v1, v2, e; + if(s >= sizeof(linebuf)-l) + c = sizeof(linebuf)-1-l; + else c = s; + memcpy(linebuf+l, buffer, c); + linebuf[l+c] = '\0'; + if(strchr(buffer, '\n') || strchr(buffer, '\r')) + firstline = 0; + if(sscanf(linebuf, "HTTP/%d.%d %d ", &v1, &v2, &e) == 3 + && e != 200) { + fprintf(stderr, "HTTP error %d\n", e); + return -1; + } + } + s2 = skipit(buffer, s, &skip); if(headers) write(1, buffer, s - s2); -- 2.44.0