[ Avaa Bypassed ]




Upload:

Command:

www-data@18.117.246.69: ~ $
#!/usr/bin/perl
# save_aifc.cgi
# Save, create or delete an active interface

require './net-lib.pl';
&ReadParse();
@acts = &active_interfaces(1);

if ($in{'delete'}) {
	# delete an interface
	&error_setup($text{'aifc_err1'});
	$a = $acts[$in{'idx'}];
	&can_iface($a) || &error($text{'ifcs_ecannot_this'});
	&deactivate_interface($a);
	&webmin_log("delete", "aifc", $a->{'fullname'}, $a);
	}
else {
	# Validate and save inputs
	&error_setup($text{'aifc_err2'});
	if (!$in{'new'}) {
		# Editing existing interface
		$olda = $acts[$in{'idx'}];
		&can_iface($olda) || &error($text{'ifcs_ecannot_this'});
		$a->{'name'} = $olda->{'name'};
		$a->{'fullname'} = $olda->{'fullname'};
		$a->{'virtual'} = $olda->{'virtual'}
			if (defined($olda->{'virtual'}));
		}
	elsif (defined($in{'virtual'})) {
		# creating a virtual interface
		$in{'virtual'} =~ /^\d+$/ ||
			&error($text{'aifc_evirt'});
		$in{'virtual'} >= $min_virtual_number ||
			&error(&text('aifc_evirtmin', &html_escape($min_virtual_number)));
		foreach $ea (@acts) {
			if ($ea->{'name'} eq $in{'name'} &&
			    $ea->{'virtual'} eq $in{'virtual'}) {
				&error(&text('aifc_evirtdup',
				       &html_escape("$in{'name'}:$in{'virtual'}")));
				}
			}
		$a->{'name'} = $in{'name'};
		$a->{'virtual'} = $in{'virtual'};
		$a->{'fullname'} = $a->{'name'}.":".$a->{'virtual'};
		&can_create_iface() || &error($text{'ifcs_ecannot'});
		&can_iface($a) || &error($text{'ifcs_ecannot'});
		}
	elsif ($in{'name'} =~ /^([a-z]+\d*(s\d*)?(\.\d+)?):(\d+)$/) {
		# also creating a virtual interface
		foreach $ea (@acts) {
			if ($ea->{'name'} eq $1 &&
			    $ea->{'virtual'} eq $3) {
				&error(&text('aifc_evirtdup', &html_escape($in{'name'})));
				}
			}
		$3 >= $min_virtual_number ||
			&error(&text('aifc_evirtmin', &html_escape($min_virtual_number)));
		$a->{'name'} = $1;
		$a->{'virtual'} = $3;
		$a->{'fullname'} = $a->{'name'}.":".$a->{'virtual'};
		&can_create_iface() || &error($text{'ifcs_ecannot'});
		&can_iface($a) || &error($text{'ifcs_ecannot'});
		}
	elsif ($in{'name'} =~ /^[a-z]+\d*(s\d+)?(\.\d+)?$/) {
		# creating a real interface
		foreach $ea (@acts) {
			if ($ea->{'name'} eq $in{'name'}) {
				&error(&text('aifc_edup', &html_escape($in{'name'})));
				}
			}
		$a->{'name'} = $in{'name'};
		$a->{'fullname'} = $in{'name'};
		&can_create_iface() || &error($text{'ifcs_ecannot'});
		&can_iface($a) || &error($text{'ifcs_ecannot'});
		}
	else {
		&error($text{'aifc_ename'});
		}

	# Validate and store inputs
	&check_ipaddress_any($in{'address'}) ||
		&error(&text('aifc_eip', &html_escape($in{'address'})));
	$a->{'address'} = $in{'address'};

	# Check for address clash
	$allow_clash = defined(&allow_interface_clash) ?
			&allow_interface_clash($a, 0) : 1;
	if (!$allow_clash &&
	    ($in{'new'} || $olda->{'address'} ne $a->{'address'})) {
		($clash) = grep { $_->{'address'} eq $a->{'address'} } @acts;
		$clash && &error(&text('aifc_eclash', &html_escape($clash->{'fullname'})));
		}

	if ($virtual_netmask && $a->{'virtual'} ne "") {
		# Always use this netmask for virtuals
		$a->{'netmask'} = $virtual_netmask;
		}
	elsif (!$access{'netmask'}) {
		# Use default netmask
		$a->{'netmask'} = $in{'new'} ?
			$config{'def_netmask'} || "255.255.255.0" :
			$olda->{'netmask'};
		}
	elsif (!$in{'netmask_def'}) {
		&check_netmask($in{'netmask'},$a->{'address'}) ||
			&error(&text('aifc_emask', &html_escape($in{'netmask'})));
		$a->{'netmask'} = $in{'netmask'};
		}

	if (!$access{'broadcast'}) {
		# Compute broadcast
		$a->{'broadcast'} = $in{'new'} ?
			&compute_broadcast($a->{'address'}, $a->{'netmask'}) :
			$olda->{'broadcast'};
		}
	elsif (!$in{'broadcast_def'}) {
		&check_ipaddress_any($in{'broadcast'}) ||
			&error(&text('aifc_ebroad', &html_escape($in{'broadcast'})));
		$a->{'broadcast'} = $in{'broadcast'};
		}

	if (!$access{'mtu'}) {
		# Use default MTU
		$a->{'mtu'} = $in{'new'} ? $config{'def_mtu'}
					 : $olda->{'mtu'};
		}
	elsif (!$in{'mtu_def'}) {
		$in{'mtu'} =~ /^\d+$/ ||
			&error(&text('aifc_emtu', &html_escape($in{'mtu'})));
		$a->{'mtu'} = $in{'mtu'} if ($olda->{'mtu'} ne $in{'mtu'});
		}

	# Save active flag
	if (!$access{'up'}) {
		$a->{'up'} = $in{'new'} ? 1 : $olda->{'up'};
		}
	elsif ($in{'up'}) {
		$a->{'up'}++;
		}

	# Save IPv6 addresses
	if (&supports_address6($a) && $in{'mode6'} eq 'address') {
		# Has IPv6 addresses
		@address6 = ( );
		@netmask6 = ( );
		%clash6 = ( );
		foreach $eb (@acts) {
			if ($eb->{'fullname'} ne $a->{'fullname'}) {
				foreach $a6 (@{$eb->{'address6'}}) {
					$clash6{$a6} = $eb;
					}
				}
			}
		for($i=0; defined($in{'address6_'.$i}); $i++) {
			next if ($in{'address6_'.$i} !~ /\S/);
			&check_ip6address($in{'address6_'.$i}) ||
				&error(&text('aifc_eaddress6', $i+1));
			$c = $clash6{$in{'address6_'.$i}};
			$c && &error(&text('aifc_eclash6', $i+1, &html_escape($c->{'name'})));
			push(@address6, $in{'address6_'.$i});
			$in{'netmask6_'.$i} =~ /^\d+$/ &&
			    $in{'netmask6_'.$i} > 0 &&
			    $in{'netmask6_'.$i} <= 128 ||
				&error(&text('aifc_enetmask6', $i+1));
			push(@netmask6, $in{'netmask6_'.$i});
			$clash6{$in{'address6_'.$i}} = $a;
			}
		@address6 || &error($text{'aifc_eaddresses6'});
		$a->{'address6'} = \@address6;
		$a->{'netmask6'} = \@netmask6;
		}
	elsif (&supports_address6($a) && $in{'mode6'} eq 'none') {
		# IPv6 addresses disabled
		delete($a->{'address6'});
		delete($a->{'netmask6'});
		}

	if (!$in{'ether_def'} && $a->{'virtual'} eq "" &&
	    &iface_hardware($a->{'name'})) {
		$in{'ether'} =~ /^[A-Fa-f0-9:]+$/ ||
			&error(&text('aifc_ehard', &html_escape($in{'ether'})));
		$a->{'ether'} = $in{'ether'}
			if ($olda->{'ether'} ne $in{'ether'});
		}
	$a->{'fullname'} = $a->{'name'}.
			   ($a->{'virtual'} eq '' ? '' : ':'.$a->{'virtual'});

	# Bring it up
	&activate_interface($a);
	&webmin_log($in{'new'} ? 'create' : 'modify',
		    "aifc", $a->{'fullname'}, $a);
	}
