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 + buf->d - 1; (p > buf->b) && isspace(*p); p--, buf->d--);
+ 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)
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;