]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
REORG: global: move free acl/action in their related source files
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 25 Mar 2021 16:15:52 +0000 (17:15 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 26 Mar 2021 14:28:33 +0000 (15:28 +0100)
Move deinit_acl_cond and deinit_act_rules from haproxy.c respectively in
acl.c and action.c. The name of the functions has been slightly altered,
replacing the prefix deinit_* by free_* to reflect their purpose more
clearly.

This change has been made in preparation to the implementation of a free
proxy function. As a side-effect, it helps to clean up haproxy.c.

include/haproxy/acl.h
include/haproxy/action.h
src/acl.c
src/action.c
src/haproxy.c

index cdbf9c0255c3d00a581d856102517a900a397533..bd6e1db8b4b3bdc51255ccc361aeda38e02c4af6 100644 (file)
@@ -146,6 +146,7 @@ void acl_unregister_keywords(struct acl_kw_list *kwl);
  */
 int init_acl();
 
+void free_acl_cond(struct acl_cond *cond);
 
 #endif /* _HAPROXY_ACL_H */
 
index a4bec01eb6e69804170df72bda5eac7f71b9a45f..845c0fd8b9cd00719a7a0dd87cbc9802d4ce6591 100644 (file)
@@ -102,4 +102,6 @@ static inline void release_timeout_action(struct act_rule *rule)
        release_sample_expr(rule->arg.timeout.expr);
 }
 
+void free_act_rules(struct list *rules);
+
 #endif /* _HAPROXY_ACTION_H */
index cf7dd91a9e5fddd5d595d3d43cb5e343b490269f..7801e2e2482e30b6cfadb36191ecab028ba2f802 100644 (file)
--- a/src/acl.c
+++ b/src/acl.c
@@ -1302,6 +1302,26 @@ int init_acl()
        return err;
 }
 
+void free_acl_cond(struct acl_cond *cond)
+{
+       struct acl_term_suite *suite, *suiteb;
+       struct acl_term *term, *termb;
+
+       if (!cond)
+               return;
+
+       list_for_each_entry_safe(suite, suiteb, &cond->suites, list) {
+               list_for_each_entry_safe(term, termb, &suite->terms, list) {
+                       LIST_DEL(&term->list);
+                       free(term);
+               }
+               LIST_DEL(&suite->list);
+               free(suite);
+       }
+
+       free(cond);
+}
+
 /************************************************************************/
 /*      All supported sample and ACL keywords must be declared here.    */
 /************************************************************************/
index c81737642187bca2ba5b5544b647ae5cc405742d..29eae81138d13b37b72ce47c3719e521a0fe9511 100644 (file)
@@ -10,6 +10,7 @@
  *
  */
 
+#include <haproxy/acl.h>
 #include <haproxy/action.h>
 #include <haproxy/api.h>
 #include <haproxy/errors.h>
@@ -259,3 +260,16 @@ const char *action_suggest(const char *word, const struct list *keywords, const
 
        return best_ptr;
 }
+
+void free_act_rules(struct list *rules)
+{
+       struct act_rule *rule, *ruleb;
+
+       list_for_each_entry_safe(rule, ruleb, rules, list) {
+               LIST_DEL(&rule->list);
+               free_acl_cond(rule->cond);
+               if (rule->release_ptr)
+                       rule->release_ptr(rule);
+               free(rule);
+       }
+}
index 1d136e9f58fed37252377bfdcb9399400dc7271f..cf2f8e0f7cc61cec1d3c6e4c7658b519cd985258 100644 (file)
@@ -80,6 +80,7 @@
 #include <import/sha1.h>
 
 #include <haproxy/acl.h>
+#include <haproxy/action.h>
 #include <haproxy/activity.h>
 #include <haproxy/api.h>
 #include <haproxy/arg.h>
@@ -2135,46 +2136,13 @@ static void init(int argc, char **argv)
        free(err_msg);
 }
 
-static void deinit_acl_cond(struct acl_cond *cond)
-{
-       struct acl_term_suite *suite, *suiteb;
-       struct acl_term *term, *termb;
-
-       if (!cond)
-               return;
-
-       list_for_each_entry_safe(suite, suiteb, &cond->suites, list) {
-               list_for_each_entry_safe(term, termb, &suite->terms, list) {
-                       LIST_DEL(&term->list);
-                       free(term);
-               }
-               LIST_DEL(&suite->list);
-               free(suite);
-       }
-
-       free(cond);
-}
-
-static void deinit_act_rules(struct list *rules)
-{
-       struct act_rule *rule, *ruleb;
-
-       list_for_each_entry_safe(rule, ruleb, rules, list) {
-               LIST_DEL(&rule->list);
-               deinit_acl_cond(rule->cond);
-               if (rule->release_ptr)
-                       rule->release_ptr(rule);
-               free(rule);
-       }
-}
-
 static void deinit_stick_rules(struct list *rules)
 {
        struct sticking_rule *rule, *ruleb;
 
        list_for_each_entry_safe(rule, ruleb, rules, list) {
                LIST_DEL(&rule->list);
-               deinit_acl_cond(rule->cond);
+               free_acl_cond(rule->cond);
                release_sample_expr(rule->expr);
                free(rule);
        }
@@ -2367,13 +2335,13 @@ void deinit(void)
                        free(lf);
                }
 
-               deinit_act_rules(&p->tcp_req.inspect_rules);
-               deinit_act_rules(&p->tcp_rep.inspect_rules);
-               deinit_act_rules(&p->tcp_req.l4_rules);
-               deinit_act_rules(&p->tcp_req.l5_rules);
-               deinit_act_rules(&p->http_req_rules);
-               deinit_act_rules(&p->http_res_rules);
-               deinit_act_rules(&p->http_after_res_rules);
+               free_act_rules(&p->tcp_req.inspect_rules);
+               free_act_rules(&p->tcp_rep.inspect_rules);
+               free_act_rules(&p->tcp_req.l4_rules);
+               free_act_rules(&p->tcp_req.l5_rules);
+               free_act_rules(&p->http_req_rules);
+               free_act_rules(&p->http_res_rules);
+               free_act_rules(&p->http_after_res_rules);
 
                deinit_stick_rules(&p->storersp_rules);
                deinit_stick_rules(&p->sticking_rules);
@@ -2461,7 +2429,7 @@ void deinit(void)
                free(uap->desc);
 
                userlist_free(uap->userlist);
-               deinit_act_rules(&uap->http_req_rules);
+               free_act_rules(&uap->http_req_rules);
 
                scope = uap->scope;
                while (scope) {