&redirect("list_ifcs.cgi?mode=active");


Filemanager

Name Type Size Permission Actions
images Folder 0755
lang Folder 0755
CHANGELOG File 5.55 KB 0644
acl_security.pl File 3.08 KB 0755
apply.cgi File 184 B 0755
backup_config.pl File 1005 B 0755
cgi_args.pl File 752 B 0755
cobalt-linux-lib.pl File 32.85 KB 0755
coherent-linux-lib.pl File 32.85 KB 0755
config File 48 B 0644
config-ALL-linux File 48 B 0644
config-cygwin File 82 B 0644
config-freebsd File 48 B 0644
config-macos File 48 B 0644
config-netbsd File 48 B 0644
config-openbsd File 48 B 0644
config-solaris File 79 B 0644
config-syno-linux File 48 B 0644
config-unixware File 48 B 0644
config-windows File 78 B 0644
config.info File 193 B 0644
config.info.ca File 241 B 0644
config.info.cs File 205 B 0644
config.info.de File 219 B 0644
config.info.es File 175 B 0644
config.info.fa File 255 B 0644
config.info.fr File 246 B 0644
config.info.hu File 0 B 0644
config.info.ja File 68 B 0644
config.info.nl File 197 B 0644
config.info.no File 208 B 0644
config.info.pl File 240 B 0644
config.info.pt_BR File 229 B 0644
config.info.ru File 361 B 0644
config.info.sk File 225 B 0644
config.info.sv File 42 B 0644
config.info.tr File 65 B 0644
config.info.uk File 87 B 0644
config.info.zh File 43 B 0644
config.info.zh_TW File 44 B 0644
create_route.cgi File 1004 B 0755
cygwin-lib.pl File 11.28 KB 0755
debian-linux-lib.pl File 33.58 KB 0755
defaultacl File 114 B 0644
delete_aifcs.cgi File 537 B 0755
delete_bifcs.cgi File 1.44 KB 0755
delete_hosts.cgi File 523 B 0755
delete_ipnodes.cgi File 542 B 0755
delete_routes.cgi File 458 B 0755
edit_aifc.cgi File 5.09 KB 0755
edit_bifc.cgi File 10.42 KB 0755
edit_host.cgi File 1.13 KB 0755
edit_ipnode.cgi File 1.04 KB 0755
edit_range.cgi File 1.34 KB 0755
freebsd-lib.pl File 19.22 KB 0755
gentoo-linux-lib.pl File 8.47 KB 0755
index.cgi File 1.25 KB 0755
interface_chooser.cgi File 3.8 KB 0755
linux-lib.pl File 27.58 KB 0755
list_dns.cgi File 2.3 KB 0755
list_hosts.cgi File 1.36 KB 0755
list_ifcs.cgi File 7.96 KB 0755
list_ipnodes.cgi File 1.07 KB 0755
list_routes.cgi File 3.38 KB 0755
log_parser.pl File 1.24 KB 0755
macos-lib.pl File 11.57 KB 0755
mandrake-linux-lib.pl File 32.85 KB 0755
mod_aifc.cgi File 720 B 0755
module.info File 485 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 123 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 170 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 226 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 261 B 0644
module.info.ca File 127 B 0644
module.info.ca.auto File 25 B 0644
module.info.cs File 27 B 0644
module.info.cs.auto File 111 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 129 B 0644
module.info.de File 121 B 0644
module.info.de.auto File 19 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 229 B 0644
module.info.es File 30 B 0644
module.info.es.auto File 116 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 142 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 194 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 145 B 0644
module.info.fr File 30 B 0644
module.info.fr.auto File 128 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 161 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 148 B 0644
module.info.hu File 34 B 0644
module.info.hu.auto File 148 B 0644
module.info.it File 28 B 0644
module.info.it.auto File 112 B 0644
module.info.ja File 33 B 0644
module.info.ja.auto File 153 B 0644
module.info.ko File 28 B 0644
module.info.ko.auto File 105 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 157 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 157 B 0644
module.info.ms File 136 B 0644
module.info.ms.auto File 18 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 144 B 0644
module.info.nl File 29 B 0644
module.info.nl.auto File 105 B 0644
module.info.no File 31 B 0644
module.info.no.auto File 99 B 0644
module.info.pl File 122 B 0644
module.info.pl.auto File 19 B 0644
module.info.pt File 31 B 0644
module.info.pt.auto File 125 B 0644
module.info.pt_BR File 34 B 0644
module.info.pt_BR.auto File 131 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 143 B 0644
module.info.ru File 36 B 0644
module.info.ru.auto File 167 B 0644
module.info.sk File 28 B 0644
module.info.sk.auto File 113 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 140 B 0644
module.info.sv File 31 B 0644
module.info.sv.auto File 103 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 327 B 0644
module.info.tr File 30 B 0644
module.info.tr.auto File 130 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 223 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 210 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 170 B 0644
module.info.zh File 21 B 0644
module.info.zh.auto File 90 B 0644
module.info.zh_TW File 24 B 0644
module.info.zh_TW.auto File 96 B 0644
msc-linux-lib.pl File 32.85 KB 0755
net-lib.pl File 12 KB 0755
netbsd-lib.pl File 19.22 KB 0755
netplan-lib.pl File 21.01 KB 0644
open-linux-lib.pl File 7.2 KB 0755
openbsd-lib.pl File 12.6 KB 0755
openmamba-linux-lib.pl File 32.85 KB 0755
pardus-linux-lib.pl File 32.85 KB 0755
rbac-mapping File 180 B 0644
rc.inet1 File 1.95 KB 0644
redhat-linux-lib.pl File 32.85 KB 0755
save_aifc.cgi File 5.78 KB 0755
save_bifc.cgi File 10.12 KB 0755
save_dns.cgi File 3.65 KB 0755
save_host.cgi File 1.18 KB 0755
save_ipnode.cgi File 1.26 KB 0755
save_range.cgi File 1.42 KB 0755
save_routes.cgi File 283 B 0755
slackware-linux-9.1-ALL-lib.pl File 7.85 KB 0755
slackware-linux-lib.pl File 6.71 KB 0755
solaris-lib.pl File 20.79 KB 0755
suse-linux-8.0-lib.pl File 7.31 KB 0755
suse-linux-8.2-lib.pl File 7.31 KB 0755
suse-linux-9.0-lib.pl File 8.74 KB 0755
suse-linux-9.1-lib.pl File 8.74 KB 0755
suse-linux-9.2-ALL-lib.pl File 11.23 KB 0755
suse-linux-lib.pl File 9.08 KB 0755
system_info.pl File 2.42 KB 0644
trustix-linux-lib.pl File 32.85 KB 0755
turbo-linux-lib.pl File 32.85 KB 0755
united-linux-lib.pl File 7.31 KB 0755
unixware-lib.pl File 9.9 KB 0755
windows-lib.pl File 11.28 KB 0755