MINOR: http: Make new "early-hint" http-request action really be parsed.

This patch adds a "early_hint" struct to "arg" union of "act_rule" struct
and parse "early-hint" http-request keyword with it using the same
code as for "(add|set)-header" parser.
diff --git a/include/types/action.h b/include/types/action.h
index b24ce21..0367ea9 100644
--- a/include/types/action.h
+++ b/include/types/action.h
@@ -116,6 +116,11 @@
 			struct list fmt;       /* log-format compatible expression */
 			struct my_regex re;    /* used by replace-header and replace-value */
 		} hdr_add;                     /* args used by "add-header" and "set-header" */
+		struct {
+			char *name;            /* header name */
+			int name_len;          /* header name's length */
+			struct list fmt;       /* log-format compatible expression */
+		} early_hint;
 		struct redirect_rule *redir;   /* redirect rule or "http-request redirect" */
 		int nice;                      /* nice value for ACT_HTTP_SET_NICE */
 		int loglevel;                  /* log-level value for ACT_HTTP_SET_LOGL */
diff --git a/src/http_rules.c b/src/http_rules.c
index 87117bf..c7b5a71 100644
--- a/src/http_rules.c
+++ b/src/http_rules.c
@@ -210,8 +210,17 @@
 		cur_arg++;
 	} else if (strcmp(args[0], "add-header") == 0 || strcmp(args[0], "set-header") == 0 ||
 	           strcmp(args[0], "early-hint") == 0) {
+		char **hdr_name;
+		int *hdr_name_len;
+		struct list *fmt;
+
 		rule->action = *args[0] == 'a' ? ACT_HTTP_ADD_HDR :
 		               *args[0] == 's' ? ACT_HTTP_SET_HDR : ACT_HTTP_EARLY_HINT;
+
+		hdr_name     = *args[0] == 'e' ? &rule->arg.early_hint.name     : &rule->arg.hdr_add.name;
+		hdr_name_len = *args[0] == 'e' ? &rule->arg.early_hint.name_len : &rule->arg.hdr_add.name_len;
+		fmt          = *args[0] == 'e' ? &rule->arg.early_hint.fmt      : &rule->arg.hdr_add.fmt;
+
 		cur_arg = 1;
 
 		if (!*args[cur_arg] || !*args[cur_arg+1] ||
@@ -221,13 +230,13 @@
 			goto out_err;
 		}
 
-		rule->arg.hdr_add.name = strdup(args[cur_arg]);
-		rule->arg.hdr_add.name_len = strlen(rule->arg.hdr_add.name);
-		LIST_INIT(&rule->arg.hdr_add.fmt);
+		*hdr_name = strdup(args[cur_arg]);
+		*hdr_name_len = strlen(*hdr_name);
+		LIST_INIT(fmt);
 
 		proxy->conf.args.ctx = ARGC_HRQ;
 		error = NULL;
-		if (!parse_logformat_string(args[cur_arg + 1], proxy, &rule->arg.hdr_add.fmt, LOG_OPT_HTTP,
+		if (!parse_logformat_string(args[cur_arg + 1], proxy, fmt, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR, &error)) {
 			ha_alert("parsing [%s:%d]: 'http-request %s': %s.\n",
 				 file, linenum, args[0], error);