]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: session: slightly simplify idle connection cleanup logic
authorWilly Tarreau <w@1wt.eu>
Fri, 15 Nov 2019 06:04:24 +0000 (07:04 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 15 Nov 2019 06:06:46 +0000 (07:06 +0100)
Since previous commit a132e5efa9 ("BUG/MEDIUM: Make sure we leave the
session list in session_free().") it's pointless to delete the conn
element inside "if" blocks given that the second test is always true
as well. Let's simplify this with a single LIST_DEL_INIT() before the
test.

src/session.c

index c9bdd9421db5b7228893ef0d209bca9ea36ec6a2..126ba78a6d642e0dad43eba20e6ad9e5d2c73a62 100644 (file)
@@ -78,10 +78,8 @@ void session_free(struct session *sess)
                conn->mux->destroy(conn->ctx);
        list_for_each_entry_safe(srv_list, srv_list_back, &sess->srv_list, srv_list) {
                list_for_each_entry_safe(conn, conn_back, &srv_list->conn_list, session_list) {
+                       LIST_DEL_INIT(&conn->session_list);
                        if (conn->mux) {
-
-                               LIST_DEL(&conn->session_list);
-                               LIST_INIT(&conn->session_list);
                                conn->owner = NULL;
                                conn->flags &= ~CO_FL_SESS_IDLE;
                                if (!srv_add_to_idle_list(objt_server(conn->target), conn))
@@ -90,10 +88,6 @@ void session_free(struct session *sess)
                                /* We have a connection, but not yet an associated mux.
                                 * So destroy it now.
                                 */
-                               if (!LIST_ISEMPTY(&conn->session_list)) {
-                                       LIST_DEL(&conn->session_list);
-                                       LIST_INIT(&conn->session_list);
-                               }
                                conn_stop_tracking(conn);
                                conn_full_close(conn);
                                conn_free(conn);