From: Aurelien DARRAGON Date: Thu, 7 Dec 2023 15:18:39 +0000 (+0100) Subject: MINOR: server/event_hdl: add server_inetaddr struct to facilitate event data usage X-Git-Tag: v3.0-dev1~66 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=14893a6a00f24e14dcca5baa335a7f9d78dafc80;p=thirdparty%2Fhaproxy.git MINOR: server/event_hdl: add server_inetaddr struct to facilitate event data usage event_hdl_cb_data_server_inetaddr struct had some anonymous structs defined in it, making it impossible to pass as a function argument and harder to maintain since changes must be performed at multiple places at once. So instead we define a storage struct named server_inetaddr that helps to save addr:port server information in INET context. --- diff --git a/include/haproxy/server-t.h b/include/haproxy/server-t.h index 1708bc6205..7d1cc700b0 100644 --- a/include/haproxy/server-t.h +++ b/include/haproxy/server-t.h @@ -597,6 +597,18 @@ struct event_hdl_cb_data_server_check { } unsafe; }; +/* struct to store server address and port information in INET + * context + */ +struct server_inetaddr { + int family; /* AF_UNSPEC, AF_INET or AF_INET6 */ + union { + struct in_addr v4; + struct in6_addr v6; + } addr; /* may hold v4 or v6 addr */ + unsigned int svc_port; +}; + /* data provided to EVENT_HDL_SUB_SERVER_INETADDR handlers through * event_hdl facility * @@ -609,22 +621,8 @@ struct event_hdl_cb_data_server_inetaddr { */ struct event_hdl_cb_data_server server; /* must be at the beginning */ struct { - struct { - int family; /* AF_UNSPEC, AF_INET or AF_INET6 */ - union { - struct in_addr v4; - struct in6_addr v6; - } addr; /* may hold v4 or v6 addr */ - unsigned int svc_port; - } prev; - struct { - int family; /* AF_UNSPEC, AF_INET or AF_INET6 */ - union { - struct in_addr v4; - struct in6_addr v6; - } addr; /* may hold v4 or v6 addr */ - unsigned int svc_port; - } next; + struct server_inetaddr prev; + struct server_inetaddr next; uint8_t purge_conn; /* set to 1 if the network change will force a connection cleanup */ } safe; /* no unsafe data */