[PATCH] libxtables: define xtables_free_opts()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



A user of the structure xtables_globals. Next goal is to attack
exit_error() so i can compile that basic program..

cheers,
jamal
commit 0d4663ae7dc54b5f4d28960dec4f7a1af4cd4d1a
Author: Jamal Hadi Salim <hadi@xxxxxxxxxx>
Date:   Mon Feb 9 15:33:29 2009 -0500

    Introduce xtables_free_opts() an xtables variant of
    free_opts() which uses xtables_globals already set
    by xtables_set_params(). The end goal is to have all internal
    references in xtables.c use xtables_free_opts() instead of
    depending on external defined free_opts()
    
    Signed-off-by: Jamal Hadi Salim <hadi@xxxxxxxxxx>

diff --git a/include/xtables.h.in b/include/xtables.h.in
index 61dbc76..1d33394 100644
--- a/include/xtables.h.in
+++ b/include/xtables.h.in
@@ -204,6 +204,7 @@ extern void *xtables_malloc(size_t);
 extern int xtables_insmod(const char *, const char *, bool);
 extern int xtables_load_ko(const char *, bool);
 int xtables_set_params(struct xtables_globals *xtp);
+void xtables_free_opts(int reset_offset, struct option *original_opts);
 
 extern struct xtables_match *xtables_find_match(const char *name,
 	enum xtables_tryload, struct xtables_rule_match **match);
diff --git a/xtables.c b/xtables.c
index aad5e53..95be5f8 100644
--- a/xtables.c
+++ b/xtables.c
@@ -68,6 +68,17 @@ int xtables_set_params(struct xtables_globals *xtp)
 	return 0;
 }
 
+void xtables_free_opts(int reset_offset, struct option *original_opts)
+{
+	if (xt_params->opts != original_opts) {
+		if (original_opts) 
+			free(xt_params->opts);
+		xt_params->opts = original_opts;
+		if (reset_offset)
+			xt_params->option_offset = 0;
+	}
+}
+
 /**
  * xtables_afinfo - protocol family dependent information
  * @kmod:		kernel module basename (e.g. "ip_tables")

[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux