short deny_status; /* HTTP status to return to user when denying */
enum act_return (*action_ptr)(struct act_rule *rule, struct proxy *px,
struct session *sess, struct stream *s); /* ptr to custom action */
+ struct action_kw *kw;
union {
struct {
char *realm;
cur_arg = 1;
/* try in the module list */
rule->from = ACT_F_HTTP_REQ;
+ rule->kw = custom;
if (custom->parse(args, &cur_arg, proxy, rule, &errmsg) == ACT_RET_PRS_ERR) {
Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : %s.\n",
file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
cur_arg = 1;
/* try in the module list */
rule->from = ACT_F_HTTP_RES;
+ rule->kw = custom;
if (custom->parse(args, &cur_arg, proxy, rule, &errmsg) == ACT_RET_PRS_ERR) {
Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule : %s.\n",
file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
if (kw) {
arg++;
rule->from = ACT_F_TCP_RES_CNT;
+ rule->kw = kw;
if (kw->parse((const char **)args, &arg, curpx, rule, err) == ACT_RET_PRS_ERR)
return -1;
} else {
struct action_kw *kw;
if (where & SMP_VAL_FE_CON_ACC) {
kw = tcp_req_conn_action(args[arg]);
+ rule->kw = kw;
rule->from = ACT_F_TCP_REQ_CON;
} else {
kw = tcp_req_cont_action(args[arg]);
+ rule->kw = kw;
rule->from = ACT_F_TCP_REQ_CNT;
}
if (kw) {