From cd7a5d8994d99b2abb78e90a1d662e0e630fedca Mon Sep 17 00:00:00 2001 From: Taowei Date: Thu, 2 Oct 2014 11:30:26 +0800 Subject: [PATCH] vbox: Rewrite vboxNetworkOpen --- src/Makefile.am | 1 + src/vbox/vbox_network.c | 60 +++++++++++++++++++++++++++++++++++ src/vbox/vbox_tmpl.c | 24 -------------- src/vbox/vbox_uniformed_api.h | 3 ++ 4 files changed, 64 insertions(+), 24 deletions(-) create mode 100644 src/vbox/vbox_network.c diff --git a/src/Makefile.am b/src/Makefile.am index dcd2ae237e..34eb9f83e3 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 0000000000..b8998f47ca --- /dev/null +++ b/src/vbox/vbox_network.c @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2014 Taowei Luo (uaedante@gmail.com) + * Copyright (C) 2010-2014 Red Hat, Inc. + * Copyright (C) 2008-2009 Sun Microsystems, 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 + * . + */ + +#include + +#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 e5d6d66a87..da3841f839 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 41ce40f26c..0237160b0c 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); -- GitLab