mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
This patch changes how parameters are passed to dnsmasq. Instead of being on the command line, the parameters are put into a file (one parameter per line) and a commandline --conf-file= specifies the location of the file. The file is located in the same directory as the leases file. Putting the dnsmasq parameters into a configuration file allows them to be examined and more easily understood than examining the command lines displayed by "ps ax". This is especially true when a number of networks have been started. When the use of dnsmasq was originally done, the required command line was simple, but it has gotten more complicated over time and will likely become even more complicated in the future. Note: The test conf files have all been renamed .conf instead of .argv, and tests/networkxml2xmlargvdata was moved to tests/networkxml2xmlconfdata.
70 lines
2.4 KiB
C
70 lines
2.4 KiB
C
/*
|
|
* network_driver.h: core driver methods for managing networks
|
|
*
|
|
* Copyright (C) 2006-2012 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/>.
|
|
*
|
|
* Author: Daniel P. Berrange <berrange@redhat.com>
|
|
*/
|
|
|
|
|
|
#ifndef __VIR_NETWORK__DRIVER_H
|
|
# define __VIR_NETWORK__DRIVER_H
|
|
|
|
# include <config.h>
|
|
|
|
# include "internal.h"
|
|
# include "network_conf.h"
|
|
# include "domain_conf.h"
|
|
# include "command.h"
|
|
# include "dnsmasq.h"
|
|
|
|
int networkRegister(void);
|
|
|
|
# if WITH_NETWORK
|
|
int networkAllocateActualDevice(virDomainNetDefPtr iface)
|
|
ATTRIBUTE_NONNULL(1);
|
|
int networkNotifyActualDevice(virDomainNetDefPtr iface)
|
|
ATTRIBUTE_NONNULL(1);
|
|
int networkReleaseActualDevice(virDomainNetDefPtr iface)
|
|
ATTRIBUTE_NONNULL(1);
|
|
|
|
int networkGetNetworkAddress(const char *netname, char **netaddr)
|
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
|
|
|
int networkDnsmasqConfContents(virNetworkObjPtr network,
|
|
const char *pidfile,
|
|
char **configstr,
|
|
dnsmasqContext *dctx,
|
|
dnsmasqCapsPtr caps);
|
|
# else
|
|
/* Define no-op replacements that don't drag in any link dependencies. */
|
|
# define networkAllocateActualDevice(iface) 0
|
|
# define networkNotifyActualDevice(iface) (iface=iface, 0)
|
|
# define networkReleaseActualDevice(iface) (iface=iface, 0)
|
|
# define networkGetNetworkAddress(netname, netaddr) (-2)
|
|
# define networkDnsmasqConfContents(network, pidfile, configstr, \
|
|
dctx, caps) 0
|
|
# endif
|
|
|
|
typedef char *(*networkDnsmasqLeaseFileNameFunc)(const char *netname);
|
|
|
|
/* this allows the testsuite to replace the lease filename resolver function */
|
|
extern networkDnsmasqLeaseFileNameFunc networkDnsmasqLeaseFileName;
|
|
|
|
#endif /* __VIR_NETWORK__DRIVER_H */
|