Updated changelog.
[ashd.git] / lib / req.c
index 2f975c9..64944bf 100644 (file)
--- 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;