]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[MEDIUM] session-counters: make it possible to count connections from frontend
authorWilly Tarreau <w@1wt.eu>
Fri, 6 Aug 2010 13:25:22 +0000 (15:25 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 10 Aug 2010 16:04:15 +0000 (18:04 +0200)
In case a "track-be-counters" rule is referenced in the frontend, count it so
that the connection counts are correct.

src/session.c

index b1951733f4c49e88a9d230af8202f6a11f0f0c27..37ded37634b1f848a7487e77ba8a77aadef6defc 100644 (file)
@@ -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;