📄 save_bifc.cgi
字号:
#!/usr/local/bin/perl# save_bifc.cgi# Create, save or delete a boot-time interfacerequire './net-lib.pl';&ReadParse();@boot = &boot_interfaces();if ($in{'delete'}) { # Delete interface &error_setup($text{'bifc_err1'}); $b = $boot[$in{'idx'}]; &delete_interface($b); }else { # Save or create interface &error_setup($text{'bifc_err2'}); if (!$in{'new'}) { $oldb = $boot[$in{'idx'}]; $b->{'name'} = $oldb->{'name'}; $b->{'virtual'} = $oldb->{'virtual'} if (defined($oldb->{'virtual'})); } elsif (defined($in{'virtual'})) { # creating a virtual interface $in{'virtual'} =~ /^\d+$/ || &error($text{'bifc_evirt'}); foreach $eb (@boot) { if ($eb->{'name'} eq $in{'name'} && $eb->{'virtual'} eq $in{'virtual'}) { &error(&text('bifc_evirtdup', "$in{'name'}:$in{'virtual'}")); } } $b->{'name'} = $in{'name'}; $b->{'virtual'} = $in{'virtual'}; } elsif ($in{'name'} =~ /^([a-z0-9]+):(\d+)$/) { # also creating a virtual interface foreach $eb (@boot) { if ($eb->{'name'} eq $1 && $eb->{'virtual'} eq $2) { &error(&text('bifc_evirtdup', $in{'name'})); } } $b->{'name'} = $1; $b->{'virtual'} = $2; } elsif ($in{'name'} =~/^[a-z]+\d+$/) { # creating a real interface foreach $eb (@acts) { if ($eb->{'name'} eq $in{'name'}) { &error(&text('bifc_edup', $in{'name'})); } } $b->{'name'} = $in{'name'}; } else { &error($text{'bifc_ename'}); } if ($in{'mode'} eq 'dhcp' || $in{'mode'} eq 'bootp') { $b->{$in{'mode'}}++; } else { &valid_boot_address($in{'address'}) || &error(&text('bifc_eip', $in{'address'})); $b->{'address'} = $in{'address'}; } if (!$in{'netmask_def'} && &can_edit("netmask", $b)) { &check_ipaddress($in{'netmask'}) || &error(&text('bifc_emask', $in{'netmask'})); $b->{'netmask'} = $in{'netmask'}; } if (!$in{'broadcast_def'} && &can_edit("broadcast", $b)) { &check_ipaddress($in{'broadcast'}) || &error(&text('bifc_ebroad', $in{'broadcast'})); $b->{'broadcast'} = $in{'broadcast'}; } if (!$in{'mtu_def'} && &can_edit("mtu", $b)) { $in{'mtu'} =~ /^\d+$/ || &error(&text('bifc_emtu', $in{'mtu'})); $b->{'mtu'} = $in{'mtu'}; } if ($in{'up'} && &can_edit("up", $b)) { $b->{'up'}++; } &save_interface($b); if ($in{'activate'}) { # Make this interface active (if possible) &error_setup($text{'bifc_err3'}); $b->{'up'}++; $b->{'address'} = &to_ipaddress($b->{'address'}); &activate_interface($b); } }&redirect("list_ifcs.cgi");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -