[libvirt] [PATCH v3 02/14] vbox: Rewrite vboxNetworkOpen

Taowei uaedante at gmail.com
Thu Oct 2 03:30:26 UTC 2014


---
 po/POTFILES.in                |    1 +
 src/Makefile.am               |    1 +
 src/vbox/vbox_network.c       |   58 +++++++++++++++++++++++++++++++++++++++++
 src/vbox/vbox_tmpl.c          |   24 -----------------
 src/vbox/vbox_uniformed_api.h |    3 +++
 5 files changed, 63 insertions(+), 24 deletions(-)
 create mode 100644 src/vbox/vbox_network.c

diff --git a/po/POTFILES.in b/po/POTFILES.in
index 020a9ac..9e00f73 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -220,6 +220,7 @@ src/vbox/vbox_MSCOMGlue.c
 src/vbox/vbox_XPCOMCGlue.c
 src/vbox/vbox_driver.c
 src/vbox/vbox_common.c
+src/vbox/vbox_network.c
 src/vbox/vbox_snapshot_conf.c
 src/vbox/vbox_tmpl.c
 src/vmware/vmware_conf.c
diff --git a/src/Makefile.am b/src/Makefile.am
index dcd2ae2..34eb9f8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -678,6 +678,7 @@ VBOX_DRIVER_SOURCES =						\
 	vbox/vbox_V4_3.c vbox/vbox_CAPI_v4_3.h			\
 	vbox/vbox_V4_3_4.c vbox/vbox_CAPI_v4_3_4.h              \
 	vbox/vbox_common.c vbox/vbox_common.h                   \
+	vbox/vbox_network.c                                     \
 	vbox/vbox_uniformed_api.h                               \
 	vbox/vbox_get_driver.h
 
diff --git a/src/vbox/vbox_network.c b/src/vbox/vbox_network.c
new file mode 100644
index 0000000..2e09b4b
--- /dev/null
+++ b/src/vbox/vbox_network.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2014, Taowei Luo (uaedante at gmail.com)
+ *
+ * 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 "internal.h"
+#include "datatypes.h"
+#include "domain_conf.h"
+#include "domain_event.h"
+#include "virlog.h"
+
+#include "vbox_common.h"
+#include "vbox_uniformed_api.h"
+
+#define VIR_FROM_THIS VIR_FROM_VBOX
+
+VIR_LOG_INIT("vbox.vbox_network");
+
+/**
+ * The Network Functions here on
+ */
+
+virDrvOpenStatus vboxNetworkOpen(virConnectPtr conn,
+                                 virConnectAuthPtr auth ATTRIBUTE_UNUSED,
+                                 unsigned int flags)
+{
+    vboxGlobalData *data = conn->privateData;
+
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
+    if (STRNEQ(conn->driver->name, "VBOX"))
+        goto cleanup;
+
+    if (!data->pFuncs || !data->vboxObj || !data->vboxSession)
+        goto cleanup;
+
+    VIR_DEBUG("network initialized");
+    /* conn->networkPrivateData = some network specific data */
+    return VIR_DRV_OPEN_SUCCESS;
+
+ cleanup:
+    return VIR_DRV_OPEN_DECLINED;
+}
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index e5d6d66..da3841f 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -2059,30 +2059,6 @@ _registerDomainEvent(virDriverPtr driver)
 /**
  * The Network Functions here on
  */
-static virDrvOpenStatus vboxNetworkOpen(virConnectPtr conn,
-                                        virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-                                        unsigned int flags)
-{
-    vboxGlobalData *data = conn->privateData;
-
-    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
-
-    if (STRNEQ(conn->driver->name, "VBOX"))
-        goto cleanup;
-
-    if ((data->pFuncs      == NULL) ||
-        (data->vboxObj     == NULL) ||
-        (data->vboxSession == NULL))
-        goto cleanup;
-
-    VIR_DEBUG("network initialized");
-    /* conn->networkPrivateData = some network specific data */
-    return VIR_DRV_OPEN_SUCCESS;
-
- cleanup:
-    return VIR_DRV_OPEN_DECLINED;
-}
-
 static int vboxNetworkClose(virConnectPtr conn)
 {
     VIR_DEBUG("network uninitialized");
diff --git a/src/vbox/vbox_uniformed_api.h b/src/vbox/vbox_uniformed_api.h
index 41ce40f..0237160 100644
--- a/src/vbox/vbox_uniformed_api.h
+++ b/src/vbox/vbox_uniformed_api.h
@@ -534,6 +534,9 @@ typedef struct {
 
 virDomainPtr vboxDomainLookupByUUID(virConnectPtr conn,
                                     const unsigned char *uuid);
+virDrvOpenStatus vboxNetworkOpen(virConnectPtr conn,
+                                 virConnectAuthPtr auth,
+                                 unsigned int flags);
 
 /* Version specified functions for installing uniformed API */
 void vbox22InstallUniformedAPI(vboxUniformedAPI *pVBoxAPI);
-- 
1.7.9.5




More information about the libvir-list mailing list