MINOR: server/event_hdl: prepare for upcoming refactors
authorAurelien DARRAGON <adarragon@haproxy.com>
Thu, 23 Mar 2023 13:39:51 +0000 (14:39 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 21 Apr 2023 12:36:45 +0000 (14:36 +0200)
This commit does nothing that ought to be mentioned, except that
it adds missing comments and slighty moves some function calls
out of "sensitive" code in preparation of some server code refactors.

include/haproxy/server-t.h
src/server.c

index e7be7a3..d465fab 100644 (file)
@@ -420,6 +420,8 @@ struct server {
 struct event_hdl_cb_data_server {
        /* provided by:
         *   EVENT_HDL_SUB_SERVER_ADD
+        *   EVENT_HDL_SUB_SERVER_DEL
+        *   EVENT_HDL_SUB_SERVER_UP
         *   EVENT_HDL_SUB_SERVER_DOWN
         */
        struct {
index d17436c..bdb34c3 100644 (file)
@@ -5301,9 +5301,6 @@ static void srv_update_status(struct server *s)
                s->next_admin = s->cur_admin;
 
                if ((s->cur_state != SRV_ST_STOPPED) && (s->next_state == SRV_ST_STOPPED)) {
-                       /* no maintenance + server DOWN: publish event SERVER DOWN */
-                       srv_event_hdl_publish(EVENT_HDL_SUB_SERVER_DOWN, s, 0);
-
                        s->last_change = now.tv_sec;
                        if (s->proxy->lbprm.set_server_status_down)
                                s->proxy->lbprm.set_server_status_down(s);
@@ -5317,6 +5314,9 @@ static void srv_update_status(struct server *s)
                         */
                        xferred = pendconn_redistribute(s);
 
+                       /* no maintenance + server DOWN: publish event SERVER DOWN */
+                       srv_event_hdl_publish(EVENT_HDL_SUB_SERVER_DOWN, s, 0);
+
                        tmptrash = alloc_trash_chunk();
                        if (tmptrash) {
                                chunk_printf(tmptrash,
@@ -5371,9 +5371,6 @@ static void srv_update_status(struct server *s)
                }
                else if (((s->cur_state != SRV_ST_RUNNING) && (s->next_state == SRV_ST_RUNNING))
                         || ((s->cur_state != SRV_ST_STARTING) && (s->next_state == SRV_ST_STARTING))) {
-                       /* no maintenance + server going UP: publish event SERVER UP */
-                       srv_event_hdl_publish(EVENT_HDL_SUB_SERVER_UP, s, 0);
-
                        if (s->proxy->srv_bck == 0 && s->proxy->srv_act == 0) {
                                if (s->proxy->last_change < now.tv_sec)         // ignore negative times
                                        s->proxy->down_time += now.tv_sec - s->proxy->last_change;
@@ -5414,6 +5411,9 @@ static void srv_update_status(struct server *s)
                         */
                        xferred = pendconn_grab_from_px(s);
 
+                       /* no maintenance + server going UP: publish event SERVER UP */
+                       srv_event_hdl_publish(EVENT_HDL_SUB_SERVER_UP, s, 0);
+
                        tmptrash = alloc_trash_chunk();
                        if (tmptrash) {
                                chunk_printf(tmptrash,
@@ -5500,9 +5500,6 @@ static void srv_update_status(struct server *s)
                        if (s->onmarkeddown & HANA_ONMARKEDDOWN_SHUTDOWNSESSIONS)
                                srv_shutdown_streams(s, SF_ERR_DOWN);
 
-                       /* maintenance on previously running server: publish event SERVER DOWN */
-                       srv_event_hdl_publish(EVENT_HDL_SUB_SERVER_DOWN, s, 0);
-
                        /* force connection cleanup on the given server */
                        srv_cleanup_connections(s);
                        /* we might have streams queued on this server and waiting for
@@ -5511,6 +5508,9 @@ static void srv_update_status(struct server *s)
                         */
                        xferred = pendconn_redistribute(s);
 
+                       /* maintenance on previously running server: publish event SERVER DOWN */
+                       srv_event_hdl_publish(EVENT_HDL_SUB_SERVER_DOWN, s, 0);
+
                        tmptrash = alloc_trash_chunk();
                        if (tmptrash) {
                                chunk_printf(tmptrash,