mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-25 01:34:11 +03:00
network: move driver state struct into bridge_driver_conf.h
This is more similar to lxc and qemu drivers, where the driver state struct is defined along with a config struct in ${driver}_conf.h Signed-off-by: Laine Stump <laine@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
15bd9179be
commit
3fcae3c6d4
@ -95,31 +95,6 @@ networkGetDriver(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static dnsmasqCaps *
|
|
||||||
networkGetDnsmasqCaps(virNetworkDriverState *driver)
|
|
||||||
{
|
|
||||||
VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
|
|
||||||
return virObjectRef(driver->dnsmasqCaps);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
|
||||||
networkDnsmasqCapsRefresh(virNetworkDriverState *driver)
|
|
||||||
{
|
|
||||||
dnsmasqCaps *caps;
|
|
||||||
|
|
||||||
if (!(caps = dnsmasqCapsNewFromBinary()))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) {
|
|
||||||
virObjectUnref(driver->dnsmasqCaps);
|
|
||||||
driver->dnsmasqCaps = caps;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
extern virXMLNamespace networkDnsmasqXMLNamespace;
|
extern virXMLNamespace networkDnsmasqXMLNamespace;
|
||||||
|
|
||||||
typedef struct _networkDnsmasqXmlNsDef networkDnsmasqXmlNsDef;
|
typedef struct _networkDnsmasqXmlNsDef networkDnsmasqXmlNsDef;
|
||||||
|
56
src/network/bridge_driver_conf.c
Normal file
56
src/network/bridge_driver_conf.c
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* bridge_driver__conf.c: network.conf config file inspection
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* includes */
|
||||||
|
#include <config.h>
|
||||||
|
#include "virerror.h"
|
||||||
|
#include "datatypes.h"
|
||||||
|
#include "virlog.h"
|
||||||
|
#include "bridge_driver_conf.h"
|
||||||
|
|
||||||
|
#define VIR_FROM_THIS VIR_FROM_NETWORK
|
||||||
|
|
||||||
|
VIR_LOG_INIT("network.bridge_driver");
|
||||||
|
|
||||||
|
|
||||||
|
dnsmasqCaps *
|
||||||
|
networkGetDnsmasqCaps(virNetworkDriverState *driver)
|
||||||
|
{
|
||||||
|
VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
|
||||||
|
return virObjectRef(driver->dnsmasqCaps);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
networkDnsmasqCapsRefresh(virNetworkDriverState *driver)
|
||||||
|
{
|
||||||
|
dnsmasqCaps *caps;
|
||||||
|
|
||||||
|
if (!(caps = dnsmasqCapsNewFromBinary()))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) {
|
||||||
|
virObjectUnref(driver->dnsmasqCaps);
|
||||||
|
driver->dnsmasqCaps = caps;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
67
src/network/bridge_driver_conf.h
Normal file
67
src/network/bridge_driver_conf.h
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
* bridge_driver_conf.h: network bridge driver state and config objects
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 Red Hat, Inc.
|
||||||
|
* Copyright (C) 2006 Daniel P. Berrange
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "internal.h"
|
||||||
|
#include "virthread.h"
|
||||||
|
#include "virdnsmasq.h"
|
||||||
|
#include "virnetworkobj.h"
|
||||||
|
#include "object_event.h"
|
||||||
|
|
||||||
|
/* Main driver state */
|
||||||
|
struct _virNetworkDriverState {
|
||||||
|
virMutex lock;
|
||||||
|
|
||||||
|
/* Read-only */
|
||||||
|
bool privileged;
|
||||||
|
|
||||||
|
/* pid file FD, ensures two copies of the driver can't use the same root */
|
||||||
|
int lockFD;
|
||||||
|
|
||||||
|
/* Immutable pointer, self-locking APIs */
|
||||||
|
virNetworkObjList *networks;
|
||||||
|
|
||||||
|
/* Immutable pointers, Immutable objects */
|
||||||
|
char *networkConfigDir;
|
||||||
|
char *networkAutostartDir;
|
||||||
|
char *stateDir;
|
||||||
|
char *pidDir;
|
||||||
|
char *dnsmasqStateDir;
|
||||||
|
|
||||||
|
/* Require lock to get a reference on the object,
|
||||||
|
* lockless access thereafter
|
||||||
|
*/
|
||||||
|
dnsmasqCaps *dnsmasqCaps;
|
||||||
|
|
||||||
|
/* Immutable pointer, self-locking APIs */
|
||||||
|
virObjectEventState *networkEventState;
|
||||||
|
|
||||||
|
virNetworkXMLOption *xmlopt;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _virNetworkDriverState virNetworkDriverState;
|
||||||
|
|
||||||
|
dnsmasqCaps *
|
||||||
|
networkGetDnsmasqCaps(virNetworkDriverState *driver);
|
||||||
|
|
||||||
|
int
|
||||||
|
networkDnsmasqCapsRefresh(virNetworkDriverState *driver);
|
@ -21,46 +21,13 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "internal.h"
|
#include "network_conf.h"
|
||||||
#include "virthread.h"
|
#include "bridge_driver_conf.h"
|
||||||
#include "virdnsmasq.h"
|
|
||||||
#include "virnetworkobj.h"
|
|
||||||
#include "object_event.h"
|
|
||||||
|
|
||||||
/* Main driver state */
|
void networkPreReloadFirewallRules(virNetworkDriverState *driver,
|
||||||
struct _virNetworkDriverState {
|
bool startup,
|
||||||
virMutex lock;
|
bool force);
|
||||||
|
|
||||||
/* Read-only */
|
|
||||||
bool privileged;
|
|
||||||
|
|
||||||
/* pid file FD, ensures two copies of the driver can't use the same root */
|
|
||||||
int lockFD;
|
|
||||||
|
|
||||||
/* Immutable pointer, self-locking APIs */
|
|
||||||
virNetworkObjList *networks;
|
|
||||||
|
|
||||||
/* Immutable pointers, Immutable objects */
|
|
||||||
char *networkConfigDir;
|
|
||||||
char *networkAutostartDir;
|
|
||||||
char *stateDir;
|
|
||||||
char *pidDir;
|
|
||||||
char *dnsmasqStateDir;
|
|
||||||
|
|
||||||
/* Require lock to get a reference on the object,
|
|
||||||
* lockless access thereafter
|
|
||||||
*/
|
|
||||||
dnsmasqCaps *dnsmasqCaps;
|
|
||||||
|
|
||||||
/* Immutable pointer, self-locking APIs */
|
|
||||||
virObjectEventState *networkEventState;
|
|
||||||
|
|
||||||
virNetworkXMLOption *xmlopt;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _virNetworkDriverState virNetworkDriverState;
|
|
||||||
|
|
||||||
void networkPreReloadFirewallRules(virNetworkDriverState *driver, bool startup, bool force);
|
|
||||||
void networkPostReloadFirewallRules(bool startup);
|
void networkPostReloadFirewallRules(bool startup);
|
||||||
|
|
||||||
int networkCheckRouteCollision(virNetworkDef *def);
|
int networkCheckRouteCollision(virNetworkDef *def);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
network_driver_sources = [
|
network_driver_sources = [
|
||||||
'bridge_driver.c',
|
'bridge_driver.c',
|
||||||
|
'bridge_driver_conf.c',
|
||||||
'bridge_driver_platform.c',
|
'bridge_driver_platform.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user