On Tue, Oct 13, 2009 at 04:14:59PM +0200, Daniel Veillard wrote:
* src/network/bridge_driver.c: when exec'ing dnsmaq, if there
are
DHCP ranges defined, then compute and pass the --dhcp-lease-max
deriving the maximum number of leases
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 95bc810..bffb6f7 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -365,6 +365,7 @@ networkBuildDnsmasqArgv(virConnectPtr conn,
const char *pidfile,
const char ***argv) {
int i, len, r;
+ int nbleases = 0;
char *pidfileArg;
char buf[1024];
@@ -398,6 +399,8 @@ networkBuildDnsmasqArgv(virConnectPtr conn,
2 + /* --except-interface lo */
2 + /* --listen-address 10.0.0.1 */
(2 * network->def->nranges) + /* --dhcp-range 10.0.0.2,10.0.0.254 */
+ /* --dhcp-lease-max=xxx if needed */
+ (network->def->nranges ? 0 : 1) +
/* --dhcp-host 01:23:45:67:89:0a,hostname,10.0.0.3 */
(2 * network->def->nhosts) +
/* --enable-tftp --tftp-root /srv/tftp */
@@ -462,6 +465,12 @@ networkBuildDnsmasqArgv(virConnectPtr conn,
APPEND_ARG(*argv, i++, "--dhcp-range");
APPEND_ARG(*argv, i++, buf);
+ nbleases += network->def->ranges[r].size;
+ }
+
+ if (network->def->nranges > 0) {
+ snprintf(buf, sizeof(buf), "--dhcp-lease-max=%d", nbleases);
+ APPEND_ARG(*argv, i++, buf);
}
for (r = 0 ; r < network->def->nhosts ; r++) {
ACK,
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|