mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
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.
This commit is contained in:
parent
b871830ac8
commit
43dbcb1541
@ -557,18 +557,18 @@ INTERFACE_DRIVER_SOURCES =
|
||||
|
||||
if WITH_INTERFACE
|
||||
INTERFACE_DRIVER_SOURCES += \
|
||||
interface/interface_driver.h
|
||||
interface/interface_driver.h \
|
||||
interface/interface_driver.c
|
||||
|
||||
if WITH_NETCF
|
||||
INTERFACE_DRIVER_SOURCES += \
|
||||
interface/interface_backend_netcf.c
|
||||
else
|
||||
endif
|
||||
if HAVE_UDEV
|
||||
INTERFACE_DRIVER_SOURCES += \
|
||||
interface/interface_backend_udev.c
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
SECRET_DRIVER_SOURCES = \
|
||||
secret/secret_driver.h secret/secret_driver.c
|
||||
|
@ -805,7 +805,7 @@ static virInterfaceDriver interfaceDriver = {
|
||||
#endif /* HAVE_NETCF_TRANSACTIONS */
|
||||
};
|
||||
|
||||
int interfaceRegister(void) {
|
||||
int netcfIfaceRegister(void) {
|
||||
if (virRegisterInterfaceDriver(&interfaceDriver) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("failed to register netcf interface driver"));
|
||||
|
@ -503,7 +503,7 @@ static virInterfaceDriver udevIfaceDriver = {
|
||||
};
|
||||
|
||||
int
|
||||
interfaceRegister(void) {
|
||||
udevIfaceRegister(void) {
|
||||
if (virRegisterInterfaceDriver(&udevIfaceDriver) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("failed to register udev interface driver"));
|
||||
|
37
src/interface/interface_driver.c
Normal file
37
src/interface/interface_driver.c
Normal file
@ -0,0 +1,37 @@
|
||||
/*
|
||||
* 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 @@
|
||||
|
||||
int interfaceRegister(void);
|
||||
|
||||
int netcfIfaceRegister(void);
|
||||
int udevIfaceRegister(void);
|
||||
|
||||
#endif /* __VIR_INTERFACE__DRIVER_H */
|
||||
|
Loading…
Reference in New Issue
Block a user