From 9e9879a263d17a925f4f6c65a1221b579ae7f558 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 6 Aug 2010 15:25:22 +0200 Subject: [PATCH] [MEDIUM] session-counters: make it possible to count connections from frontend In case a "track-be-counters" rule is referenced in the frontend, count it so that the connection counts are correct. --- src/session.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/session.c b/src/session.c index b1951733f..37ded3763 100644 --- a/src/session.c +++ b/src/session.c @@ -150,6 +150,19 @@ int session_accept(struct listener *l, int cfd, struct sockaddr_storage *addr) s->fe_tracked_table->data_arg[STKTABLE_DT_SESS_RATE].u, 1); } + if (s->be_tracked_counters) { + void *ptr; + + ptr = stktable_data_ptr(s->be_tracked_table, s->be_tracked_counters, STKTABLE_DT_SESS_CNT); + if (ptr) + stktable_data_cast(ptr, sess_cnt)++; + + ptr = stktable_data_ptr(s->be_tracked_table, s->be_tracked_counters, STKTABLE_DT_SESS_RATE); + if (ptr) + update_freq_ctr_period(&stktable_data_cast(ptr, sess_rate), + s->be_tracked_table->data_arg[STKTABLE_DT_SESS_RATE].u, 1); + } + /* this part should be common with other protocols */ s->si[0].fd = cfd; s->si[0].owner = t;