X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=lib%2Freq.c;h=64944bf56b1c93a949526615faf01f4c14047144;hb=dd55bfef25d9301b797b24080fee710b05d12849;hp=2f975c90ebdc3f33bb47b3e2f6ae22cc148c3579;hpb=c7b1ef35df69f303e185a1f53f97f4106dc0c3af;p=ashd.git diff --git a/lib/req.c b/lib/req.c index 2f975c9..64944bf 100644 --- a/lib/req.c +++ b/lib/req.c @@ -95,11 +95,10 @@ static void trim(struct charbuf *buf) { char *p; - if(buf->d > 0) { - for(p = buf->b; (p - buf->b < buf->d) && isspace(*p); p++); - memmove(buf->b, p, buf->d -= (p - buf->b)); + for(p = buf->b; (p - buf->b < buf->d) && isspace(*p); p++); + memmove(buf->b, p, buf->d -= (p - buf->b)); + if(buf->d > 0) for(p = buf->b + buf->d - 1; (p > buf->b) && isspace(*p); p--, buf->d--); - } } int parseheaders(struct hthead *head, FILE *in) @@ -192,6 +191,21 @@ void headappheader(struct hthead *head, const char *name, const char *val) head->headers[i][1] = sstrdup(val); } +void headrmheader(struct hthead *head, const char *name) +{ + int i; + + for(i = 0; i < head->noheaders; i++) { + if(!strcasecmp(head->headers[i][0], name)) { + free(head->headers[i][0]); + free(head->headers[i][1]); + free(head->headers[i]); + memmove(head->headers + i, head->headers + i + 1, sizeof(head->headers) * (--head->noheaders - i)); + return; + } + } +} + int writeresp(FILE *out, struct hthead *resp) { int i;