diff --git a/src/flt_spoe.c b/src/flt_spoe.c index f27880975..2d62e5a8c 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -1948,9 +1948,6 @@ spoe_create_appctx(struct spoe_config *conf) strm->do_log = NULL; strm->res.flags |= CF_READ_DONTWAIT; - conf->agent_fe.feconn++; - totalconn++; - task_wakeup(SPOE_APPCTX(appctx)->task, TASK_WOKEN_INIT); LIST_ADDQ(&conf->agent->applets, &SPOE_APPCTX(appctx)->list); conf->agent->applets_act++; diff --git a/src/hlua.c b/src/hlua.c index e1b726497..c68495b34 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -2413,10 +2413,6 @@ __LJMP static int hlua_socket_new(lua_State *L) strm->flags |= SF_DIRECT | SF_ASSIGNED | SF_ADDR_SET | SF_BE_ASSIGNED; strm->target = &socket_tcp.obj_type; - /* Update statistics counters. */ - socket_proxy.feconn++; /* beconn will be increased later */ - totalconn++; - task_wakeup(strm->task, TASK_WOKEN_INIT); /* Return yield waiting for connection. */ return 1; diff --git a/src/listener.c b/src/listener.c index e6f89f977..a7e2b0d06 100644 --- a/src/listener.c +++ b/src/listener.c @@ -527,7 +527,6 @@ void listener_accept(int fd) actconn++; } - totalconn++; l->nbconn++; if (l->counters) { diff --git a/src/peers.c b/src/peers.c index 17f186769..f63589d38 100644 --- a/src/peers.c +++ b/src/peers.c @@ -1835,9 +1835,6 @@ static struct appctx *peer_session_create(struct peers *peers, struct peer *peer s->res.flags |= CF_READ_DONTWAIT; - p->feconn++;/* beconn will be increased later */ - totalconn++; - peer->appctx = appctx; task_wakeup(s->task, TASK_WOKEN_INIT); return appctx; diff --git a/src/session.c b/src/session.c index 98d7e2c46..08c3c6298 100644 --- a/src/session.c +++ b/src/session.c @@ -36,7 +36,7 @@ static struct task *session_expire_embryonic(struct task *t); /* Create a a new session and assign it to frontend , listener
  • , * origin , set the current date and clear the stick counters pointers. * Returns the session upon success or NULL. The session may be released using - * session_free(). + * session_free(). Note:
  • may be NULL. */ struct session *session_new(struct proxy *fe, struct listener *li, enum obj_type *origin) { @@ -53,6 +53,12 @@ struct session *session_new(struct proxy *fe, struct listener *li, enum obj_type memset(sess->stkctr, 0, sizeof(sess->stkctr)); vars_init(&sess->vars, SCOPE_SESS); sess->task = NULL; + fe->feconn++; + if (fe->feconn > fe->fe_counters.conn_max) + fe->fe_counters.conn_max = fe->feconn; + if (li) + proxy_inc_fe_conn_ctr(li, fe); + totalconn++; jobs++; } return sess; @@ -62,6 +68,7 @@ void session_free(struct session *sess) { if (!LIST_ISEMPTY(&sess->streams)) return; + sess->fe->feconn--; session_store_counters(sess); vars_prune_per_sess(&sess->vars); pool_free2(pool2_session, sess); @@ -153,13 +160,6 @@ int session_accept_fd(struct listener *l, int cfd, struct sockaddr_storage *addr conn_set_owner(cli_conn, sess); - p->feconn++; - /* This session was accepted, count it now */ - if (p->feconn > p->fe_counters.conn_max) - p->fe_counters.conn_max = p->feconn; - - proxy_inc_fe_conn_ctr(l, p); - /* now evaluate the tcp-request layer4 rules. We only need a session * and no stream for these rules. */ @@ -265,7 +265,6 @@ int session_accept_fd(struct listener *l, int cfd, struct sockaddr_storage *addr /* error unrolling */ out_free_sess: - p->feconn--; session_free(sess); out_free_conn: cli_conn->flags &= ~CO_FL_XPRT_TRACKED; @@ -365,7 +364,6 @@ static void session_kill_embryonic(struct session *sess) conn_force_close(conn); conn_free(conn); - sess->fe->feconn--; listener_release(sess->listener); task_delete(task); diff --git a/src/stream.c b/src/stream.c index 5489f114d..355f8d8e6 100644 --- a/src/stream.c +++ b/src/stream.c @@ -2417,7 +2417,6 @@ struct task *process_stream(struct task *t) return t; /* nothing more to do */ } - sess->fe->feconn--; if (s->flags & SF_BE_ASSIGNED) s->be->beconn--;