#!/usr/bin/perl # change_bind.cgi # Update the binding IP address and port for miniserv require './usermin-lib.pl'; $access{'bind'} || &error($text{'acl_ecannot'}); use Socket; &ReadParse(); &get_usermin_miniserv_config(\%miniserv); %oldminiserv = %miniserv; &error_setup($text{'bind_err'}); # Validate inputs for($i=0; defined($in{"ip_def_$i"}); $i++) { next if (!$in{"ip_def_$i"}); if ($in{"ip_def_$i"} == 1) { $ip = "*"; } else { $ip = $in{"ip_$i"}; &check_ipaddress($ip) || $in{'ipv6'} && &check_ip6address($ip) || &error(&text('bind_eip2', $ip)); } if ($in{"port_def_$i"} == 1) { $port = $in{"port_$i"}; $port =~ /^\d+$/ && $port < 65536 || &error(&text('bind_eport2', $port)); } else { $port = "*"; } push(@sockets, [ $ip, $port ]); push(@ports, $port) if ($port && $port ne "*"); } @sockets || &error($text{'bind_enone'}); $in{'hostname_def'} || $in{'hostname'} =~ /^[a-z0-9\.\-]+$/i || &error($text{'bind_ehostname'}); if ($in{'ipv6'}) { eval "use Socket6"; $@ && &error(&text('bind_eipv6', "<tt>Socket6</tt>")); } # For any new ports, check if they are already in use @oldports = split(/\s+/, $in{'oldports'}); @newports = &unique(grep { &indexof($_, @oldports) < 0 } @ports); if (&has_command("lsof")) { foreach my $p (@newports) { $out = &backquote_command("lsof -t -i tcp:$p 2>/dev/null"); if ($out =~ /\d+/) { &error(&text('bind_elsof', $p)); } } } # Update config file &lock_file($usermin_miniserv_config); $first = shift(@sockets); $miniserv{'port'} = $first->[1]; if ($first->[0] eq "*") { delete($miniserv{'bind'}); } else { $miniserv{'bind'} = $first->[0]; } $miniserv{'sockets'} = join(" ", map { "$_->[0]:$_->[1]" } @sockets); $miniserv{'ipv6'} = $in{'ipv6'}; if ($in{'listen_def'}) { delete($miniserv{'listen'}); } else { $miniserv{'listen'} = $in{'listen'}; } if ($in{'hostname_def'}) { delete($miniserv{'host'}); } else { $miniserv{'host'} = $in{'hostname'}; } &put_usermin_miniserv_config(\%miniserv); &unlock_file($usermin_miniserv_config); # Attempt to re-start miniserv $rv = &system_logged("$config{'usermin_dir'}/restart >/dev/null 2>&1 </dev/null"); if ($rv) { # Failed! Roll back config and start again &lock_file($usermin_miniserv_config); &put_usermin_miniserv_config(\%oldminiserv); &unlock_file($usermin_miniserv_config); &system_logged("$config{'usermin_dir'}/restart >/dev/null 2>&1 </dev/null"); &error(&text('bind_erestart', $out)); } # If possible, open the new ports foreach my $mod ("firewall", "firewalld") { if (&foreign_check($mod) && $in{'firewall'}) { if (@newports) { &clean_environment(); $ENV{'WEBMIN_CONFIG'} = $config_directory; &system_logged( &module_root_directory($mod)."/open-ports.pl ". join(" ", map { $_.":".($_+10) } @newports). " >/dev/null 2>&1"); &reset_environment(); } } } &webmin_log("bind", undef, undef, \%in); &redirect("");
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 |
|