]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Remove data structure holding list of ebtables rules
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 7 Mar 2014 16:56:56 +0000 (16:56 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 11 Mar 2014 11:01:52 +0000 (11:01 +0000)
When adding/removing ebtables rules, the code would keep
an array of all rules in memory. This list of rules was
never used for any purpose and would be lost if libvirtd
restarted. Delete all the unused code.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/util/virebtables.c
src/util/virebtables.h

index 6f28b4b9c26c860a246312a25aca9296d24d44df..13ab51eb9965b6a213756fe60e7ee57585daa753 100644 (file)
@@ -97,83 +97,13 @@ enum {
     INSERT
 };
 
-static void
-ebtRuleFree(ebtRule *rule)
-{
-    VIR_FREE(rule->rule);
-
-    if (rule->argv) {
-        size_t i = 0;
-        while (rule->argv[i])
-            VIR_FREE(rule->argv[i++]);
-        VIR_FREE(rule->argv);
-    }
-}
-
-static int
-ebtRulesAppend(ebtRules *rules,
-               char *rule,
-               char **argv,
-               int command_idx)
-{
-    if (VIR_REALLOC_N(rules->rules, rules->nrules+1) < 0) {
-        size_t i = 0;
-        while (argv[i])
-            VIR_FREE(argv[i++]);
-        VIR_FREE(argv);
-        return ENOMEM;
-    }
-
-    rules->rules[rules->nrules].rule        = rule;
-    rules->rules[rules->nrules].argv        = argv;
-    rules->rules[rules->nrules].command_idx = command_idx;
-
-    rules->nrules++;
-
-    return 0;
-}
-
-static int
-ebtRulesRemove(ebtRules *rules,
-               char *rule)
-{
-    size_t i;
-
-    for (i = 0; i < rules->nrules; i++)
-        if (STREQ(rules->rules[i].rule, rule))
-            break;
-
-    if (i >= rules->nrules)
-        return EINVAL;
-
-    ebtRuleFree(&rules->rules[i]);
-
-    memmove(&rules->rules[i],
-            &rules->rules[i+1],
-            (rules->nrules - i - 1) * sizeof(ebtRule));
-
-    rules->nrules--;
-
-    return 0;
-}
 
 static void
 ebtRulesFree(ebtRules *rules)
 {
-    size_t i;
-
     VIR_FREE(rules->table);
     VIR_FREE(rules->chain);
 
-    if (rules->rules) {
-        for (i = 0; i < rules->nrules; i++)
-            ebtRuleFree(&rules->rules[i]);
-
-        VIR_FREE(rules->rules);
-
-        rules->nrules = 0;
-    }
-
     VIR_FREE(rules);
 }
 
@@ -192,9 +122,6 @@ ebtRulesNew(const char *table,
     if (VIR_STRDUP(rules->chain, chain) < 0)
         goto error;
 
-    rules->rules = NULL;
-    rules->nrules = 0;
-
     return rules;
 
  error:
@@ -208,7 +135,6 @@ ebtablesAddRemoveRule(ebtRules *rules, int action, const char *arg, ...)
     va_list args;
     int retval = ENOMEM;
     char **argv;
-    char *rule = NULL;
     const char *s;
     int n, command_idx;
 
@@ -273,9 +199,6 @@ ebtablesAddRemoveRule(ebtRules *rules, int action, const char *arg, ...)
 
     va_end(args);
 
-    if (!(rule = virArgvToString((const char **) &argv[command_idx])))
-        goto error;
-
     if (action == REMOVE) {
         VIR_FREE(argv[command_idx]);
         if (VIR_STRDUP(argv[command_idx], "--delete") < 0)
@@ -287,18 +210,7 @@ ebtablesAddRemoveRule(ebtRules *rules, int action, const char *arg, ...)
         goto error;
     }
 
-    if (action == ADD || action == CREATE || action == POLICY ||
-        action == INSERT) {
-        retval = ebtRulesAppend(rules, rule, argv, command_idx);
-        rule = NULL;
-        argv = NULL;
-    } else {
-        retval = ebtRulesRemove(rules, rule);
-    }
-
  error:
-    VIR_FREE(rule);
-
     if (argv) {
         n = 0;
         while (argv[n])
index 330b441a48c3921ba38f0ae931b5648d346aeb32..f9bd6e6635563255d30129eb8175a72b9608183f 100644 (file)
 
 # include "virmacaddr.h"
 
-typedef struct
-{
-    char  *rule;
-    char **argv;
-    int    command_idx;
-} ebtRule;
-
 typedef struct
 {
     char  *table;
     char  *chain;
-
-    int      nrules;
-    ebtRule *rules;
-
 } ebtRules;
 
 typedef struct _ebtablesContext ebtablesContext;