summaryrefslogtreecommitdiff
path: root/scripts/vyatta-interfaces.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/vyatta-interfaces.pl')
-rwxr-xr-xscripts/vyatta-interfaces.pl14
1 files changed, 13 insertions, 1 deletions
diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl
index 4820ae3..d647e96 100755
--- a/scripts/vyatta-interfaces.pl
+++ b/scripts/vyatta-interfaces.pl
@@ -46,10 +46,11 @@ use warnings;
my $dhcp_daemon = '/sbin/dhclient';
my ($eth_update, $eth_delete, $addr, $dev, $mac, $mac_update, $op_dhclient);
-my ($check_name, $show_names, $intf_cli_path, $vif_name);
+my ($check_name, $show_names, $intf_cli_path, $vif_name, $warn_name);
sub usage() {
print "Usage: $0 --dev=<interface> --check=<type>\n";
+ print " $0 --dev=<interface> --warn\n";
print " $0 --dev=<interface> --valid-mac=<aa:aa:aa:aa:aa:aa>\n";
print " $0 --dev=<interface> --eth-addr-update=<aa:aa:aa:aa:aa:aa>\n";
print " $0 --dev=<interface> --eth-addr-delete=<aa:aa:aa:aa:aa:aa>\n";
@@ -68,6 +69,7 @@ GetOptions("eth-addr-update=s" => \$eth_update,
"check=s" => \$check_name,
"show=s" => \$show_names,
"vif=s" => \$vif_name,
+ "warn", => \$warn_name,
) or usage();
if ($eth_update) { update_eth_addrs($eth_update, $dev); }
@@ -77,6 +79,7 @@ if ($mac) { is_valid_mac($mac, $dev); }
if ($mac_update) { update_mac($mac_update, $dev); }
if ($op_dhclient) { op_dhcp_command($op_dhclient, $dev); }
if ($check_name) { is_valid_name($check_name, $dev); }
+if ($warn_name) { exists_name($dev); }
if ($show_names) { show_interfaces($show_names); }
sub is_ip_configured {
@@ -450,6 +453,15 @@ sub is_valid_name {
exit 0;
}
+sub exists_name {
+ my $name = shift;
+ die "Missing --dev argument\n" unless $name;
+
+ warn "interface $name does not exist on system\n"
+ unless grep { $name eq $_ } getInterfaces();
+ exit 0;
+}
+
# generate one line with all known interfaces (for allowed)
sub show_interfaces {
my $type = shift;