Handle hostnames with upper-case letters
[webmin.git] / mysql / list_procs.cgi
1 #!/usr/local/bin/perl
2 # Show currently connected MySQL users
3
4 require './mysql-lib.pl';
5 $access{'perms'} == 1 || &error($text{'procs_ecannot'});
6 &ui_print_header(undef, $text{'procs_title'}, "", "procs");
7
8 # Get the processes, except this one
9 $d = &execute_sql($master_db, "show full processlist");
10 @procs = grep { $_->[7] ne "show full processlist" ||
11                 $_->[3] ne $master_db ||
12                 $_->[1] ne $mysql_login } @{$d->{'data'}};
13
14 if (@procs) {
15         print &ui_form_start("kill_procs.cgi", "post");
16         @tds = ( "width=5" );
17         @rowlinks = ( &select_all_link("d"),
18                       &select_invert_link("d") );
19         print &ui_links_row(\@rowlinks);
20         print &ui_columns_start([ "",
21                                   $text{'procs_id'},
22                                   $text{'procs_user'},
23                                   $text{'procs_host'},
24                                   $text{'procs_db'},
25                                   $text{'procs_cmd'},
26                                   $text{'procs_time'},
27                                   $text{'procs_query'} ], 100, 0, \@tds);
28         foreach $r (@procs) {
29                 print &ui_checked_columns_row([
30                         $r->[0],
31                         "<a href='edit_user.cgi?user=$r->[1]'>$r->[1]</a>",
32                         $r->[2],
33                         "<a href='edit_dbase.cgi?db=$r->[3]'>$r->[3]</a>",
34                         $r->[4],
35                         &nice_time($r->[5]),
36                         &html_escape($r->[7])
37                         ], \@tds, "d", $r->[0]);
38                 }
39         print &ui_columns_end();
40         print &ui_links_row(\@rowlinks);
41         print &ui_form_end([ [ "kill", $text{'procs_kill'} ] ]);
42         }
43 else {
44         print "<b>$text{'procs_none'}</b><p>\n";
45         }
46
47 &ui_print_footer("", $text{'index_return'});
48
49 sub nice_time
50 {
51 local ($s) = @_;
52 return sprintf "%2.2d:%2.2d:%2.2d",
53         int($s / 3600), int($s / 60)%60, $s % 60;
54 }
55