Linux mail.vriendennsm.nl 6.1.0-51-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.177-1 (2026-07-16) x86_64
Apache/2.4.68 (Debian)
Server IP : 217.154.75.17 & Your IP : 216.73.216.195
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
webmin /
usermin /
Delete
Unzip
Name
Size
Permission
Date
Action
images
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
lang
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
CHANGELOG
3.94
KB
-rw-r--r--
2026-07-17 21:17
acl_security.pl
1.39
KB
-rwxr-xr-x
2026-07-17 21:17
backup_config.pl
2.17
KB
-rwxr-xr-x
2026-07-17 21:17
bootup.cgi
1.12
KB
-rwxr-xr-x
2026-07-17 21:22
cgi_args.pl
160
B
-rwxr-xr-x
2026-07-17 21:17
change_access.cgi
922
B
-rwxr-xr-x
2026-07-17 21:22
change_advanced.cgi
1.59
KB
-rwxr-xr-x
2026-07-17 21:22
change_anon.cgi
758
B
-rwxr-xr-x
2026-07-17 21:22
change_bind.cgi
3.3
KB
-rwxr-xr-x
2026-07-17 21:22
change_lang.cgi
489
B
-rwxr-xr-x
2026-07-17 21:22
change_mobile.cgi
989
B
-rwxr-xr-x
2026-07-17 21:22
change_os.cgi
1.9
KB
-rwxr-xr-x
2026-07-17 21:22
change_referers.cgi
462
B
-rwxr-xr-x
2026-07-17 21:22
change_session.cgi
5.19
KB
-rwxr-xr-x
2026-07-17 21:22
change_ssl.cgi
2.44
KB
-rwxr-xr-x
2026-07-17 21:22
change_theme.cgi
675
B
-rwxr-xr-x
2026-07-17 21:22
change_twofactor.cgi
1.07
KB
-rwxr-xr-x
2026-07-17 21:22
change_ui.cgi
1.61
KB
-rwxr-xr-x
2026-07-17 21:22
change_users.cgi
1.19
KB
-rwxr-xr-x
2026-07-17 21:22
change_web.cgi
2.8
KB
-rwxr-xr-x
2026-07-17 21:22
clear_blocked.cgi
126
B
-rwxr-xr-x
2026-07-17 21:22
clone_mod.cgi
1.67
KB
-rwxr-xr-x
2026-07-17 21:22
config
85
B
-rw-r--r--
2026-07-17 21:17
config.info
242
B
-rw-r--r--
2026-07-17 21:17
config.info.ar
315
B
-rw-r--r--
2026-07-17 21:17
config.info.ca
287
B
-rw-r--r--
2026-07-17 21:17
config.info.cs
287
B
-rw-r--r--
2026-07-17 21:17
config.info.de
275
B
-rw-r--r--
2026-07-17 21:17
config.info.es
298
B
-rw-r--r--
2026-07-17 21:17
config.info.fa
221
B
-rw-r--r--
2026-07-17 21:17
config.info.fi
273
B
-rw-r--r--
2026-07-17 21:17
config.info.fr
300
B
-rw-r--r--
2026-07-17 21:17
config.info.hu
0
B
-rw-r--r--
2026-07-17 21:17
config.info.it
304
B
-rw-r--r--
2026-07-17 21:17
config.info.ja
275
B
-rw-r--r--
2026-07-17 21:17
config.info.ms
264
B
-rw-r--r--
2026-07-17 21:17
config.info.nl
266
B
-rw-r--r--
2026-07-17 21:17
config.info.no
244
B
-rw-r--r--
2026-07-17 21:17
config.info.pl
290
B
-rw-r--r--
2026-07-17 21:17
config.info.pt_BR
54
B
-rw-r--r--
2026-07-17 21:17
config.info.ru
62
B
-rw-r--r--
2026-07-17 21:17
config.info.uk
63
B
-rw-r--r--
2026-07-17 21:17
config.info.zh_TW
34
B
-rw-r--r--
2026-07-17 21:17
copycert.cgi
1.52
KB
-rwxr-xr-x
2026-07-17 21:22
defaultacl
269
B
-rw-r--r--
2026-07-17 21:17
delete_mod.cgi
2.21
KB
-rwxr-xr-x
2026-07-17 21:22
delete_session.cgi
317
B
-rwxr-xr-x
2026-07-17 21:22
download_cert.cgi
575
B
-rwxr-xr-x
2026-07-17 21:22
edit_access.cgi
1.3
KB
-rwxr-xr-x
2026-07-17 21:22
edit_acl.cgi
634
B
-rwxr-xr-x
2026-07-17 21:22
edit_advanced.cgi
2.1
KB
-rwxr-xr-x
2026-07-17 21:22
edit_anon.cgi
807
B
-rwxr-xr-x
2026-07-17 21:22
edit_assignment.cgi
1.19
KB
-rwxr-xr-x
2026-07-17 21:22
edit_bind.cgi
2.66
KB
-rwxr-xr-x
2026-07-17 21:22
edit_blocked.cgi
892
B
-rwxr-xr-x
2026-07-17 21:22
edit_categories.cgi
2.04
KB
-rwxr-xr-x
2026-07-17 21:22
edit_configs.cgi
2.7
KB
-rwxr-xr-x
2026-07-17 21:22
edit_dav.cgi
1.75
KB
-rwxr-xr-x
2026-07-17 21:22
edit_defacl.cgi
692
B
-rwxr-xr-x
2026-07-17 21:22
edit_descs.cgi
846
B
-rwxr-xr-x
2026-07-17 21:22
edit_ipkey.cgi
1.62
KB
-rwxr-xr-x
2026-07-17 21:22
edit_lang.cgi
1.81
KB
-rwxr-xr-x
2026-07-17 21:22
edit_logout.cgi
1.16
KB
-rwxr-xr-x
2026-07-17 21:22
edit_mobile.cgi
1.16
KB
-rwxr-xr-x
2026-07-17 21:22
edit_mods.cgi
4.54
KB
-rwxr-xr-x
2026-07-17 21:22
edit_os.cgi
3.04
KB
-rwxr-xr-x
2026-07-17 21:22
edit_referers.cgi
937
B
-rwxr-xr-x
2026-07-17 21:22
edit_restrict.cgi
2.07
KB
-rwxr-xr-x
2026-07-17 21:22
edit_session.cgi
6.2
KB
-rwxr-xr-x
2026-07-17 21:22
edit_ssl.cgi
6.21
KB
-rwxr-xr-x
2026-07-17 21:22
edit_themes.cgi
3.82
KB
-rwxr-xr-x
2026-07-17 21:22
edit_twofactor.cgi
1.65
KB
-rwxr-xr-x
2026-07-17 21:22
edit_ui.cgi
3.14
KB
-rwxr-xr-x
2026-07-17 21:22
edit_upgrade.cgi
4.05
KB
-rwxr-xr-x
2026-07-17 21:22
edit_users.cgi
1.19
KB
-rwxr-xr-x
2026-07-17 21:22
edit_web.cgi
3.08
KB
-rwxr-xr-x
2026-07-17 21:22
export_mod.cgi
1.34
KB
-rwxr-xr-x
2026-07-17 21:22
feedback_files.pl
137
B
-rwxr-xr-x
2026-07-17 21:17
index.cgi
3.65
KB
-rwxr-xr-x
2026-07-17 21:22
install_check.pl
530
B
-rwxr-xr-x
2026-07-17 21:17
install_mod.cgi
2.68
KB
-rwxr-xr-x
2026-07-17 21:22
install_theme.cgi
2.19
KB
-rwxr-xr-x
2026-07-17 21:22
list_configs.cgi
803
B
-rwxr-xr-x
2026-07-17 21:22
list_restrict.cgi
1.51
KB
-rwxr-xr-x
2026-07-17 21:22
list_sessions.cgi
1.42
KB
-rwxr-xr-x
2026-07-17 21:22
log_parser.pl
1.64
KB
-rwxr-xr-x
2026-07-17 21:17
module.info
217
B
-rw-r--r--
2026-07-17 21:17
module.info.ar
133
B
-rw-r--r--
2026-07-17 21:17
module.info.ar.auto
16
B
-rw-r--r--
2026-07-17 21:17
module.info.bg
0
B
-rw-r--r--
2026-07-17 21:17
module.info.bg.auto
251
B
-rw-r--r--
2026-07-17 21:17
module.info.ca
131
B
-rw-r--r--
2026-07-17 21:17
module.info.ca.auto
16
B
-rw-r--r--
2026-07-17 21:17
module.info.cs
29
B
-rw-r--r--
2026-07-17 21:17
module.info.cs.auto
116
B
-rw-r--r--
2026-07-17 21:17
module.info.da
0
B
-rw-r--r--
2026-07-17 21:17
module.info.da.auto
129
B
-rw-r--r--
2026-07-17 21:17
module.info.de
122
B
-rw-r--r--
2026-07-17 21:17
module.info.de.auto
16
B
-rw-r--r--
2026-07-17 21:17
module.info.el
0
B
-rw-r--r--
2026-07-17 21:17
module.info.el.auto
212
B
-rw-r--r--
2026-07-17 21:17
module.info.es
34
B
-rw-r--r--
2026-07-17 21:17
module.info.es.auto
127
B
-rw-r--r--
2026-07-17 21:17
module.info.eu
0
B
-rw-r--r--
2026-07-17 21:17
module.info.eu.auto
164
B
-rw-r--r--
2026-07-17 21:17
module.info.fa
0
B
-rw-r--r--
2026-07-17 21:17
module.info.fa.auto
190
B
-rw-r--r--
2026-07-17 21:17
module.info.fi
26
B
-rw-r--r--
2026-07-17 21:17
module.info.fi.auto
103
B
-rw-r--r--
2026-07-17 21:17
module.info.fr
33
B
-rw-r--r--
2026-07-17 21:17
module.info.fr.auto
123
B
-rw-r--r--
2026-07-17 21:17
module.info.hr
0
B
-rw-r--r--
2026-07-17 21:17
module.info.hr.auto
154
B
-rw-r--r--
2026-07-17 21:17
module.info.hu
31
B
-rw-r--r--
2026-07-17 21:17
module.info.hu.auto
120
B
-rw-r--r--
2026-07-17 21:17
module.info.it
34
B
-rw-r--r--
2026-07-17 21:17
module.info.it.auto
114
B
-rw-r--r--
2026-07-17 21:17
module.info.ja
23
B
-rw-r--r--
2026-07-17 21:17
module.info.ja.auto
135
B
-rw-r--r--
2026-07-17 21:17
module.info.ko
0
B
-rw-r--r--
2026-07-17 21:17
module.info.ko.auto
140
B
-rw-r--r--
2026-07-17 21:17
module.info.ms
120
B
-rw-r--r--
2026-07-17 21:17
module.info.ms.auto
16
B
-rw-r--r--
2026-07-17 21:17
module.info.nl
29
B
-rw-r--r--
2026-07-17 21:17
module.info.nl.auto
103
B
-rw-r--r--
2026-07-17 21:17
module.info.no
30
B
-rw-r--r--
2026-07-17 21:17
module.info.no.auto
119
B
-rw-r--r--
2026-07-17 21:17
module.info.pl
120
B
-rw-r--r--
2026-07-17 21:17
module.info.pl.auto
16
B
-rw-r--r--
2026-07-17 21:17
module.info.pt
0
B
-rw-r--r--
2026-07-17 21:17
module.info.pt.auto
153
B
-rw-r--r--
2026-07-17 21:17
module.info.pt_BR
37
B
-rw-r--r--
2026-07-17 21:17
module.info.pt_BR.auto
125
B
-rw-r--r--
2026-07-17 21:17
module.info.ru
35
B
-rw-r--r--
2026-07-17 21:17
module.info.ru.auto
200
B
-rw-r--r--
2026-07-17 21:17
module.info.sk
0
B
-rw-r--r--
2026-07-17 21:17
module.info.sk.auto
146
B
-rw-r--r--
2026-07-17 21:17
module.info.sv
0
B
-rw-r--r--
2026-07-17 21:17
module.info.sv.auto
142
B
-rw-r--r--
2026-07-17 21:17
module.info.tr
0
B
-rw-r--r--
2026-07-17 21:17
module.info.tr.auto
150
B
-rw-r--r--
2026-07-17 21:17
module.info.uk
0
B
-rw-r--r--
2026-07-17 21:17
module.info.uk.auto
258
B
-rw-r--r--
2026-07-17 21:17
module.info.zh
0
B
-rw-r--r--
2026-07-17 21:17
module.info.zh.auto
114
B
-rw-r--r--
2026-07-17 21:17
module.info.zh_TW
25
B
-rw-r--r--
2026-07-17 21:17
module.info.zh_TW.auto
98
B
-rw-r--r--
2026-07-17 21:17
move.cgi
606
B
-rwxr-xr-x
2026-07-17 21:22
newkey.cgi
2.69
KB
-rwxr-xr-x
2026-07-17 21:22
restart.cgi
110
B
-rwxr-xr-x
2026-07-17 21:22
save_acl.cgi
355
B
-rwxr-xr-x
2026-07-17 21:22
save_assignment.cgi
588
B
-rwxr-xr-x
2026-07-17 21:22
save_categories.cgi
1.07
KB
-rwxr-xr-x
2026-07-17 21:22
save_configs.cgi
751
B
-rwxr-xr-x
2026-07-17 21:22
save_dav.cgi
1019
B
-rwxr-xr-x
2026-07-17 21:22
save_defacl.cgi
626
B
-rwxr-xr-x
2026-07-17 21:22
save_descs.cgi
585
B
-rwxr-xr-x
2026-07-17 21:22
save_ipkey.cgi
1.49
KB
-rwxr-xr-x
2026-07-17 21:22
save_logout.cgi
1022
B
-rwxr-xr-x
2026-07-17 21:22
save_restrict.cgi
1.31
KB
-rwxr-xr-x
2026-07-17 21:22
save_uconfigs.cgi
1.38
KB
-rwxr-xr-x
2026-07-17 21:22
savekey.cgi
2.4
KB
-rwxr-xr-x
2026-07-17 21:22
start.cgi
200
B
-rwxr-xr-x
2026-07-17 21:22
stop.cgi
203
B
-rwxr-xr-x
2026-07-17 21:22
switch.cgi
281
B
-rwxr-xr-x
2026-07-17 21:22
syslog_logs.pl
651
B
-rwxr-xr-x
2026-07-17 21:17
uninstall.pl
350
B
-rwxr-xr-x
2026-07-17 21:17
update.cgi
3.63
KB
-rwxr-xr-x
2026-07-17 21:22
update.pl
4.1
KB
-rwxr-xr-x
2026-07-17 21:22
update_sched.cgi
2.01
KB
-rwxr-xr-x
2026-07-17 21:22
upgrade.cgi
10.11
KB
-rwxr-xr-x
2026-07-17 21:22
usermin-lib.pl
28.51
KB
-rwxr-xr-x
2026-07-17 21:17
Save
Rename
#!/usr/bin/perl # upgrade.cgi # Upgrade usermin if possible require './usermin-lib.pl'; $access{'upgrade'} || &error($text{'acl_ecannot'}); &foreign_require("proc", "proc-lib.pl"); if ($ENV{'CONTENT_TYPE'} =~ /boundary=/) { &ReadParseMime(); } else { &ReadParse(); } &get_usermin_miniserv_config(\%miniserv); &ui_print_unbuffered_header(undef, $in{'install'} ? $text{'upgrade_title2'} : $text{'upgrade_title'}, ""); # Do we have an install dir? my $indir = $in{'dir'}; if (!$indir) { my $install_dir = "$config_directory/install-dir"; if (-e $install_dir) { $indir = &read_file_contents($install_dir); $indir = &trim($indir); $indir = undef if (!-d $indir); } } if ($in{'source'} == 0) { # from local file &error_setup(&text('upgrade_err1', $in{'file'})); $file = $in{'file'}; if (!(-r $file)) { &inst_error($text{'upgrade_efile'}); } } elsif ($in{'source'} == 1) { # from uploaded file &error_setup($text{'upgrade_err2'}); $file = &transname(); $need_unlink = 1; if ($no_upload) { &inst_error($text{'upgrade_ebrowser'}); } &open_tempfile(MOD, ">$file", 0, 1); &print_tempfile(MOD, $in{'upload'}); &close_tempfile(MOD); } elsif ($in{'source'} == 2) { # find latest version at webmin.com by looking at index page &error_setup($text{'upgrade_err3'}); $file = &transname(); my ($index_host, $index_port, $index_page, $index_ssl) = &parse_http_url($latest_page_url); &http_download($index_host, $index_port, $index_page, $file, \$error, undef, $index_ssl); $error && &inst_error($error); open(FILE, "<$file"); while(<FILE>) { if (/usermin-([0-9\.]+)-(\d+)\.tar\.gz/ || /usermin-([0-9\.]+)\.tar\.gz/) { $version = $1; $release = $2; last; } } close(FILE); unlink($file); if (!$in{'force'}) { if ($version == &get_usermin_version()) { &inst_error(&text('upgrade_elatest', $version)); } elsif ($version <= &get_usermin_version()) { &inst_error(&text('upgrade_eversion', $version)); } } # Work out the current Usermin type (webmail or regular) $product = "usermin"; if (&has_command("rpm") && $in{'mode'} eq 'rpm' && &execute_command("rpm -q usermin-webmail") == 0) { $product = "usermin-webmail"; } elsif (&has_command("dpkg") && $in{'mode'} eq 'deb' && &execute_command("dpkg --list usermin-webmail") == 0) { $product = "usermin-webmail"; } if ($in{'mode'} eq 'rpm') { $release ||= 1; $progress_callback_url = &convert_osdn_url( "http://$webmin::osdn_host/webadmin/newkey-${product}-${version}-${release}.noarch.rpm"); } elsif ($in{'mode'} eq 'deb') { $release = $release ? "-".$release : ""; $progress_callback_url = &convert_osdn_url( "http://$webmin::osdn_host/webadmin/newkey-${product}_${version}${release}_all.deb"); } else { $release = $release ? "-".$release : ""; $progress_callback_url = &convert_osdn_url( "http://$webmin::osdn_host/webadmin/${product}-${version}${release}.tar.gz"); } ($host, $port, $page, $ssl) = &parse_http_url($progress_callback_url); &http_download($host, $port, $page, $file, \$error, \&progress_callback, $ssl); $error && &inst_error($error); $need_unlink = 1; } elsif ($in{'source'} == 5) { # Download from some URL &error_setup(&text('upgrade_err5', $in{'url'})); $file = &transname(); $progress_callback_url = $in{'url'}; if ($in{'url'} =~ /^(http|https):\/\/([^\/]+)(\/.*)$/) { $ssl = $1 eq 'https'; $host = $2; $page = $3; $port = $ssl ? 443 : 80; if ($host =~ /^(.*):(\d+)$/) { $host = $1; $port = $2; } &http_download($host, $port, $page, $file, \$error, \&progress_callback, $ssl); } elsif ($in{'url'} =~ /^ftp:\/\/([^\/]+)(:21)?\/(.*)$/) { $host = $1; $ffile = $3; &ftp_download($host, $ffile, $file, \$error, \&progress_callback); } else { &inst_error($text{'upgrade_eurl'}); } $need_unlink = 1; $error && &inst_error($error); } $qfile = quotemeta($file); $qindir = quotemeta($indir) if (defined($indir)); # gunzip the file if needed open(FILE, "<$file"); read(FILE, $two, 2); close(FILE); if ($two eq "\037\213") { if (!&has_command("gunzip")) { &inst_error($text{'upgrade_egunzip'}); } $newfile = &transname(); $qnewfile = quotemeta($newfile); $out = `gunzip -c $qfile 2>&1 >$qnewfile`; if ($?) { unlink($newfile); &inst_error(&text('upgrade_egzip', "<tt>$out</tt>")); } unlink($file) if ($need_unlink); $need_unlink = 1; $file = $newfile; } $qfile = quotemeta($file); # Get list of updates $updatestemp = &transname(); &http_download($update_host, $update_port, $update_page, $updatestemp, \$updates_error, undef, $update_ssl); if ($in{'mode'} eq 'rpm') { # Check if it is an RPM package $out = `rpm -qp $qfile`; $out =~ /^usermin-(\d+\.\d+)/ || $out =~ /^usermin-webmail-(\d+\.\d+)/ || &inst_error($text{'upgrade_erpm'}); $version = $1; if ($version <= &get_usermin_version() && !$in{'force'}) { &inst_error(&text('upgrade_eversion', $version)); } # Install the RPM if ($in{'force'}) { $cmd = "rpm -Uv --force --nodeps $qfile"; } else { $cmd = "rpm -Uv --ignoreos --ignorearch --nodeps $qfile"; } print "<p>",&text($in{'install'} ? 'upgrade_setup2' : 'upgrade_setup', "<tt>$cmd</tt>"),"<br>\n"; print "<pre>"; &proc::safe_process_exec($cmd, 0, 0, STDOUT, undef, 1); print "</pre>"; unlink($file) if ($need_unlink); } elsif ($in{'mode'} eq 'deb') { # Check if it is a Debian package $out = `dpkg --info $qfile`; $out =~ /Package:\s+(\S+)/ && ($1 eq "usermin" || $1 eq "usermin-webmail") || &inst_error($text{'upgrade_edeb'}); $out =~ /Version:\s+(\S+)/ || &inst_error($text{'upgrade_edeb'}); $version = $1; if ($version <= &get_usermin_version() && !$in{'force'}) { &inst_error(&text('upgrade_eversion', $version)); } # Install the package $cmd = "dpkg --install $qfile"; print "<p>",&text($in{'install'} ? 'upgrade_setup2' : 'upgrade_setup', "<tt>$cmd</tt>"),"<br>\n"; print "<pre>"; &proc::safe_process_exec($cmd, 0, 0, STDOUT, undef, 1); print "</pre>"; unlink($file) if ($need_unlink); } else { # Check if it is a usermin tarfile open(TAR, "tar tf $qfile 2>&1 |"); while(<TAR>) { if (/^usermin-([0-9\.]+)\//) { $version = $1; } if (/^webmin-([0-9\.]+)\//) { $webmin_version = $1; } if (/^[^\/]+\/(\S+)$/) { $hasfile{$1}++; } } close(TAR); if ($webmin_version) { &inst_error(&text('upgrade_ewebmin', $webmin_version)); } if (!$version) { if ($hasfile{'module.info'}) { &inst_error(&text('upgrade_emod', 'edit_mods.cgi')); } else { &inst_error($text{'upgrade_etar'}); } } if (!$in{'force'}) { if ($version <= &get_usermin_version()) { &inst_error(&text('upgrade_eversion', $version)); } } $| = 1; local $cmd; if ($in{'install'}) { # Installing .. extract it in /usr/local and run setup.sh local $root = "/usr/local"; mkdir($root, 0755); $qroot = quotemeta($root); $out = `cd $qroot ; tar xf $qfile 2>&1 >/dev/null`; if ($?) { &inst_error(&text('upgrade_euntar', "<tt>$out</tt>")); } unlink($file) if ($need_unlink); $ENV{'config_dir'} = $standard_usermin_dir; $ENV{'var_dir'} = "/var/usermin"; $perl = &get_perl_path(); $ENV{'perl'} = $perl; $ENV{'autoos'} = 3; $ENV{'port'} = 20000; $ENV{'ssl'} = 1; $ENV{'os_type'} = $gconfig{'os_type'}; $ENV{'os_version'} = $gconfig{'os_version'}; $ENV{'real_os_type'} = $gconfig{'real_os_type'}; $ENV{'real_os_version'} = $gconfig{'real_os_version'}; $cmd = "(cd $root/usermin-$version && ./setup.sh)"; print "<p>",&text('upgrade_setup2', "<tt>setup.sh</tt>"),"<br>\n"; } else { # Upgrading .. work out where to extract if ($indir) { # Since we are currently installed in a fixed directory, # just extract to a temporary location $extract = &transname(); mkdir($extract, 0755); } else { # Next to the current directory $extract = "$miniserv{'root'}/.."; } # Extract it next to the current directory and run setup.sh $qextract = quotemeta($extract); $out = `cd $qextract ; tar xf $qfile 2>&1 >/dev/null`; if ($?) { &inst_error(&text('upgrade_euntar', "<tt>$out</tt>")); } unlink($file) if ($need_unlink); $ENV{'config_dir'} = $config{'usermin_dir'}; $ENV{'webmin_upgrade'} = 1; $ENV{'autothird'} = 1; $setup = $indir ? "./setup.sh $qindir" : "./setup.sh"; if ($in{'delete'}) { $ENV{'deletedold'} = 1; $cmd = "(cd $extract/usermin-$version && $setup && rm -rf \"$miniserv{'root'}\")"; } else { $cmd = "(cd $extract/usermin-$version && $setup)"; } print "<p>",&text('upgrade_setup', "<tt>setup.sh</tt>"),"<br>\n"; } print "<pre>"; &proc::safe_process_exec($cmd, 0, 0, STDOUT, undef, 1); print "</pre>"; if ($indir) { # Can delete the temporary source directory system("rm -rf \"$extract\""); } } # Notify Webmin that this module might now be usable &foreign_require("webmin", "webmin-lib.pl"); ($inst, $changed) = &webmin::build_installed_modules(0, 'usermin'); if (@$changed && defined(&theme_post_change_modules)) { &theme_post_change_modules(); } &webmin_log($in{'install'} ? "uinstall" : "upgrade", undef, undef, { 'version' => $version, 'mode' => $in{'mode'} }); # Find out about any updates for this new version. if ($updates_error) { print "<br>",&text('upgrade_eupdates', $updates_error),"<p>\n"; } else { open(UPDATES, "<$updatestemp"); while(<UPDATES>) { if (/^([^\t]+)\t+([^\t]+)\t+([^\t]+)\t+([^\t]+)\t+(.*)/) { push(@updates, [ $1, $2, $3, $4, $5 ]); } } close(UPDATES); unlink($updatestemp); $bversion = &base_version($version); foreach $u (@updates) { next if ($u->[1] >= $bversion + .01 || $u->[1] <= $bversion || $u->[1] <= $version); local $osinfo = { 'os_support' => $u->[3] }; next if (!&check_usermin_os_support($osinfo)); $ucount++; } if ($ucount) { print "<br>",&text('upgrade_updates', $ucount, "update.cgi?source=0&show=0&missing=0"),"<p>\n"; } } &ui_print_footer("", $text{'index_return'}); sub inst_error { unlink($file) if ($need_unlink); &error($_[0]); exit; }