MINOR: proto_tcp: add session in the action prototype

Some actions require the "struct session" while the "struct stream" is not
avalaible. This patch adds a pointer to the session.
This commit is contained in:
Thierry FOURNIER 2015-08-10 18:30:18 +02:00 committed by Willy Tarreau
parent c89f4f5305
commit 422a3af4ce
4 changed files with 10 additions and 8 deletions

View File

@ -53,7 +53,7 @@ struct tcp_rule {
struct acl_cond *cond;
int action;
int (*action_ptr)(struct tcp_rule *rule, struct proxy *px,
struct stream *s);
struct session *sess, struct stream *s);
union {
struct track_ctr_prm trk_ctr;
struct capture_prm cap;

View File

@ -4380,7 +4380,7 @@ static int hlua_request_act_wrapper(struct hlua_rule *rule, struct proxy *px,
* "hlua_request_act_wrapper" for executing the LUA code.
*/
int hlua_tcp_req_act_wrapper(struct tcp_rule *tcp_rule, struct proxy *px,
struct stream *s)
struct session *sess, struct stream *s)
{
return hlua_request_act_wrapper((struct hlua_rule *)tcp_rule->act_prm.data[0],
px, s, AN_REQ_INSPECT_FE);
@ -4390,7 +4390,7 @@ int hlua_tcp_req_act_wrapper(struct tcp_rule *tcp_rule, struct proxy *px,
* "hlua_request_act_wrapper" for executing the LUA code.
*/
int hlua_tcp_res_act_wrapper(struct tcp_rule *tcp_rule, struct proxy *px,
struct stream *s)
struct session *sess, struct stream *s)
{
return hlua_request_act_wrapper((struct hlua_rule *)tcp_rule->act_prm.data[0],
px, s, AN_RES_INSPECT);

View File

@ -1231,7 +1231,7 @@ resume_execution:
}
else {
/* Custom keywords. */
if (rule->action_ptr && !rule->action_ptr(rule, s->be, s)) {
if (rule->action_ptr && !rule->action_ptr(rule, s->be, s->sess, s)) {
s->current_rule = rule;
goto missing_data;
}
@ -1356,7 +1356,7 @@ resume_execution:
}
else {
/* Custom keywords. */
if (rule->action_ptr && !rule->action_ptr(rule, s->be, s)) {
if (rule->action_ptr && !rule->action_ptr(rule, s->be, s->sess, s)) {
channel_dont_close(rep);
s->current_rule = rule;
return 0;
@ -1441,7 +1441,7 @@ int tcp_exec_req_rules(struct session *sess)
else {
/* Custom keywords. */
if (rule->action_ptr) {
rule->action_ptr(rule, sess->fe, NULL);
rule->action_ptr(rule, sess->fe, sess, NULL);
if (rule->action == TCP_ACT_CUSTOM_CONT)
continue;
}

View File

@ -502,7 +502,8 @@ static inline int action_store(struct sample_expr *expr, const char *name,
}
/* Returns 0 if miss data, else returns 1. */
static int action_tcp_req_store(struct tcp_rule *rule, struct proxy *px, struct stream *s)
static int action_tcp_req_store(struct tcp_rule *rule, struct proxy *px,
struct session *sess, struct stream *s)
{
struct sample_expr *expr = rule->act_prm.data[0];
const char *name = rule->act_prm.data[1];
@ -512,7 +513,8 @@ static int action_tcp_req_store(struct tcp_rule *rule, struct proxy *px, struct
}
/* Returns 0 if miss data, else returns 1. */
static int action_tcp_res_store(struct tcp_rule *rule, struct proxy *px, struct stream *s)
static int action_tcp_res_store(struct tcp_rule *rule, struct proxy *px,
struct session *sess, struct stream *s)
{
struct sample_expr *expr = rule->act_prm.data[0];
const char *name = rule->act_prm.data[1];