Compute broadcast dynamically
authorJamie Cameron <jcameron@webmin.com>
Tue, 2 Feb 2010 17:39:10 +0000 (09:39 -0800)
committerJamie Cameron <jcameron@webmin.com>
Tue, 2 Feb 2010 17:39:10 +0000 (09:39 -0800)
net/edit_bifc.cgi
net/save_bifc.cgi

index 1d8474f..aeae266 100755 (executable)
@@ -107,8 +107,9 @@ if (!$b || !&is_ipv6_address($b->{'address'})){
        if (&can_edit("broadcast", $b) && $access{'broadcast'}) {
                # Can edit broadcast address
                push(@grid, $text{'ifcs_broad'},
-                   &ui_textbox("broadcast", $b ? $b->{'broadcast'}
-                                               : $config{'def_broadcast'},15));
+                   &ui_opt_textbox("broadcast",
+                       $b ? $b->{'broadcast'} : $config{'def_broadcast'},
+                       15, $text{'ifcs_auto'}));
                }
        elsif ($b && $b->{'broadcast'}) {
                # Broadcast is fixed
index f5f9582..a8661dc 100755 (executable)
@@ -148,16 +148,16 @@ else {
                $b->{'netmask'} = $in{'netmask'};
                }
 
-       if (!$access{'broadcast'}) {
+       if (!$access{'broadcast'} || $in{'broadcast_def'}) {
                # Work out broadcast
                $b->{'broadcast'} = $in{'new'} ? 
                        &compute_broadcast($b->{'address'}, $b->{'netmask'}) :
                        $oldb->{'broadcast'};
                }
        elsif (&can_edit("broadcast", $b)) {
-
+               # Manually entered broadcast
                &is_ipv6_address($in{'address'}) || 
-               ($auto && !$in{'broadcast'}) ||
+                   ($auto && !$in{'broadcast'}) ||
                        &check_ipaddress($in{'broadcast'}) ||
                        &error(&text('bifc_ebroad', $in{'broadcast'}));
                $b->{'broadcast'} = $in{'broadcast'};