Handle hostnames with upper-case letters
[webmin.git] / updown / cancel.cgi
1 #!/usr/local/bin/perl
2 # cancel.cgi
3 # Cancel one or more downloads
4
5 require './updown-lib.pl';
6 &ReadParse();
7 &error_setup($text{'cancel_err'});
8
9 @ids = split(/\0/, $in{'cancel'});
10 @ids || &error($text{'cancel_enone'});
11
12 # Delete each one, and its At jobs, and kill its PID
13 if ($can_schedule) {
14         &foreign_require("at", "at-lib.pl");
15         @ats = &at::list_atjobs();
16         }
17 foreach $i (@ids) {
18         $down = &get_download($i);
19         &can_as_user($down->{'user'}) ||
20                 &error(&text('cancel_ecannot', $down->{'user'}));
21         next if (!$down);
22         &delete_download($down);
23
24         foreach $a (@ats) {
25                 if ($a->{'realcmd'} =~ /\Q$atjob_cmd\E\s+\Q$i\E/) {
26                         # Found the job to cancel
27                         &at::delete_atjob($a->{'id'});
28                         }
29                 }
30
31         if ($down->{'pid'}) {
32                 &kill_logged('TERM', $down->{'pid'});
33                 }
34         }
35 &webmin_log("cancel", undef, undef, { 'ids' => \@ids });
36 &redirect("index.cgi?mode=download");
37