#!/usr/bin/perl # update.pl # Find and install updated usermin modules, and email out the result $no_acl_check++; require './usermin-lib.pl'; if (!-r "$config{'usermin_dir'}/miniserv.conf") { # Usermin not installed exit(0); } # Get the update source if ($config{'upsource'}) { $config{'upsource'} =~ /^http:\/\/([^:\/]+)(:(\d+))?(\/\S+)$/ || die "Invalid update source URL!"; $host = $1; $port = $2 ? $3 : 80; $page = $4; } else { $host = $update_host; $port = $update_port; $page = $update_page; } # Retrieve the updates list (format is module version url support description ) $temp = &transname(); &http_download($host, $port, $page, $temp); open(UPDATES, "<".$temp); while(<UPDATES>) { if (/^([^\t]+)\t+([^\t]+)\t+([^\t]+)\t+([^\t]+)\t+(.*)/) { push(@updates, [ $1, $2, $3, $4, $5 ]); } } close(UPDATES); unlink($temp); # Go through the results foreach $u (@updates) { next if ($u->[1] >= &get_usermin_base_version() + .01 || $u->[1] < &get_usermin_base_version()); local %minfo = &get_usermin_module_info($u->[0]); local %tinfo = &get_usermin_theme_info($u->[0]); if (!%minfo && !%tinfo && !$config{'upmissing'}) { $rv .= &text('update_mmissing', $u->[0])."\n" if (!$config{'upquiet'}); next; } if (%minfo && $minfo{'version'} >= $u->[1]) { $rv .= &text('update_malready', $u->[0])."\n" if (!$config{'upquiet'}); next; } if (%tinfo && $tinfo{'version'} >= $u->[1]) { $rv .= &text('update_malready', $u->[0])."\n" if (!$config{'upquiet'}); next; } local $osinfo = { 'os_support' => $u->[3] }; if (!&check_usermin_os_support($osinfo)) { $rv .= &text('update_mos', $u->[0])."\n" if (!$config{'upquiet'}); next; } if ($config{'upshow'}) { # Just tell the user what would be done $rv .= &text('update_mshow', $u->[0], $u->[1])."\n". $text{'update_fixes'}." : ".$u->[4]."\n\n"; } else { # Actually do the update .. local (@mdescs, @mdirs, @msizes); $rv .= &text('update_mok', $u->[0], $u->[1])."\n". $text{'update_fixes'}." : ".$u->[4]."\n\n"; if ($u->[2] =~ /^http:\/\/([^:\/]+)(:(\d+))?(\/\S+)$/) { $mhost = $1; $mport = $2 ? $3 : 80; $mpage = $4; } elsif ($u->[2] =~ /^\/\S+$/) { $mhost = $host; $mport = $port; $mpage = $u->[2]; } else { $mhost = $host; $mport = $port; ($mpage = $page) =~ s/[^\/]+$//; $mpage .= $u->[2]; } $mtemp = &transname(); &http_download($mhost, $mport, $mpage, $mtemp, \$error); if ($error) { $rv .= "$error\n\n"; last; } else { $irv = &install_usermin_module($mtemp, 1, 0); if (!ref($irv)) { $irv =~ s/<[^>]*>//g; $irv .= &text('update_failed', $irv)."\n\n"; } else { $irv .= &text('update_mdesc', $irv->[0]->[0], $irv->[2]->[0])."\n\n"; } } } } # Check if a new version of usermin itself is available $file = &transname(); &http_download('www.webmin.com', 80, '/index6.html', $file); open(FILE, "<".$file); while(<FILE>) { if (/usermin-([0-9\.]+)\.tar\.gz/) { $version = $1; last; } } close(FILE); unlink($file); if ($version > &get_usermin_version()) { $rv .= &text('update_version', $version)."\n"; } # Send off a results email if ($config{'upemail'} && $rv && &foreign_check("mailboxes")) { # Construct and send the email &foreign_require("mailboxes", "mailboxes-lib.pl"); local $data; local $type = $gconfig{'real_os_type'} || $gconfig{'os_type'}; local $version = $gconfig{'real_os_version'} || $gconfig{'os_version'}; local $myhost = &get_system_hostname(); $data .= "$myhost ($type $version)\n\n"; $data .= &text('update_rv', "http://$host:$port$page")."\n\n"; $data .= $rv; &mailboxes::send_text_mail(&mailboxes::get_from_address(), $config{'upemail'}, undef, $text{'update_subject'}, $data); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 3.94 KB | 0644 |
|
acl_security.pl | File | 1.37 KB | 0755 |
|
backup_config.pl | File | 2.17 KB | 0755 |
|
bootup.cgi | File | 1.12 KB | 0755 |
|
cgi_args.pl | File | 160 B | 0755 |
|
change_access.cgi | File | 783 B | 0755 |
|
change_advanced.cgi | File | 1.57 KB | 0755 |
|
change_anon.cgi | File | 758 B | 0755 |
|
change_bind.cgi | File | 2.96 KB | 0755 |
|
change_lang.cgi | File | 489 B | 0755 |
|
change_mobile.cgi | File | 989 B | 0755 |
|
change_os.cgi | File | 1.9 KB | 0755 |
|
change_referers.cgi | File | 462 B | 0755 |
|
change_session.cgi | File | 5.15 KB | 0755 |
|
change_ssl.cgi | File | 2.44 KB | 0755 |
|
change_theme.cgi | File | 675 B | 0755 |
|
change_twofactor.cgi | File | 1.07 KB | 0755 |
|
change_ui.cgi | File | 1.55 KB | 0755 |
|
change_users.cgi | File | 1.19 KB | 0755 |
|
change_web.cgi | File | 2.8 KB | 0755 |
|
clear_blocked.cgi | File | 126 B | 0755 |
|
clone_mod.cgi | File | 1.53 KB | 0755 |
|
config | File | 85 B | 0644 |
|
config.info | File | 242 B | 0644 |
|
config.info.ar | File | 315 B | 0644 |
|
config.info.ca | File | 287 B | 0644 |
|
config.info.cs | File | 287 B | 0644 |
|
config.info.de | File | 275 B | 0644 |
|
config.info.es | File | 298 B | 0644 |
|
config.info.fa | File | 221 B | 0644 |
|
config.info.fi | File | 273 B | 0644 |
|
config.info.fr | File | 300 B | 0644 |
|
config.info.hu | File | 0 B | 0644 |
|
config.info.it | File | 304 B | 0644 |
|
config.info.ja | File | 275 B | 0644 |
|
config.info.ms | File | 264 B | 0644 |
|
config.info.nl | File | 266 B | 0644 |
|
config.info.no | File | 244 B | 0644 |
|
config.info.pl | File | 290 B | 0644 |
|
config.info.pt_BR | File | 54 B | 0644 |
|
config.info.ru | File | 62 B | 0644 |
|
config.info.uk | File | 63 B | 0644 |
|
config.info.zh_TW | File | 34 B | 0644 |
|
copycert.cgi | File | 1.58 KB | 0755 |
|
defaultacl | File | 269 B | 0644 |
|
delete_mod.cgi | File | 2.14 KB | 0755 |
|
delete_session.cgi | File | 317 B | 0755 |
|
download_cert.cgi | File | 575 B | 0755 |
|
edit_access.cgi | File | 1.22 KB | 0755 |
|
edit_acl.cgi | File | 620 B | 0755 |
|
edit_advanced.cgi | File | 2.05 KB | 0755 |
|
edit_anon.cgi | File | 807 B | 0755 |
|
edit_assignment.cgi | File | 1.18 KB | 0755 |
|
edit_bind.cgi | File | 2.08 KB | 0755 |
|
edit_blocked.cgi | File | 892 B | 0755 |
|
edit_categories.cgi | File | 2.03 KB | 0755 |
|
edit_configs.cgi | File | 2.68 KB | 0755 |
|
edit_dav.cgi | File | 1.75 KB | 0755 |
|
edit_defacl.cgi | File | 692 B | 0755 |
|
edit_descs.cgi | File | 846 B | 0755 |
|
edit_ipkey.cgi | File | 1.62 KB | 0755 |
|
edit_lang.cgi | File | 1.79 KB | 0755 |
|
edit_logout.cgi | File | 1.16 KB | 0755 |
|
edit_mobile.cgi | File | 1.14 KB | 0755 |
|
edit_mods.cgi | File | 4.49 KB | 0755 |
|
edit_os.cgi | File | 3.04 KB | 0755 |
|
edit_referers.cgi | File | 937 B | 0755 |
|
edit_restrict.cgi | File | 2.05 KB | 0755 |
|
edit_session.cgi | File | 6.01 KB | 0755 |
|
edit_ssl.cgi | File | 6.24 KB | 0755 |
|
edit_themes.cgi | File | 3.28 KB | 0755 |
|
edit_twofactor.cgi | File | 1.65 KB | 0755 |
|
edit_ui.cgi | File | 2.67 KB | 0755 |
|
edit_upgrade.cgi | File | 4.05 KB | 0755 |
|
edit_users.cgi | File | 1.19 KB | 0755 |
|
edit_web.cgi | File | 3.08 KB | 0755 |
|
export_mod.cgi | File | 1.33 KB | 0755 |
|
feedback_files.pl | File | 137 B | 0755 |
|
index.cgi | File | 3.64 KB | 0755 |
|
install_check.pl | File | 530 B | 0755 |
|
install_mod.cgi | File | 2.68 KB | 0755 |
|
install_theme.cgi | File | 2.19 KB | 0755 |
|
list_configs.cgi | File | 780 B | 0755 |
|
list_restrict.cgi | File | 1.51 KB | 0755 |
|
list_sessions.cgi | File | 1.42 KB | 0755 |
|
log_parser.pl | File | 1.49 KB | 0755 |
|
module.info | File | 217 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 130 B | 0644 |
|
module.info.ar | File | 133 B | 0644 |
|
module.info.ar.auto | File | 16 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 229 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 251 B | 0644 |
|
module.info.ca | File | 131 B | 0644 |
|
module.info.ca.auto | File | 16 B | 0644 |
|
module.info.cs | File | 29 B | 0644 |
|
module.info.cs.auto | File | 116 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 129 B | 0644 |
|
module.info.de | File | 122 B | 0644 |
|
module.info.de.auto | File | 16 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 212 B | 0644 |
|
module.info.es | File | 34 B | 0644 |
|
module.info.es.auto | File | 127 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 164 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 190 B | 0644 |
|
module.info.fi | File | 26 B | 0644 |
|
module.info.fi.auto | File | 103 B | 0644 |
|
module.info.fr | File | 33 B | 0644 |
|
module.info.fr.auto | File | 123 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 182 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 154 B | 0644 |
|
module.info.hu | File | 31 B | 0644 |
|
module.info.hu.auto | File | 120 B | 0644 |
|
module.info.it | File | 34 B | 0644 |
|
module.info.it.auto | File | 114 B | 0644 |
|
module.info.ja | File | 23 B | 0644 |
|
module.info.ja.auto | File | 135 B | 0644 |
|
module.info.ko | File | 0 B | 0644 |
|
module.info.ko.auto | File | 140 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 162 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 143 B | 0644 |
|
module.info.ms | File | 120 B | 0644 |
|
module.info.ms.auto | File | 16 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 152 B | 0644 |
|
module.info.nl | File | 29 B | 0644 |
|
module.info.nl.auto | File | 103 B | 0644 |
|
module.info.no | File | 30 B | 0644 |
|
module.info.no.auto | File | 119 B | 0644 |
|
module.info.pl | File | 120 B | 0644 |
|
module.info.pl.auto | File | 16 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 153 B | 0644 |
|
module.info.pt_BR | File | 37 B | 0644 |
|
module.info.pt_BR.auto | File | 125 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 154 B | 0644 |
|
module.info.ru | File | 35 B | 0644 |
|
module.info.ru.auto | File | 200 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 146 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 155 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 142 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 258 B | 0644 |
|
module.info.tr | File | 0 B | 0644 |
|
module.info.tr.auto | File | 150 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 258 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 192 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 163 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 114 B | 0644 |
|
module.info.zh_TW | File | 25 B | 0644 |
|
module.info.zh_TW.auto | File | 98 B | 0644 |
|
move.cgi | File | 606 B | 0755 |
|
newkey.cgi | File | 2.64 KB | 0755 |
|
restart.cgi | File | 110 B | 0755 |
|
save_acl.cgi | File | 355 B | 0755 |
|
save_assignment.cgi | File | 588 B | 0755 |
|
save_categories.cgi | File | 1.05 KB | 0755 |
|
save_configs.cgi | File | 751 B | 0755 |
|
save_dav.cgi | File | 1019 B | 0755 |
|
save_defacl.cgi | File | 626 B | 0755 |
|
save_descs.cgi | File | 585 B | 0755 |
|
save_ipkey.cgi | File | 1.49 KB | 0755 |
|
save_logout.cgi | File | 1022 B | 0755 |
|
save_restrict.cgi | File | 1.31 KB | 0755 |
|
save_uconfigs.cgi | File | 1.38 KB | 0755 |
|
savekey.cgi | File | 2.4 KB | 0755 |
|
start.cgi | File | 200 B | 0755 |
|
stop.cgi | File | 203 B | 0755 |
|
switch.cgi | File | 317 B | 0755 |
|
syslog_logs.pl | File | 651 B | 0755 |
|
uninstall.pl | File | 350 B | 0755 |
|
update.cgi | File | 3.55 KB | 0755 |
|
update.pl | File | 3.71 KB | 0755 |
|
update_sched.cgi | File | 1.98 KB | 0755 |
|
upgrade.cgi | File | 9.81 KB | 0755 |
|
usermin-lib.pl | File | 26.86 KB | 0755 |
|