More work on bridge support
authorJamie Cameron <jcameron@webmin.com>
Tue, 28 Jun 2011 16:11:06 +0000 (09:11 -0700)
committerJamie Cameron <jcameron@webmin.com>
Tue, 28 Jun 2011 16:11:06 +0000 (09:11 -0700)
net/redhat-linux-lib.pl
net/save_bifc.cgi

index e429d95..00cbe06 100755 (executable)
@@ -199,6 +199,9 @@ else {
        if ((@ip6s || $b->{'auto6'}) && lc($conf{'IPV6INIT'}) ne 'yes') {
                $conf{'IPV6INIT'} = 'yes';
                }
+       elsif (!@ip6s && !$b->{'auto6'}) {
+               $conf{'IPV6INIT'} = 'no';
+               }
        if (@ip6s) {
                $conf{'IPV6ADDR'} = shift(@ip6s);
                $conf{'IPV6ADDR_SECONDARIES'} = join(" ", @ip6s);
index fcab1f9..af7ba99 100755 (executable)
@@ -130,6 +130,9 @@ else {
                $b->{$in{'mode'}}++;
                $auto++;
                }
+       elsif ($in{'mode'} eq 'none') {
+               delete($b->{'address'});
+               }
        else {
                &valid_boot_address($in{'address'}) ||
                        &error(&text('bifc_eip', $in{'address'}));
@@ -141,7 +144,11 @@ else {
                $b->{'desc'} = $in{'desc'};
                }
 
-       if ($virtual_netmask && $b->{'virtual'} ne "") {
+       if ($in{'mode'} eq 'none') {
+               # No netmask needed
+               delete($b->{'netmask'});
+               }
+       elsif ($virtual_netmask && $b->{'virtual'} ne "") {
                # Always use this netmask for virtuals
                $b->{'netmask'} = $virtual_netmask;
                }
@@ -152,12 +159,17 @@ else {
                        $oldb->{'netmask'};
                }
        elsif (&can_edit("netmask", $b) && $access{'netmask'}) {
-               $auto && !$in{'netmask'} || &check_netmask($in{'netmask'},$in{'address'}) ||
+               $auto && !$in{'netmask'} ||
+                   &check_netmask($in{'netmask'},$in{'address'}) ||
                        &error(&text('bifc_emask', $in{'netmask'}));
                $b->{'netmask'} = $in{'netmask'};
                }
 
-       if (!$access{'broadcast'} || $in{'broadcast_def'}) {
+       if ($in{'mode'} eq 'none') {
+               # No broadcast needed
+               delete($b->{'broadcast'});
+               }
+       elsif (!$access{'broadcast'} || $in{'broadcast_def'}) {
                # Work out broadcast
                $b->{'broadcast'} = $in{'new'} ? 
                        &compute_broadcast($b->{'address'}, $b->{'netmask'}) :
@@ -171,7 +183,11 @@ else {
                $b->{'broadcast'} = $in{'broadcast'};
                }
 
-       if (!$access{'mtu'}) {
+       if ($in{'mode'} eq 'none') {
+               # No MTU needed
+               delete($b->{'mtu'});
+               }
+       elsif (!$access{'mtu'}) {
                # Use default MTU
                $b->{'mtu'} = $in{'new'} ? $config{'def_mtu'}
                                         : $oldb->{'mtu'};