[libvirt] [PATCH v2 04/21] conf: move virNWFilterBindingDefPtr into its own files

Daniel P. Berrangé berrange at redhat.com
Tue May 15 17:43:20 UTC 2018


There's no code sharing between virNWFilterDef and
virNWFilterBindingDefPtr types, so it is clearer if they live in
separate source files and headers.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 src/conf/Makefile.inc.am         |  2 +
 src/conf/nwfilter_conf.c         | 54 ---------------------
 src/conf/nwfilter_conf.h         | 17 -------
 src/conf/virnwfilterbindingdef.c | 83 ++++++++++++++++++++++++++++++++
 src/conf/virnwfilterbindingdef.h | 47 ++++++++++++++++++
 src/libvirt_private.syms         |  7 ++-
 6 files changed, 137 insertions(+), 73 deletions(-)
 create mode 100644 src/conf/virnwfilterbindingdef.c
 create mode 100644 src/conf/virnwfilterbindingdef.h

diff --git a/src/conf/Makefile.inc.am b/src/conf/Makefile.inc.am
index 6d7b0f076b..f5fb323233 100644
--- a/src/conf/Makefile.inc.am
+++ b/src/conf/Makefile.inc.am
@@ -85,6 +85,8 @@ NWFILTER_CONF_SOURCES = \
 	conf/nwfilter_conf.h \
 	conf/virnwfilterobj.c \
 	conf/virnwfilterobj.h \
+	conf/virnwfilterbindingdef.c \
+	conf/virnwfilterbindingdef.h \
 	$(NULL)
 
 STORAGE_CONF_SOURCES = \
diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c
index 6422f6b8ea..de26a6d034 100644
--- a/src/conf/nwfilter_conf.c
+++ b/src/conf/nwfilter_conf.c
@@ -3265,57 +3265,3 @@ virNWFilterRuleIsProtocolEthernet(virNWFilterRuleDefPtr rule)
         return true;
     return false;
 }
-
-
-void
-virNWFilterBindingDefFree(virNWFilterBindingDefPtr def)
-{
-    if (!def)
-        return;
-
-    VIR_FREE(def->ownername);
-    VIR_FREE(def->portdevname);
-    VIR_FREE(def->linkdevname);
-    VIR_FREE(def->filter);
-    virHashFree(def->filterparams);
-
-    VIR_FREE(def);
-}
-
-
-virNWFilterBindingDefPtr
-virNWFilterBindingDefCopy(virNWFilterBindingDefPtr src)
-{
-    virNWFilterBindingDefPtr ret;
-
-    if (VIR_ALLOC(ret) < 0)
-        return NULL;
-
-    if (VIR_STRDUP(ret->ownername, src->ownername) < 0)
-        goto error;
-
-    memcpy(ret->owneruuid, src->owneruuid, sizeof(ret->owneruuid));
-
-    if (VIR_STRDUP(ret->portdevname, src->portdevname) < 0)
-        goto error;
-
-    if (VIR_STRDUP(ret->linkdevname, src->linkdevname) < 0)
-        goto error;
-
-    ret->mac = src->mac;
-
-    if (VIR_STRDUP(ret->filter, src->filter) < 0)
-        goto error;
-
-    if (!(ret->filterparams = virNWFilterHashTableCreate(0)))
-        goto error;
-
-    if (virNWFilterHashTablePutAll(src->filterparams, ret->filterparams) < 0)
-        goto error;
-
-    return ret;
-
- error:
-    virNWFilterBindingDefFree(ret);
-    return NULL;
-}
diff --git a/src/conf/nwfilter_conf.h b/src/conf/nwfilter_conf.h
index c72171f2f2..08fc07c55c 100644
--- a/src/conf/nwfilter_conf.h
+++ b/src/conf/nwfilter_conf.h
@@ -545,19 +545,6 @@ struct _virNWFilterDef {
     virNWFilterEntryPtr *filterEntries;
 };
 
-typedef struct _virNWFilterBindingDef virNWFilterBindingDef;
-typedef virNWFilterBindingDef *virNWFilterBindingDefPtr;
-
-struct _virNWFilterBindingDef {
-    char *ownername;
-    unsigned char owneruuid[VIR_UUID_BUFLEN];
-    char *portdevname;
-    char *linkdevname;
-    virMacAddr mac;
-    char *filter;
-    virHashTablePtr filterparams;
-};
-
 
 typedef enum {
     STEP_APPLY_NEW,
@@ -663,10 +650,6 @@ virNWFilterRuleIsProtocolIPv6(virNWFilterRuleDefPtr rule);
 bool
 virNWFilterRuleIsProtocolEthernet(virNWFilterRuleDefPtr rule);
 
-void
-virNWFilterBindingDefFree(virNWFilterBindingDefPtr binding);
-virNWFilterBindingDefPtr
-virNWFilterBindingDefCopy(virNWFilterBindingDefPtr src);
 
 VIR_ENUM_DECL(virNWFilterRuleAction);
 VIR_ENUM_DECL(virNWFilterRuleDirection);
diff --git a/src/conf/virnwfilterbindingdef.c b/src/conf/virnwfilterbindingdef.c
new file mode 100644
index 0000000000..c7533d4063
--- /dev/null
+++ b/src/conf/virnwfilterbindingdef.c
@@ -0,0 +1,83 @@
+/*
+ * virnwfilterbindingdef.c: network filter binding XML processing
+ *
+ * Copyright (C) 2018 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "viralloc.h"
+#include "virerror.h"
+#include "virstring.h"
+#include "nwfilter_params.h"
+#include "virnwfilterbindingdef.h"
+
+
+#define VIR_FROM_THIS VIR_FROM_NWFILTER
+
+void
+virNWFilterBindingDefFree(virNWFilterBindingDefPtr def)
+{
+    if (!def)
+        return;
+
+    VIR_FREE(def->ownername);
+    VIR_FREE(def->portdevname);
+    VIR_FREE(def->linkdevname);
+    VIR_FREE(def->filter);
+    virHashFree(def->filterparams);
+
+    VIR_FREE(def);
+}
+
+
+virNWFilterBindingDefPtr
+virNWFilterBindingDefCopy(virNWFilterBindingDefPtr src)
+{
+    virNWFilterBindingDefPtr ret;
+
+    if (VIR_ALLOC(ret) < 0)
+        return NULL;
+
+    if (VIR_STRDUP(ret->ownername, src->ownername) < 0)
+        goto error;
+
+    memcpy(ret->owneruuid, src->owneruuid, sizeof(ret->owneruuid));
+
+    if (VIR_STRDUP(ret->portdevname, src->portdevname) < 0)
+        goto error;
+
+    if (VIR_STRDUP(ret->linkdevname, src->linkdevname) < 0)
+        goto error;
+
+    ret->mac = src->mac;
+
+    if (VIR_STRDUP(ret->filter, src->filter) < 0)
+        goto error;
+
+    if (!(ret->filterparams = virNWFilterHashTableCreate(0)))
+        goto error;
+
+    if (virNWFilterHashTablePutAll(src->filterparams, ret->filterparams) < 0)
+        goto error;
+
+    return ret;
+
+ error:
+    virNWFilterBindingDefFree(ret);
+    return NULL;
+}
diff --git a/src/conf/virnwfilterbindingdef.h b/src/conf/virnwfilterbindingdef.h
new file mode 100644
index 0000000000..e3b18af151
--- /dev/null
+++ b/src/conf/virnwfilterbindingdef.h
@@ -0,0 +1,47 @@
+/*
+ * virnwfilterbindingdef.h: network filter binding XML processing
+ *
+ * Copyright (C) 2018 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+#ifndef VIR_NWFILTER_BINDING_DEF_H
+# define VIR_NWFILTER_BINDING_DEF_H
+
+# include "internal.h"
+# include "virmacaddr.h"
+# include "virhash.h"
+
+typedef struct _virNWFilterBindingDef virNWFilterBindingDef;
+typedef virNWFilterBindingDef *virNWFilterBindingDefPtr;
+
+struct _virNWFilterBindingDef {
+    char *ownername;
+    unsigned char owneruuid[VIR_UUID_BUFLEN];
+    char *portdevname;
+    char *linkdevname;
+    virMacAddr mac;
+    char *filter;
+    virHashTablePtr filterparams;
+};
+
+
+void
+virNWFilterBindingDefFree(virNWFilterBindingDefPtr binding);
+virNWFilterBindingDefPtr
+virNWFilterBindingDefCopy(virNWFilterBindingDefPtr src);
+
+#endif /* VIR_NWFILTER_BINDING_DEF_H */
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 80062df3f7..fb754fbfea 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -781,8 +781,6 @@ virDomainNumatuneSpecifiedMaxNode;
 
 
 # conf/nwfilter_conf.h
-virNWFilterBindingDefCopy;
-virNWFilterBindingDefFree;
 virNWFilterCallbackDriversLock;
 virNWFilterCallbackDriversUnlock;
 virNWFilterChainSuffixTypeToString;
@@ -1043,6 +1041,11 @@ virNodeDeviceObjListNumOfDevices;
 virNodeDeviceObjListRemove;
 
 
+# conf/virnwfilterbindingdef.h
+virNWFilterBindingDefCopy;
+virNWFilterBindingDefFree;
+
+
 # conf/virnwfilterobj.h
 virNWFilterObjGetDef;
 virNWFilterObjGetNewDef;
-- 
2.17.0




More information about the libvir-list mailing list