MINOR: http: add http_hdr_del() to remove a header from a list
This one removes all occurrences of the specified header field name from
a complete list and returns the new count.
diff --git a/include/common/http-hdr.h b/include/common/http-hdr.h
index a0bb341..8cc7ee7 100644
--- a/include/common/http-hdr.h
+++ b/include/common/http-hdr.h
@@ -47,4 +47,21 @@
hdr->v = v;
}
+/* removes all occurrences of header name <n> in list <hdr> and returns the new count. The
+ * list must be terminated by the empty header.
+ */
+static inline int http_del_hdr(struct http_hdr *hdr, const struct ist n)
+{
+ int src = 0, dst = 0;
+
+ do {
+ if (!isteqi(hdr[src].n, n)) {
+ if (src != dst)
+ hdr[dst] = hdr[src];
+ dst++;
+ }
+ } while (hdr[src++].n.len);
+
+ return dst;
+}
#endif /* _COMMON_HTTP_HDR_H */