MINOR: capture: extend the captures to support non-header keys

This patch adds support for captures with no header name. The purpose
is to allow extra captures to be defined and logged along with the
header captures.
diff --git a/include/types/capture.h b/include/types/capture.h
index e37cc48..cd8f2a7 100644
--- a/include/types/capture.h
+++ b/include/types/capture.h
@@ -27,8 +27,8 @@
 
 struct cap_hdr {
     struct cap_hdr *next;
-    char *name;				/* header name, case insensitive */
-    int namelen;			/* length of the header name, to speed-up lookups */
+    char *name;				/* header name, case insensitive, NULL if not header */
+    int namelen;			/* length of the header name, to speed-up lookups, 0 if !name */
     int len;				/* capture length, not including terminal zero */
     int index;				/* index in the output array */
     struct pool_head *pool;		/* pool of pre-allocated memory area of (len+1) bytes */
diff --git a/src/proto_http.c b/src/proto_http.c
index bd9b13a..082f161 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -1029,7 +1029,7 @@
 
 /*
  * Capture headers from message starting at <som> according to header list
- * <cap_hdr>, and fill the <idx> structure appropriately.
+ * <cap_hdr>, and fill the <cap> pointers appropriately.
  */
 void capture_headers(char *som, struct hdr_idx *idx,
 		     char **cap, struct cap_hdr *cap_hdr)
@@ -1054,7 +1054,7 @@
 			sov++;
 				
 		for (h = cap_hdr; h; h = h->next) {
-			if ((h->namelen == col - sol) &&
+			if (h->namelen && (h->namelen == col - sol) &&
 			    (strncasecmp(sol, h->name, h->namelen) == 0)) {
 				if (cap[h->index] == NULL)
 					cap[h->index] =