提交 43dbcb15 编写于 作者: D Doug Goldstein 提交者: Eric Blake

interface: always build all available backends

Always build all available backends to avoid bit-rot. At run time we
select the correct backend and load it by attempting netcf first and
then udev.
上级 b871830a
...@@ -557,18 +557,18 @@ INTERFACE_DRIVER_SOURCES = ...@@ -557,18 +557,18 @@ INTERFACE_DRIVER_SOURCES =
if WITH_INTERFACE if WITH_INTERFACE
INTERFACE_DRIVER_SOURCES += \ INTERFACE_DRIVER_SOURCES += \
interface/interface_driver.h interface/interface_driver.h \
interface/interface_driver.c
if WITH_NETCF if WITH_NETCF
INTERFACE_DRIVER_SOURCES += \ INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_netcf.c interface/interface_backend_netcf.c
else endif
if HAVE_UDEV if HAVE_UDEV
INTERFACE_DRIVER_SOURCES += \ INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_udev.c interface/interface_backend_udev.c
endif endif
endif endif
endif
SECRET_DRIVER_SOURCES = \ SECRET_DRIVER_SOURCES = \
secret/secret_driver.h secret/secret_driver.c secret/secret_driver.h secret/secret_driver.c
......
...@@ -805,7 +805,7 @@ static virInterfaceDriver interfaceDriver = { ...@@ -805,7 +805,7 @@ static virInterfaceDriver interfaceDriver = {
#endif /* HAVE_NETCF_TRANSACTIONS */ #endif /* HAVE_NETCF_TRANSACTIONS */
}; };
int interfaceRegister(void) { int netcfIfaceRegister(void) {
if (virRegisterInterfaceDriver(&interfaceDriver) < 0) { if (virRegisterInterfaceDriver(&interfaceDriver) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("failed to register netcf interface driver")); _("failed to register netcf interface driver"));
......
...@@ -503,7 +503,7 @@ static virInterfaceDriver udevIfaceDriver = { ...@@ -503,7 +503,7 @@ static virInterfaceDriver udevIfaceDriver = {
}; };
int int
interfaceRegister(void) { udevIfaceRegister(void) {
if (virRegisterInterfaceDriver(&udevIfaceDriver) < 0) { if (virRegisterInterfaceDriver(&udevIfaceDriver) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("failed to register udev interface driver")); _("failed to register udev interface driver"));
......
/*
* interface_driver.c: loads the appropriate backend
*
* Copyright (C) 2012 Doug Goldstein <cardoe@cardoe.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 "interface_driver.h"
int
interfaceRegister(void) {
#ifdef WITH_NETCF
/* Attempt to load the netcf based backend first */
if (netcfIfaceRegister() == 0)
return 0;
#endif /* WITH_NETCF */
#if HAVE_UDEV
/* If there's no netcf or it failed to load, register the udev backend */
if (udevIfaceRegister() == 0)
return 0;
#endif /* HAVE_UDEV */
return -1;
}
...@@ -26,4 +26,7 @@ ...@@ -26,4 +26,7 @@
int interfaceRegister(void); int interfaceRegister(void);
int netcfIfaceRegister(void);
int udevIfaceRegister(void);
#endif /* __VIR_INTERFACE__DRIVER_H */ #endif /* __VIR_INTERFACE__DRIVER_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册