Handle hostnames with upper-case letters
[webmin.git] / net / delete_bifcs.cgi
1 #!/usr/local/bin/perl
2 # Delete some boot-time interfaces, and perhaps de-activate them too
3
4 require './net-lib.pl';
5 &ReadParse();
6 &error_setup($in{'apply'} ? $text{'dbifcs_err2'} : $text{'dbifcs_err'});
7 @d = split(/\0/, $in{'b'});
8 @d || &error($text{'daifcs_enone'});
9
10 # Do the deletes
11 @boot = &boot_interfaces();
12 @active = &active_interfaces();
13 foreach $d (reverse(@d)) {
14         ($b) = grep { $_->{'fullname'} eq $d } @boot;
15         $b || &error($text{'daifcs_egone'});
16         &can_iface($b) || &error($text{'ifcs_ecannot_this'});
17         if ($in{'apply'}) {
18                 # Make this interface active
19                 &activate_interface($b);
20                 }
21         else {
22                 # Deleting
23                 if ($in{'deleteapply'}) {
24                         # De-activate first
25                         ($act) = grep { $_->{'fullname'} eq $b->{'fullname'} }
26                                       @active;
27                         if ($act) {
28                                 if (defined(&unapply_interface)) {
29                                         $err = &unapply_interface($act);
30                                         $err && &error("<pre>$err</pre>");
31                                         }
32                                 else {
33                                         &deactivate_interface($act);                                    
34                                         if(&iface_type($b->{'name'}) eq 'Bonded'){
35                                                 if (($gconfig{'os_type'} eq 'debian-linux') && ($gconfig{'os_version'} >= 5)) {}
36                                                 else {&unload_module($b->{'name'});}
37                                         }
38                                         }
39                                 }
40                         }
41
42                 # Delete config
43                 &delete_interface($b);
44                 if(&iface_type($b->{'name'}) eq 'Bonded' &&
45                    defined(&delete_module_def)){
46                         &delete_module_def($b->{'name'});       
47                 }
48                 }
49         }
50
51 &webmin_log($in{'apply'} ? "apply" : "delete", "bifcs", scalar(@d));
52 &redirect("list_ifcs.cgi?mode=boot");
53