Handle hostnames with upper-case letters
[webmin.git] / squid / delete_pools.cgi
1 #!/usr/local/bin/perl
2 # Delete a bunch of delay pools
3
4 require './squid-lib.pl';
5 &error_setup($text{'dpool_err'});
6 $access{'delay'} || &error($text{'delay_ecannot'});
7 &ReadParse();
8 @d = split(/\0/, $in{'d'});
9 @d || &error($text{'dpool_enone'});
10
11 # Get the current settings
12 &lock_file($config{'squid_conf'});
13 $conf = &get_config();
14 @pools = &find_config("delay_class", $conf);
15 @params = &find_config("delay_parameters", $conf);
16 @access = &find_config("delay_access", $conf);
17 $pools = &find_config("delay_pools", $conf);
18
19 # Do the deletion, highest first
20 foreach $d (sort { $b <=> $a } @d) {
21         ($pool) = grep { $_->{'values'}->[0] == $d } @pools;
22         ($param) = grep { $_->{'values'}->[0] == $d } @params;
23         @access = grep { $_->{'values'}->[0] != $d } @access;
24         @pools = grep { $_ ne $pool } @pools;
25         @params = grep { $_ ne $param } @params;
26         map { $_->{'values'}->[0]-- if ($_->{'values'}->[0] > $d) } 
27                 (@access, @pools, @params);
28         &save_directive($conf, "delay_class", \@pools);
29         &save_directive($conf, "delay_parameters", \@params);
30         &save_directive($conf, "delay_access", \@access);
31         $pools->{'values'}->[0]--;
32         &save_directive($conf, "delay_pools", [ $pools ]);
33         }
34
35 &flush_file_lines();
36 &unlock_file($config{'squid_conf'});
37 &webmin_log("delete", "pools", scalar(@d));
38 &redirect("edit_delay.cgi");
39
40
41