]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: server/event_hdl: update _srv_event_hdl_prepare_inetaddr prototype
authorAurelien DARRAGON <adarragon@haproxy.com>
Thu, 7 Dec 2023 15:39:32 +0000 (16:39 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 21 Dec 2023 13:22:26 +0000 (14:22 +0100)
Slightly change _srv_event_hdl_prepare_inetaddr() function prototype to
reduce the input arguments by learning some settings directly from the
server. Also taking this opportunity to make the function static inline
since it's relatively simple and not meant to be used directly.

src/server.c

index 4dee6e3a135ebd2b83a91ea07ebb9fad87eb3497..2c548f23b790a702f5acbac485a276bce522ab80 100644 (file)
@@ -412,16 +412,22 @@ void _srv_event_hdl_prepare_state(struct event_hdl_cb_data_server_state *cb_data
        }
 }
 
-/* Prepare SERVER_INETADDR event
+/* Prepare SERVER_INETADDR event, prev data is learned from the current
+ * server settings.
  *
  * This special event will contain extra hints related to the addr change
  *
+ * Must be called with the server lock held.
  */
-void _srv_event_hdl_prepare_inetaddr(struct event_hdl_cb_data_server_inetaddr *cb_data,
-                                     struct sockaddr_storage *prev_addr, unsigned int prev_port,
-                                     struct sockaddr_storage *next_addr, unsigned int next_port,
-                                     uint8_t purge_conn)
+static void _srv_event_hdl_prepare_inetaddr(struct event_hdl_cb_data_server_inetaddr *cb_data,
+                                            struct server *srv,
+                                            const struct sockaddr_storage *next_addr,
+                                            unsigned int next_port,
+                                            uint8_t purge_conn)
 {
+       struct sockaddr_storage *prev_addr = &srv->addr;
+       unsigned int prev_port = srv->svc_port;
+
        /* only INET families are supported */
        BUG_ON((prev_addr->ss_family != AF_UNSPEC &&
                prev_addr->ss_family != AF_INET && prev_addr->ss_family != AF_INET6) ||
@@ -3807,7 +3813,7 @@ int srv_update_addr(struct server *s, void *ip, int ip_sin_family, const char *u
        };
 
        _srv_event_hdl_prepare(&cb_data.common, s, 0);
-       _srv_event_hdl_prepare_inetaddr(&cb_data.addr, &s->addr, s->svc_port, &new_addr, s->svc_port, 0);
+       _srv_event_hdl_prepare_inetaddr(&cb_data.addr, s, &new_addr, s->svc_port, 0);
 
        /* server_atomic_sync_task will apply the changes for us */
        _srv_event_hdl_publish(EVENT_HDL_SUB_SERVER_INETADDR, cb_data, s);
@@ -4064,7 +4070,7 @@ const char *srv_update_addr_port(struct server *s, const char *addr, const char
 out:
        if (ip_change || port_change) {
                _srv_event_hdl_prepare(&cb_data.common, s, 0);
-               _srv_event_hdl_prepare_inetaddr(&cb_data.addr, &s->addr, s->svc_port,
+               _srv_event_hdl_prepare_inetaddr(&cb_data.addr, s,
                                                ((ip_change) ? &sa : &s->addr),
                                                ((port_change) ? new_port : s->svc_port),
                                                1);