Commit 22cd8601 authored by Simon Kelley's avatar Simon Kelley

Allow more than one --bridge-interface option to refer to an interface.

parent 3c973ad9
...@@ -23,6 +23,14 @@ version 2.79 ...@@ -23,6 +23,14 @@ version 2.79
time validation when --dnssec-no-timecheck is in use. time validation when --dnssec-no-timecheck is in use.
Note that this is an incompatible change from earlier releases. Note that this is an incompatible change from earlier releases.
Allow more than one --bridge-interface option to refer to an
interface, so that we can use
--bridge-interface=int1,alias1
--bridge-interface=int1,alias2
as an alternative to
--bridge-interface=int1,alias1,alias2
Thanks to Neil Jerram for work on this.
version 2.78 version 2.78
Fix logic of appending ".<layer>" to PXE basename. Thanks to Chris Fix logic of appending ".<layer>" to PXE basename. Thanks to Chris
......
...@@ -1695,13 +1695,17 @@ option also forces the leasechange script to be called on changes ...@@ -1695,13 +1695,17 @@ option also forces the leasechange script to be called on changes
to the client-id and lease length and expiry time. to the client-id and lease length and expiry time.
.TP .TP
.B --bridge-interface=<interface>,<alias>[,<alias>] .B --bridge-interface=<interface>,<alias>[,<alias>]
Treat DHCP (v4 and v6) request and IPv6 Router Solicit packets Treat DHCP (v4 and v6) requests and IPv6 Router Solicit packets
arriving at any of the <alias> interfaces as if they had arrived at arriving at any of the <alias> interfaces as if they had arrived at
<interface>. This option allows dnsmasq to provide DHCP and RA <interface>. This option allows dnsmasq to provide DHCP and RA
service over unaddressed and unbridged Ethernet interfaces, e.g. on an service over unaddressed and unbridged Ethernet interfaces, e.g. on an
OpenStack compute host where each such interface is a TAP interface to OpenStack compute host where each such interface is a TAP interface to
a VM, or as in "old style bridging" on BSD platforms. A trailing '*' a VM, or as in "old style bridging" on BSD platforms. A trailing '*'
wildcard can be used in each <alias>. wildcard can be used in each <alias>.
It is permissible to add more than one alias using more than one --bridge-interface option since
--bridge-interface=int1,alias1,alias2 is exactly equivalent to
--bridge-interface=int1,alias1 --bridge-interface=int1,alias2
.TP .TP
.B \-s, --domain=<domain>[,<address range>[,local]] .B \-s, --domain=<domain>[,<address range>[,local]]
Specifies DNS domains for the DHCP server. Domains may be be given Specifies DNS domains for the DHCP server. Domains may be be given
......
...@@ -2733,14 +2733,23 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma ...@@ -2733,14 +2733,23 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
case LOPT_BRIDGE: /* --bridge-interface */ case LOPT_BRIDGE: /* --bridge-interface */
{ {
struct dhcp_bridge *new = opt_malloc(sizeof(struct dhcp_bridge)); struct dhcp_bridge *new;
if (!(comma = split(arg)) || strlen(arg) > IF_NAMESIZE - 1 ) if (!(comma = split(arg)) || strlen(arg) > IF_NAMESIZE - 1 )
ret_err(_("bad bridge-interface")); ret_err(_("bad bridge-interface"));
for (new = daemon->bridges; new; new = new->next)
if (strcmp(new->iface, arg) == 0)
break;
if (!new)
{
new = opt_malloc(sizeof(struct dhcp_bridge));
strcpy(new->iface, arg); strcpy(new->iface, arg);
new->alias = NULL; new->alias = NULL;
new->next = daemon->bridges; new->next = daemon->bridges;
daemon->bridges = new; daemon->bridges = new;
}
do { do {
arg = comma; arg = comma;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment