X7ROOT File Manager
Current Path:
/usr/libexec/webmin/net
usr
/
libexec
/
webmin
/
net
/
📁
..
📄
CHANGELOG
(5.55 KB)
📄
acl_security.pl
(3.08 KB)
📄
apply.cgi
(184 B)
📄
backup_config.pl
(1005 B)
📄
cgi_args.pl
(752 B)
📄
cobalt-linux-lib.pl
(32.83 KB)
📄
coherent-linux-lib.pl
(32.83 KB)
📄
config
(48 B)
📄
config-ALL-linux
(48 B)
📄
config-cygwin
(82 B)
📄
config-freebsd
(48 B)
📄
config-macos
(48 B)
📄
config-netbsd
(48 B)
📄
config-openbsd
(48 B)
📄
config-solaris
(79 B)
📄
config-syno-linux
(48 B)
📄
config-unixware
(48 B)
📄
config-windows
(78 B)
📄
config.info
(193 B)
📄
config.info.ca
(241 B)
📄
config.info.cs
(205 B)
📄
config.info.de
(219 B)
📄
config.info.es
(175 B)
📄
config.info.fa
(255 B)
📄
config.info.fr
(246 B)
📄
config.info.hu
(0 B)
📄
config.info.ja
(68 B)
📄
config.info.nl
(197 B)
📄
config.info.no
(208 B)
📄
config.info.pl
(240 B)
📄
config.info.pt_BR
(229 B)
📄
config.info.ru
(361 B)
📄
config.info.sk
(225 B)
📄
config.info.sv
(42 B)
📄
config.info.tr
(65 B)
📄
config.info.uk
(87 B)
📄
config.info.zh
(43 B)
📄
config.info.zh_TW
(44 B)
📄
create_route.cgi
(1004 B)
📄
cygwin-lib.pl
(11.28 KB)
📄
debian-linux-lib.pl
(32.63 KB)
📄
defaultacl
(114 B)
📄
delete_aifcs.cgi
(537 B)
📄
delete_bifcs.cgi
(1.44 KB)
📄
delete_hosts.cgi
(523 B)
📄
delete_ipnodes.cgi
(542 B)
📄
delete_routes.cgi
(458 B)
📄
edit_aifc.cgi
(5.09 KB)
📄
edit_bifc.cgi
(10.42 KB)
📄
edit_host.cgi
(1.13 KB)
📄
edit_ipnode.cgi
(1.04 KB)
📄
edit_range.cgi
(1.34 KB)
📄
freebsd-lib.pl
(19.22 KB)
📄
gentoo-linux-lib.pl
(8.47 KB)
📁
images
📄
index.cgi
(1.25 KB)
📄
interface_chooser.cgi
(3.8 KB)
📁
lang
📄
linux-lib.pl
(27.58 KB)
📄
list_dns.cgi
(2.3 KB)
📄
list_hosts.cgi
(1.36 KB)
📄
list_ifcs.cgi
(7.96 KB)
📄
list_ipnodes.cgi
(1.07 KB)
📄
list_routes.cgi
(3.38 KB)
📄
log_parser.pl
(1.24 KB)
📄
macos-lib.pl
(11.57 KB)
📄
mandrake-linux-lib.pl
(32.83 KB)
📄
mod_aifc.cgi
(720 B)
📄
module.info
(485 B)
📄
module.info.af
(0 B)
📄
module.info.af.auto
(123 B)
📄
module.info.ar
(0 B)
📄
module.info.ar.auto
(170 B)
📄
module.info.be
(0 B)
📄
module.info.be.auto
(226 B)
📄
module.info.bg
(0 B)
📄
module.info.bg.auto
(261 B)
📄
module.info.ca
(127 B)
📄
module.info.ca.auto
(25 B)
📄
module.info.cs
(27 B)
📄
module.info.cs.auto
(111 B)
📄
module.info.da
(0 B)
📄
module.info.da.auto
(129 B)
📄
module.info.de
(121 B)
📄
module.info.de.auto
(19 B)
📄
module.info.el
(0 B)
📄
module.info.el.auto
(229 B)
📄
module.info.es
(30 B)
📄
module.info.es.auto
(116 B)
📄
module.info.eu
(0 B)
📄
module.info.eu.auto
(142 B)
📄
module.info.fa
(0 B)
📄
module.info.fa.auto
(194 B)
📄
module.info.fi
(0 B)
📄
module.info.fi.auto
(145 B)
📄
module.info.fr
(30 B)
📄
module.info.fr.auto
(128 B)
📄
module.info.he
(0 B)
📄
module.info.he.auto
(161 B)
📄
module.info.hr
(0 B)
📄
module.info.hr.auto
(148 B)
📄
module.info.hu
(34 B)
📄
module.info.hu.auto
(148 B)
📄
module.info.it
(28 B)
📄
module.info.it.auto
(112 B)
📄
module.info.ja
(33 B)
📄
module.info.ja.auto
(153 B)
📄
module.info.ko
(28 B)
📄
module.info.ko.auto
(105 B)
📄
module.info.lt
(0 B)
📄
module.info.lt.auto
(157 B)
📄
module.info.lv
(0 B)
📄
module.info.lv.auto
(157 B)
📄
module.info.ms
(136 B)
📄
module.info.ms.auto
(18 B)
📄
module.info.mt
(0 B)
📄
module.info.mt.auto
(144 B)
📄
module.info.nl
(29 B)
📄
module.info.nl.auto
(105 B)
📄
module.info.no
(31 B)
📄
module.info.no.auto
(99 B)
📄
module.info.pl
(122 B)
📄
module.info.pl.auto
(19 B)
📄
module.info.pt
(31 B)
📄
module.info.pt.auto
(125 B)
📄
module.info.pt_BR
(34 B)
📄
module.info.pt_BR.auto
(131 B)
📄
module.info.ro
(0 B)
📄
module.info.ro.auto
(143 B)
📄
module.info.ru
(36 B)
📄
module.info.ru.auto
(167 B)
📄
module.info.sk
(28 B)
📄
module.info.sk.auto
(113 B)
📄
module.info.sl
(0 B)
📄
module.info.sl.auto
(140 B)
📄
module.info.sv
(31 B)
📄
module.info.sv.auto
(103 B)
📄
module.info.th
(0 B)
📄
module.info.th.auto
(327 B)
📄
module.info.tr
(30 B)
📄
module.info.tr.auto
(130 B)
📄
module.info.uk
(0 B)
📄
module.info.uk.auto
(223 B)
📄
module.info.ur
(0 B)
📄
module.info.ur.auto
(210 B)
📄
module.info.vi
(0 B)
📄
module.info.vi.auto
(170 B)
📄
module.info.zh
(21 B)
📄
module.info.zh.auto
(90 B)
📄
module.info.zh_TW
(24 B)
📄
module.info.zh_TW.auto
(96 B)
📄
msc-linux-lib.pl
(32.83 KB)
📄
net-lib.pl
(12 KB)
📄
netbsd-lib.pl
(19.22 KB)
📄
netplan-lib.pl
(20.85 KB)
📄
open-linux-lib.pl
(7.2 KB)
📄
openbsd-lib.pl
(12.6 KB)
📄
openmamba-linux-lib.pl
(32.83 KB)
📄
pardus-linux-lib.pl
(32.83 KB)
📄
rbac-mapping
(180 B)
📄
rc.inet1
(1.95 KB)
📄
redhat-linux-lib.pl
(32.83 KB)
📄
save_aifc.cgi
(5.78 KB)
📄
save_bifc.cgi
(10.12 KB)
📄
save_dns.cgi
(3.65 KB)
📄
save_host.cgi
(1.18 KB)
📄
save_ipnode.cgi
(1.26 KB)
📄
save_range.cgi
(1.42 KB)
📄
save_routes.cgi
(283 B)
📄
slackware-linux-9.1-ALL-lib.pl
(7.85 KB)
📄
slackware-linux-lib.pl
(6.71 KB)
📄
solaris-lib.pl
(20.79 KB)
📄
suse-linux-8.0-lib.pl
(7.31 KB)
📄
suse-linux-8.2-lib.pl
(7.31 KB)
📄
suse-linux-9.0-lib.pl
(8.74 KB)
📄
suse-linux-9.1-lib.pl
(8.74 KB)
📄
suse-linux-9.2-ALL-lib.pl
(11.23 KB)
📄
suse-linux-lib.pl
(9.08 KB)
📄
system_info.pl
(2.42 KB)
📄
trustix-linux-lib.pl
(32.83 KB)
📄
turbo-linux-lib.pl
(32.83 KB)
📄
united-linux-lib.pl
(7.31 KB)
📄
unixware-lib.pl
(9.9 KB)
📄
windows-lib.pl
(11.28 KB)
Editing: suse-linux-lib.pl
# suse-linux-lib.pl # Networking functions for SuSE linux $rc_config = "/etc/rc.config"; $route_conf = "/etc/route.conf"; $use_suse_dns = 1; do 'linux-lib.pl'; # boot_interfaces() # Returns a list of interfaces brought up at boot time sub boot_interfaces { local $rc = &parse_rc_config(); local @rv; push(@rv, { 'fullname' => 'lo', 'name' => 'lo', 'up' => $rc->{'START_LOOPBACK'}->{'value'} =~ /yes/, 'address' => '127.0.0.1', 'netmask' => '255.0.0.0', 'broadcast' => '127.255.255.255', 'edit' => 0, 'file' => $rc_config, 'index' => scalar(@rv) }); local @nc = split(/\s+/, $rc->{'NETCONFIG'}->{'value'}); foreach $nc (@nc) { local $ip = $rc->{"IPADDR$nc"}->{'value'}; local $dev = $rc->{"NETDEV$nc"}->{'value'}; local $conf = $rc->{"IFCONFIG$nc"}->{'value'}; if ($dev) { local $b; $b->{'fullname'} = $dev; if ($b->{'fullname'} =~ /(\S+):(\d+)/) { $b->{'name'} = $1; $b->{'virtual'} = $2; } else { $b->{'name'} = $b->{'fullname'}; } if ($conf =~ /^([0-9\.]+)/) { $b->{'address'} = $1; if ($conf =~ /broadcast\s+(\S+)/) { $b->{'broadcast'} = $1; } if ($conf =~ /netmask\s+(\S+)/) { $b->{'netmask'} = $1; } if ($conf =~ /\s+up/ || $gconfig{'os_version'} >= 7.1) { $b->{'up'} = 1; } } elsif ($conf =~ /bootp/) { $b->{'bootp'} = 1; $b->{'netmask'} = 'Automatic'; $b->{'broadcast'} = 'Automatic'; $b->{'up'}++; } elsif ($conf =~ /dhcpclient/) { $b->{'dhcp'} = 1; $b->{'netmask'} = 'Automatic'; $b->{'broadcast'} = 'Automatic'; $b->{'up'}++; } $b->{'edit'} = 1; $b->{'index'} = scalar(@rv); $b->{'nc'} = $nc; $b->{'file'} => $rc_config, push(@rv, $b); } } return @rv; } # save_interface(&details) # Create or update a boot-time interface sub save_interface { # Find existing interface, if any &lock_file($rc_config); local $rc = &parse_rc_config(); local @boot = &boot_interfaces(); local ($o, $old, $found); foreach $o (@boot) { if ($o->{'name'} eq $_[0]->{'name'} && $o->{'virtual'} eq $_[0]->{'virtual'}) { $found++; $old = $o; last; } } # build interface detail strings local $fullname = $_[0]->{'name'}; $fullname .= ":".$_[0]->{'virtual'} if (defined($_[0]->{'virtual'})); local $ifconfig; if ($_[0]->{'bootp'}) { $ifconfig = 'bootp'; } elsif ($_[0]->{'dhcp'}) { $ifconfig = 'dhcpclient'; } else { $ifconfig = $_[0]->{'address'}; $ifconfig .= " broadcast $_[0]->{'broadcast'}" if ($_[0]->{'broadcast'}); $ifconfig .= " netmask $_[0]->{'netmask'}" if ($_[0]->{'netmask'}); $ifconfig .= " up" if ($_[0]->{'up'}); } if ($found) { # Updating an existing interface local $nnc = $old->{'nc'}; &save_rc_config($rc, "IPADDR$nnc", $_[0]->{'address'}); &save_rc_config($rc, "NETDEV$nnc", $fullname); &save_rc_config($rc, "IFCONFIG$nnc", $ifconfig); } else { # Adding a new interface local @nc = split(/\s+/, $rc->{'NETCONFIG'}->{'value'}); local $nnc = $nc[@nc-1] =~ /_(\d+)/ ? "_".($1+1) : "_0"; &save_rc_config($rc, "NETCONFIG", join(" ", @nc, $nnc)); &save_rc_config($rc, "IPADDR$nnc", $_[0]->{'address'}); &save_rc_config($rc, "NETDEV$nnc", $fullname); &save_rc_config($rc, "IFCONFIG$nnc", $ifconfig); } &unlock_file($rc_config); } # delete_interface(&details) # Delete a boot-time interface sub delete_interface { &lock_file($rc_config); local $rc = &parse_rc_config(); local @boot = &boot_interfaces(); local $old; foreach $old (@boot) { if ($old->{'name'} eq $_[0]->{'name'} && $old->{'virtual'} eq $_[0]->{'virtual'}) { # found it .. remove local $nnc = $old->{'nc'}; local @nc = split(/\s+/, $rc->{'NETCONFIG'}->{'value'}); @nc = grep { $_ ne $nnc } @nc; &save_rc_config($rc, "NETCONFIG", join(" ", @nc)); &save_rc_config($rc, "IPADDR$nnc", ""); &save_rc_config($rc, "NETDEV$nnc", ""); &save_rc_config($rc, "IFCONFIG$nnc", ""); } } &unlock_file($rc_config); } # can_edit(what, &details) # Can some boot-time interface parameter be edited? sub can_edit { if ($gconfig{'os_version'} >= 7.1) { if ($_[1] && ($_[1]->{'bootp'} || $_[1]->{'dhcp'})) { return $_[0] ne "mtu" && $_[0] ne "netmask" && $_[0] ne "broadcast" && $_[0] ne "up"; } return $_[0] ne "mtu" && $_[0] ne "up"; } else { if ($_[1] && $_[1]->{'bootp'}) { return $_[0] ne "mtu" && $_[0] ne "dhcp" && $_[0] ne "netmask" && $_[0] ne "broadcast" && $_[0] ne "up"; } return $_[0] ne "mtu" && $_[0] ne "dhcp"; } } sub can_broadcast_def { return 0; } # valid_boot_address(address) # Is some address valid for a bootup interface sub valid_boot_address { return &check_ipaddress($_[0]); } # get_hostname() sub get_hostname { local $rc = &parse_rc_config(); return $rc->{'FQHOSTNAME'}->{'value'}; } # save_hostname(name) sub save_hostname { &system_logged("hostname $_[0] >/dev/null 2>&1"); &lock_file($rc_config); local $rc = &parse_rc_config(); &save_rc_config($rc, "FQHOSTNAME", $_[0]); &unlock_file($rc_config); # run SuSEconfig, as this function is called last &system_logged("SuSEconfig -quick >/dev/null 2>&1"); undef(@main::get_system_hostname); # clear cache } sub routing_config_files { return ( $route_conf, $rc_config ); } sub routing_input { # read route.conf local ($default, @sr, @lr); &open_readfile(ROUTE, $route_conf); while(<ROUTE>) { s/\r|\n//g; s/#.*$//g; local @r = split(/\s+/, $_); if ($r[0] eq 'default' || $r[0] eq '0.0.0.0') { $default = $r[1]; } elsif (@r == 4) { push(@lr, \@r); } elsif (@r == 3) { push(@sr, \@r); } } close(ROUTE); # input for routing local $rc = &parse_rc_config(); local $ipf = $rc->{'IP_FORWARD'}->{'value'}; print &ui_table_row($text{'routes_forward'}, &ui_radio("forward", $ipf || "no", [ [ "yes", $text{'yes'} ], [ "no", $text{'no'} ] ])); # input for default route print &ui_table_row($text{'routes_default'}, &ui_opt_textbox("default", $default, 15, $text{'routes_none'})); # table for local routes my @table; for($i=0; $i<=@lr; $i++) { local $lr = $lr[$i]; push(@table, [ &ui_textbox("lr_dev_$i", $lr->[3], 6), &ui_textbox("lr_net_$i", $lr->[0], 15), &ui_textbox("lr_mask_$i", $lr->[2], 15) ]); } print &ui_table_row($text{'routes_local'}, &ui_columns_table([ $text{'routes_ifc'}, $text{'routes_net'}, $text{'routes_mask'} ], undef, \@table, undef, 1)); # table for static routes my @table; for($i=0; $i<=@sr; $i++) { local $sr = $sr[$i]; push(@table, [ &ui_textbox("sr_net_$i", $sr->[0], 15), &ui_textbox("sr_gw_$i", $sr->[1], 15), &ui_textbox("sr_mask_$i", $sr->[2], 15) ]); } print &ui_table_row($text{'routes_static'}, &ui_columns_table([ $text{'routes_net'}, $text{'routes_gateway'}, $text{'routes_mask'} ], undef, \@table, undef, 1)); } sub parse_routing { &lock_file($rc_config); local $rc = &parse_rc_config(); &save_rc_config($rc, IP_FORWARD, $in{'forward'}); &unlock_file($rc_config); &lock_file($route_conf); local $route = "# Generated by Webmin\n"; for($i=0; defined($dev = $in{"lr_dev_$i"}); $i++) { $net = $in{"lr_net_$i"}; $mask = $in{"lr_mask_$i"}; next if (!$dev && !$net && !$mask); &to_ipaddress($net) || &error(&text('routes_enet', &html_escape($net))); &check_ipaddress($mask) || &error(&text('routes_emask', &html_escape($mask))); $route .= "$net\t\t0.0.0.0\t\t$mask\t\t$dev\n"; } for($i=0; defined($gw = $in{"sr_gw_$i"}); $i++) { $net = $in{"sr_net_$i"}; $mask = $in{"sr_mask_$i"}; next if (!$gw && !$net && !$mask); &to_ipaddress($gw) || &error(&text('routes_egateway', &html_escape($gw))); &to_ipaddress($net) || &error(&text('routes_enet', &html_escape($net))); &check_ipaddress($mask) || &error(&text('routes_emask', &html_escape($mask))); $route .= "$net\t\t$gw\t\t$mask\n"; } if (!$in{'default_def'}) { &to_ipaddress($in{'default'}) || &error(&text('routes_edefault', &html_escape($in{'default'}))); $route .= "default\t\t$in{'default'}\n"; } &open_tempfile(ROUTE, ">$route_conf"); &print_tempfile(ROUTE, $route); &close_tempfile(ROUTE); &unlock_file($route_conf); } # parse_rc_config() sub parse_rc_config { local $rc; local $lnum = 0; &open_readfile(CONF, $rc_config); while(<CONF>) { s/\r|\n//g; s/#.*$//g; if (/([^=\s]+)="(.*)"/) { $rc->{$1} = { 'value' => $2, 'line' => $lnum }; } elsif (/([^=\s]+)=(\S+)/) { $rc->{$1} = { 'value' => $2, 'line' => $lnum }; } $lnum++; } close(CONF); return $rc; } # save_rc_config(&config, directive, value) sub save_rc_config { local $old = $_[0]->{$_[1]}; local $line = "$_[1]=\"$_[2]\"\n"; if ($old) { &replace_file_line($rc_config, $old->{'line'}, $line); } else { &open_tempfile(RC, ">>$rc_config"); &print_tempfile(RC, $line); &close_tempfile(RC); } } # supports_address6([&iface]) # Returns 1 if managing IPv6 interfaces is supported sub supports_address6 { local ($iface) = @_; return 0; } # os_save_dns_config(&config) # Update SuSE-specific DNS config files sub os_save_dns_config { local ($conf) = @_; local $gen = 0; if ($use_suse_dns) { # Update SuSE config file &lock_file($rc_config); local $rc = &parse_rc_config(); if ($rc->{'NAMESERVER'}) { &save_rc_config($rc, "NAMESERVER", join(" ", @{$conf->{'nameserver'}})); &save_rc_config($rc, "SEARCHLIST", join(" ", @{$conf->{'domain'}})); $gen = 1; } &unlock_file($rc_config); } return (0, $gen); } 1;
Upload File
Create Folder