The following small patch makes dnsmasq run from libvirtd reading
/etc/ethers and enables static ip address assignment with it.
Libvirtd already supports static ip address assignment by
//ip/dhcp/host element in network xml definition file, however the
number of the assignments looks limited by ARG_MAX or similar parameters
when dnsmasq is exec-ed.
This patch implements a workaround for this issue and the number of
static ip assignments becomes only limited by dnsmasq (I'm not sure the
exact number but it should large enough for most cases, I guess).
Signed-off-by: Satoru SATOH <satoru.satoh(a)gmail.com>
---
src/network/bridge_driver.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 95bc810..725d340 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -391,6 +391,7 @@ networkBuildDnsmasqArgv(virConnectPtr conn,
1 + /* dnsmasq */
1 + /* --strict-order */
1 + /* --bind-interfaces */
+ 1 + /* --read-ethers */
(network->def->domain?2:0) + /* --domain name */
2 + /* --pid-file /var/run/libvirt/network/$NAME.pid */
2 + /* --conf-file "" */
@@ -427,6 +428,7 @@ networkBuildDnsmasqArgv(virConnectPtr conn,
*/
APPEND_ARG(*argv, i++, "--strict-order");
APPEND_ARG(*argv, i++, "--bind-interfaces");
+ APPEND_ARG(*argv, i++, "--read-ethers");
if (network->def->domain) {
APPEND_ARG(*argv, i++, "--domain");
--
1.6.2.5