From 6194a4338de8e612b925530265db0759a94814c4 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 28 Feb 2008 14:51:18 -0800 Subject: Read qos-policy before setting interface qos-policy Bugfix: 2914 Fix ordering of operations for qos-policy. --- scripts/VyattaConfigLoad.pm | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'scripts') diff --git a/scripts/VyattaConfigLoad.pm b/scripts/VyattaConfigLoad.pm index c09616d..a88d14d 100755 --- a/scripts/VyattaConfigLoad.pm +++ b/scripts/VyattaConfigLoad.pm @@ -9,16 +9,17 @@ use VyattaConfig; # configuration ordering. higher rank configured before lower rank. my $default_rank = 0; -my %config_rank = ( - 'interfaces' => 100, - 'interfaces bridge' => 99, - 'interfaces ethernet' => 98, - 'interfaces tunnel' => 91, - 'system' => 90, - 'protocols static' => 85, - 'service ssh' => 84, - 'service telnet' => 83, - ); +my %config_rank = ( + 'qos-policy' => 110, + 'interfaces' => 100, + 'interfaces bridge' => 99, + 'interfaces ethernet' => 98, + 'interfaces tunnel' => 91, + 'system' => 90, + 'protocols static' => 85, + 'service ssh' => 84, + 'service telnet' => 83, +); my @all_nodes = (); my @all_naked_nodes = (); -- cgit v1.2.3 From 1c2ea1480d6b5c1d7968fd04093dcfc254510ad1 Mon Sep 17 00:00:00 2001 From: Christopher Liljenstolpe Date: Tue, 4 Mar 2008 18:46:27 -0800 Subject: Fix 2954: IPv6 addresses that have a-f in the address fail. --- scripts/vyatta-interfaces.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index fc10c4d..482faa8 100644 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -358,7 +358,7 @@ sub is_valid_addr { } my ($addr, $net); - if ($addr_net =~ m/^([0-9\.\:]+)\/(\d+)$/) { + if ($addr_net =~ m/^([0-9a-fA-F\.\:]+)\/(\d+)$/) { $addr = $1; $net = $2; } else { -- cgit v1.2.3 From ef55a6cb59439360f40a68848618be9ab1519748 Mon Sep 17 00:00:00 2001 From: rbalocca Date: Wed, 5 Mar 2008 12:45:18 -0800 Subject: Add VPL to scripts and fix lintian errors --- Makefile.am | 16 ++++++++-------- etc/bash_completion.d/20vyatta-cfg | 2 ++ scripts/VyattaConfig.pm | 27 +++++++++++++++++++++++++-- scripts/VyattaConfigDOMTree.pm | 4 +++- scripts/VyattaConfigLoad.pm | 26 +++++++++++++++++++++++++- scripts/VyattaConfigOutput.pm | 25 ++++++++++++++++++++++++- scripts/VyattaIpTablesAddressFilter.pm | 25 +++++++++++++++++++++++++ scripts/VyattaMisc.pm | 5 +++-- scripts/VyattaTypeChecker.pm | 25 +++++++++++++++++++++++++ scripts/vyatta-cfg-cmd-wrapper | 23 +++++++++++++++++++++++ scripts/vyatta-cfg-notify | 24 +++++++++++++++++++++++- scripts/vyatta-cli-expand-var.pl | 23 +++++++++++++++++++++++ scripts/vyatta-config-loader.pl | 24 ++++++++++++++++++++++++ scripts/vyatta-dhclient-hook | 24 ++++++++++++++++++++++++ scripts/vyatta-find-type.pl | 24 +++++++++++++++++++++++- scripts/vyatta-interfaces.pl | 0 scripts/vyatta-irqaffin | 9 +++------ scripts/vyatta-load-config.pl | 26 ++++++++++++++++++++++++-- scripts/vyatta-output-config.pl | 24 +++++++++++++++++++++++- scripts/vyatta-save-config.pl | 24 +++++++++++++++++++++++- scripts/vyatta-validate-type.pl | 24 +++++++++++++++++++++++- 21 files changed, 376 insertions(+), 28 deletions(-) mode change 100644 => 100755 etc/bash_completion.d/20vyatta-cfg mode change 100644 => 100755 scripts/VyattaConfig.pm mode change 100644 => 100755 scripts/VyattaConfigDOMTree.pm mode change 100644 => 100755 scripts/VyattaIpTablesAddressFilter.pm mode change 100644 => 100755 scripts/VyattaTypeChecker.pm mode change 100644 => 100755 scripts/vyatta-dhclient-hook mode change 100644 => 100755 scripts/vyatta-interfaces.pl mode change 100644 => 100755 scripts/vyatta-irqaffin (limited to 'scripts') diff --git a/Makefile.am b/Makefile.am index 5d41b2d..2879932 100644 --- a/Makefile.am +++ b/Makefile.am @@ -10,7 +10,7 @@ AM_CFLAGS = -I src -Wall AM_YFLAGS = -d --name-prefix=yy_`basename $* .y`_ AM_LFLAGS = --prefix=yy_`basename $* .l`_ -olex.yy.c -completion_DATA = etc/bash_completion.d/20vyatta-cfg +completion_SCRIPTS = etc/bash_completion.d/20vyatta-cfg initd_SCRIPTS = etc/init.d/vyatta-ofr dhcphook_SCRIPTS = scripts/vyatta-dhclient-hook @@ -43,13 +43,13 @@ sbin_SCRIPTS += scripts/vyatta-cfg-notify sbin_SCRIPTS += scripts/vyatta-interfaces.pl sbin_SCRIPTS += scripts/vyatta-irqaffin -share_perl5_DATA = scripts/VyattaConfig.pm -share_perl5_DATA += scripts/VyattaConfigDOMTree.pm -share_perl5_DATA += scripts/VyattaConfigOutput.pm -share_perl5_DATA += scripts/VyattaConfigLoad.pm -share_perl5_DATA += scripts/VyattaMisc.pm -share_perl5_DATA += scripts/VyattaTypeChecker.pm -share_perl5_DATA += scripts/VyattaIpTablesAddressFilter.pm +share_perl5_SCRIPTS = scripts/VyattaConfig.pm +share_perl5_SCRIPTS += scripts/VyattaConfigDOMTree.pm +share_perl5_SCRIPTS += scripts/VyattaConfigOutput.pm +share_perl5_SCRIPTS += scripts/VyattaConfigLoad.pm +share_perl5_SCRIPTS += scripts/VyattaMisc.pm +share_perl5_SCRIPTS += scripts/VyattaTypeChecker.pm +share_perl5_SCRIPTS += scripts/VyattaIpTablesAddressFilter.pm default_DATA = etc/default/vyatta-cfg diff --git a/etc/bash_completion.d/20vyatta-cfg b/etc/bash_completion.d/20vyatta-cfg old mode 100644 new mode 100755 index 5966e18..e2a9261 --- a/etc/bash_completion.d/20vyatta-cfg +++ b/etc/bash_completion.d/20vyatta-cfg @@ -1,3 +1,5 @@ +#!/bin/sh + # **** License **** # Version: VPL 1.0 # diff --git a/scripts/VyattaConfig.pm b/scripts/VyattaConfig.pm old mode 100644 new mode 100755 index 9020af0..985ee5a --- a/scripts/VyattaConfig.pm +++ b/scripts/VyattaConfig.pm @@ -1,3 +1,28 @@ +#!/usr/bin/perl + +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: vyatta configuration parser +# +# **** End License **** + package VyattaConfig; use strict; @@ -540,5 +565,3 @@ sub compareValueLists { } return %comp_hash; } - - diff --git a/scripts/VyattaConfigDOMTree.pm b/scripts/VyattaConfigDOMTree.pm old mode 100644 new mode 100755 index 86aabf8..a7e378f --- a/scripts/VyattaConfigDOMTree.pm +++ b/scripts/VyattaConfigDOMTree.pm @@ -1,5 +1,7 @@ +#!/usr/bin/perl + # -# Module: serial +# Module: vyatta-cfg # # **** License **** # Version: VPL 1.0 diff --git a/scripts/VyattaConfigLoad.pm b/scripts/VyattaConfigLoad.pm index a88d14d..6b857dd 100755 --- a/scripts/VyattaConfigLoad.pm +++ b/scripts/VyattaConfigLoad.pm @@ -1,4 +1,28 @@ -# Perl module for loading configuration. +#!/usr/bin/perl + +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: Perl module for loading configuration. +# +# **** End License **** + package VyattaConfigLoad; use strict; diff --git a/scripts/VyattaConfigOutput.pm b/scripts/VyattaConfigOutput.pm index 2a152ee..4c16a0b 100755 --- a/scripts/VyattaConfigOutput.pm +++ b/scripts/VyattaConfigOutput.pm @@ -1,5 +1,28 @@ -# Perl module for generating output of the configuration. +#!/usr/bin/perl + +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. # +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: Perl module for generating output of the configuration. +# +# **** End License **** + # outputNewConfig() # prints the "new" config, i.e., the active config with any un-committed # changes. 'diff' notation is also generated to indicate the changes. diff --git a/scripts/VyattaIpTablesAddressFilter.pm b/scripts/VyattaIpTablesAddressFilter.pm old mode 100644 new mode 100755 index aa6f662..a72bd9d --- a/scripts/VyattaIpTablesAddressFilter.pm +++ b/scripts/VyattaIpTablesAddressFilter.pm @@ -1,3 +1,28 @@ +#!/usr/bin/perl + +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: IP tables address filter +# +# **** End License **** + package VyattaIpTablesAddressFilter; use VyattaConfig; diff --git a/scripts/VyattaMisc.pm b/scripts/VyattaMisc.pm index 3a083ec..b476cd4 100755 --- a/scripts/VyattaMisc.pm +++ b/scripts/VyattaMisc.pm @@ -1,4 +1,5 @@ -# +#!/usr/bin/perl + # Module: VyattaMisc.pm # # **** License **** @@ -20,7 +21,7 @@ # # Author: Marat # Date: 2007 -# Description: +# Description: Implements miscellaneous commands # # **** End License **** # diff --git a/scripts/VyattaTypeChecker.pm b/scripts/VyattaTypeChecker.pm old mode 100644 new mode 100755 index 902c278..98be419 --- a/scripts/VyattaTypeChecker.pm +++ b/scripts/VyattaTypeChecker.pm @@ -1,3 +1,28 @@ +#!/usr/bin/perl + +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: Type checking script +# +# **** End License **** + # Perl module for type validation. # Usage 1: validate a value of a specific type. # use VyattaTypeChecker; diff --git a/scripts/vyatta-cfg-cmd-wrapper b/scripts/vyatta-cfg-cmd-wrapper index 4a42105..b419f55 100755 --- a/scripts/vyatta-cfg-cmd-wrapper +++ b/scripts/vyatta-cfg-cmd-wrapper @@ -1,5 +1,28 @@ #!/bin/bash +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: command wrapper +# +# **** End License **** + if grep -q union=aufs /proc/cmdline || grep -q aufs /proc/filesystems ; then export UNIONFS=aufs else diff --git a/scripts/vyatta-cfg-notify b/scripts/vyatta-cfg-notify index e0c56df..098e593 100755 --- a/scripts/vyatta-cfg-notify +++ b/scripts/vyatta-cfg-notify @@ -1,5 +1,28 @@ #!/bin/bash +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: config notify script +# +# **** End License **** + [ -r /etc/default/vyatta ] && source /etc/default/vyatta declare cur_tty=$(ps -o tty= |head -n1) @@ -19,4 +42,3 @@ Please make sure you do not have conflicting changes. You can also discard the current changes by issuing 'exit discard'. EOF done - diff --git a/scripts/vyatta-cli-expand-var.pl b/scripts/vyatta-cli-expand-var.pl index fcc2b43..2d65029 100755 --- a/scripts/vyatta-cli-expand-var.pl +++ b/scripts/vyatta-cli-expand-var.pl @@ -1,5 +1,28 @@ #!/usr/bin/perl +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: bash expand script +# +# **** End License **** + use strict; use lib "/opt/vyatta/share/perl5/"; use VyattaConfig; diff --git a/scripts/vyatta-config-loader.pl b/scripts/vyatta-config-loader.pl index 370a669..93eb4d0 100755 --- a/scripts/vyatta-config-loader.pl +++ b/scripts/vyatta-config-loader.pl @@ -1,4 +1,28 @@ #!/usr/bin/perl + +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: configuration loader +# +# **** End License **** + # Perl script for loading the startup config file. # $0: startup config file. diff --git a/scripts/vyatta-dhclient-hook b/scripts/vyatta-dhclient-hook old mode 100644 new mode 100755 index cc3cb08..c346498 --- a/scripts/vyatta-dhclient-hook +++ b/scripts/vyatta-dhclient-hook @@ -1,3 +1,27 @@ +#!/bin/sh + +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: Stig Thormodsrud +# Date: 2007 +# Description: dhcp client hook +# +# **** End License **** # To enable this script set the following variable to "yes" RUN="yes" diff --git a/scripts/vyatta-find-type.pl b/scripts/vyatta-find-type.pl index b6514f0..37b5d2e 100755 --- a/scripts/vyatta-find-type.pl +++ b/scripts/vyatta-find-type.pl @@ -1,5 +1,28 @@ #!/usr/bin/perl +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: bash completion for Vyatta configuration commands +# +# **** End License **** + use strict; use lib "/opt/vyatta/share/perl5/"; use VyattaTypeChecker; @@ -18,4 +41,3 @@ if (my $type = VyattaTypeChecker::findType(@ARGV)) { # value not valid for any of the candidates exit 1; - diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl old mode 100644 new mode 100755 diff --git a/scripts/vyatta-irqaffin b/scripts/vyatta-irqaffin old mode 100644 new mode 100755 index 8be98b2..4deb662 --- a/scripts/vyatta-irqaffin +++ b/scripts/vyatta-irqaffin @@ -1,6 +1,5 @@ - #!/bin/bash -# + # **** License **** # Version: VPL 1.0 # @@ -20,12 +19,10 @@ # # Author: Robert E. Gilligan # Date: 2008 -# Description: +# Description: CLI back-end script to manipulate NIC interrupt CPU affinity. # # **** End License **** -# -# CLI back-end script to manipulate NIC interrupt CPU affinity. -# + # Provides sub-commands to: # - Check the validity of an interface name and affinity mask value # - Set the affinity mask to the IRQ being used by an interface diff --git a/scripts/vyatta-load-config.pl b/scripts/vyatta-load-config.pl index be3c751..50d9d7c 100755 --- a/scripts/vyatta-load-config.pl +++ b/scripts/vyatta-load-config.pl @@ -1,5 +1,28 @@ #!/usr/bin/perl -# Perl script for loading config file at run time. + +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: Perl script for loading config file at run time. +# +# **** End License **** + # $0: config file. use strict; @@ -71,4 +94,3 @@ if ($? >> 8) { print "Done\n"; exit 0; - diff --git a/scripts/vyatta-output-config.pl b/scripts/vyatta-output-config.pl index 65169f6..8f6b814 100755 --- a/scripts/vyatta-output-config.pl +++ b/scripts/vyatta-output-config.pl @@ -1,5 +1,28 @@ #!/usr/bin/perl +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: Script5 to output the configuration` +# +# **** End License **** + use strict; use lib "/opt/vyatta/share/perl5/"; use VyattaConfigOutput; @@ -16,4 +39,3 @@ if ($ARGV[0] eq '-active') { VyattaConfigOutput::outputNewConfig(@ARGV); } exit 0; - diff --git a/scripts/vyatta-save-config.pl b/scripts/vyatta-save-config.pl index bad7c45..41f1051 100755 --- a/scripts/vyatta-save-config.pl +++ b/scripts/vyatta-save-config.pl @@ -1,5 +1,28 @@ #!/usr/bin/perl +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: script to save the configuration +# +# **** End License **** + use strict; use lib "/opt/vyatta/share/perl5/"; use VyattaConfigOutput; @@ -37,4 +60,3 @@ select STDOUT; print "\nDone\n"; close SAVE; exit 0; - diff --git a/scripts/vyatta-validate-type.pl b/scripts/vyatta-validate-type.pl index 64b7e8a..eee23bb 100755 --- a/scripts/vyatta-validate-type.pl +++ b/scripts/vyatta-validate-type.pl @@ -1,5 +1,28 @@ #!/usr/bin/perl +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: An-Cheng Huang +# Date: 2007 +# Description: script to validate types +# +# **** End License **** + use strict; use lib "/opt/vyatta/share/perl5/"; use VyattaTypeChecker; @@ -18,4 +41,3 @@ if ($ARGV[0] eq '-q') { exit 0 if (VyattaTypeChecker::validateType($ARGV[0], $ARGV[1], $quiet)); exit 1; - -- cgit v1.2.3 From eee5bfc8b0d866eef2811b5f77917e05ee7bcee9 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Thu, 6 Mar 2008 12:56:37 -0800 Subject: fix for bug 2950: raise config error messages during boot to warning level. --- scripts/vyatta-config-loader.pl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'scripts') diff --git a/scripts/vyatta-config-loader.pl b/scripts/vyatta-config-loader.pl index 370a669..e2ecd99 100755 --- a/scripts/vyatta-config-loader.pl +++ b/scripts/vyatta-config-loader.pl @@ -14,6 +14,11 @@ if (!open(OLDOUT, ">&STDOUT") || !open(OLDERR, ">&STDERR") print STDERR "Cannot dup STDOUT/STDERR: $!\n"; exit 1; } + +if (!open(WARN, "|/usr/bin/logger -t config-loader -p local0.warning")) { + print OLDERR "Cannot open syslog: $!\n"; + exit 1; +} sub restore_fds { open(STDOUT, ">&OLDOUT"); @@ -35,7 +40,7 @@ my $CWRAPPER = '/opt/vyatta/sbin/vyatta-cfg-cmd-wrapper'; system("$CWRAPPER begin"); if ($? >> 8) { print OLDOUT "Cannot set up configuration environment\n"; - print STDOUT "Cannot set up configuration environment\n"; + print WARN "Cannot set up configuration environment\n"; restore_fds(); exit 1; } @@ -51,7 +56,7 @@ foreach (@all_nodes) { $ret = system("$commit_cmd"); if ($ret >> 8) { print OLDOUT "Commit failed at rank $cur_rank\n"; - print STDOUT "Commit failed at rank $cur_rank\n"; + print WARN "Commit failed at rank $cur_rank\n"; system("$cleanup_cmd"); # continue after cleanup (or should we abort?) } @@ -62,14 +67,14 @@ foreach (@all_nodes) { if ($ret >> 8) { $cmd =~ s/^.*?set /set /; print OLDOUT "[[$cmd]] failed\n"; - print STDOUT "[[$cmd]] failed\n"; + print WARN "[[$cmd]] failed\n"; # continue after set failure (or should we abort?) } } $ret = system("$commit_cmd"); if ($ret >> 8) { print OLDOUT "Commit failed at rank $cur_rank\n"; - print STDOUT "Commit failed at rank $cur_rank\n"; + print WARN "Commit failed at rank $cur_rank\n"; system("$cleanup_cmd"); # exit normally after cleanup (or should we exit with error?) } -- cgit v1.2.3 From ff536782d33a0d2072aa93f93aaaddccd7cc2ba8 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Mon, 10 Mar 2008 11:08:52 -0700 Subject: Convert from VPL 1.0 to GPLv2 Glendale release is licensed under GPL version 2. --- debian/copyright | 31 ++++++++++++++++--------------- etc/bash_completion.d/20vyatta-cfg | 29 ++++++++++++++--------------- etc/init.d/vyatta-ofr | 28 ++++++++++++++-------------- scripts/VyattaConfigDOMTree.pm | 24 ++++++++++++++---------- scripts/VyattaMisc.pm | 24 ++++++++++++++---------- scripts/vyatta-interfaces.pl | 24 ++++++++++++++---------- scripts/vyatta-irqaffin | 24 ++++++++++++++---------- src/cli_path_utils.c | 26 +++++++++++++++----------- src/cli_path_utils.h | 26 +++++++++++++++----------- src/cli_val_engine.c | 26 +++++++++++++++----------- src/cli_val_engine.h | 26 +++++++++++++++----------- 11 files changed, 160 insertions(+), 128 deletions(-) (limited to 'scripts') diff --git a/debian/copyright b/debian/copyright index 4c6e7e6..b7da607 100644 --- a/debian/copyright +++ b/debian/copyright @@ -14,21 +14,22 @@ Copyright: License: - The contents of this package are subject to the Vyatta Public License - Version 1.0 ("License"); you may not use this file except in - compliance with the License. You may obtain a copy of the License at - http://www.vyatta.com/vpl - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. - - This code was originally developed by Vyatta, Inc. - Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. - -On Debian systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL'. +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +A copy of the GNU General Public License is available as +`/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +You can also obtain it by writing to the Free Software Foundation, +Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +MA 02110-1301, USA. The Debian packaging is (C) 2007, An-Cheng Huang and is licensed under the GPL, see above. diff --git a/etc/bash_completion.d/20vyatta-cfg b/etc/bash_completion.d/20vyatta-cfg index 5966e18..5c683f4 100644 --- a/etc/bash_completion.d/20vyatta-cfg +++ b/etc/bash_completion.d/20vyatta-cfg @@ -1,22 +1,21 @@ # **** License **** -# Version: VPL 1.0 +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. -# -# This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. -# All Rights Reserved. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. # # Author: An-Cheng Huang -# Date: 2007 # Description: bash completion for Vyatta configuration commands # # **** End License **** diff --git a/etc/init.d/vyatta-ofr b/etc/init.d/vyatta-ofr index 89914c4..b1e7a69 100755 --- a/etc/init.d/vyatta-ofr +++ b/etc/init.d/vyatta-ofr @@ -9,21 +9,21 @@ # Description: Debian init script for the Vyatta Router ### END INIT INFO # **** License **** -# Version: VPL 1.0 +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. -# -# This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. -# All Rights Reserved. +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. # # Author: Tom Grennan # **** End License **** diff --git a/scripts/VyattaConfigDOMTree.pm b/scripts/VyattaConfigDOMTree.pm index 86aabf8..68b58bb 100644 --- a/scripts/VyattaConfigDOMTree.pm +++ b/scripts/VyattaConfigDOMTree.pm @@ -2,17 +2,21 @@ # Module: serial # # **** License **** -# Version: VPL 1.0 +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. # # This code was originally developed by Vyatta, Inc. # Portions created by Vyatta are Copyright (C) 2005, 2006, 2007 Vyatta, Inc. diff --git a/scripts/VyattaMisc.pm b/scripts/VyattaMisc.pm index 3a083ec..e81852f 100755 --- a/scripts/VyattaMisc.pm +++ b/scripts/VyattaMisc.pm @@ -2,17 +2,21 @@ # Module: VyattaMisc.pm # # **** License **** -# Version: VPL 1.0 +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. # # This code was originally developed by Vyatta, Inc. # Portions created by Vyatta are Copyright (C) 2005, 2006, 2007 Vyatta, Inc. diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index 482faa8..1cad719 100644 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -3,17 +3,21 @@ # Module: vyatta-interfaces.pl # # **** License **** -# Version: VPL 1.0 +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. # # This code was originally developed by Vyatta, Inc. # Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. diff --git a/scripts/vyatta-irqaffin b/scripts/vyatta-irqaffin index 8be98b2..91cf082 100644 --- a/scripts/vyatta-irqaffin +++ b/scripts/vyatta-irqaffin @@ -2,17 +2,21 @@ #!/bin/bash # # **** License **** -# Version: VPL 1.0 +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. # # This code was originally developed by Vyatta, Inc. # Portions created by Vyatta are Copyright (C) 2008 Vyatta, Inc. diff --git a/src/cli_path_utils.c b/src/cli_path_utils.c index 84a2bc0..642b5ae 100644 --- a/src/cli_path_utils.c +++ b/src/cli_path_utils.c @@ -4,17 +4,21 @@ Module: cli **** License **** - Version: VPL 1.0 - - The contents of this file are subject to the Vyatta Public License - Version 1.0 ("License"); you may not use this file except in - compliance with the License. You may obtain a copy of the License at - http://www.vyatta.com/vpl - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + A copy of the GNU General Public License is available as + `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution + or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. + You can also obtain it by writing to the Free Software Foundation, + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA. This code was originally developed by Vyatta, Inc. Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. diff --git a/src/cli_path_utils.h b/src/cli_path_utils.h index 6cc3be8..6716b22 100644 --- a/src/cli_path_utils.h +++ b/src/cli_path_utils.h @@ -4,17 +4,21 @@ Module: cli **** License **** - Version: VPL 1.0 - - The contents of this file are subject to the Vyatta Public License - Version 1.0 ("License"); you may not use this file except in - compliance with the License. You may obtain a copy of the License at - http://www.vyatta.com/vpl - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + A copy of the GNU General Public License is available as + `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution + or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. + You can also obtain it by writing to the Free Software Foundation, + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA. This code was originally developed by Vyatta, Inc. Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. diff --git a/src/cli_val_engine.c b/src/cli_val_engine.c index 50a02df..adf40a4 100644 --- a/src/cli_val_engine.c +++ b/src/cli_val_engine.c @@ -4,17 +4,21 @@ Module: cli **** License **** - Version: VPL 1.0 - - The contents of this file are subject to the Vyatta Public License - Version 1.0 ("License"); you may not use this file except in - compliance with the License. You may obtain a copy of the License at - http://www.vyatta.com/vpl - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + A copy of the GNU General Public License is available as + `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution + or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. + You can also obtain it by writing to the Free Software Foundation, + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA. This code was originally developed by Vyatta, Inc. Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. diff --git a/src/cli_val_engine.h b/src/cli_val_engine.h index 0f32276..6315dac 100644 --- a/src/cli_val_engine.h +++ b/src/cli_val_engine.h @@ -4,17 +4,21 @@ Module: cli **** License **** - Version: VPL 1.0 - - The contents of this file are subject to the Vyatta Public License - Version 1.0 ("License"); you may not use this file except in - compliance with the License. You may obtain a copy of the License at - http://www.vyatta.com/vpl - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + A copy of the GNU General Public License is available as + `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution + or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. + You can also obtain it by writing to the Free Software Foundation, + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA. This code was originally developed by Vyatta, Inc. Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. -- cgit v1.2.3 From a650defe75b160a78aec3e1837cfa1e5a994ff3a Mon Sep 17 00:00:00 2001 From: rbalocca Date: Mon, 10 Mar 2008 14:14:48 -0700 Subject: Add GPLv2 to additional Vyatta created scripts --- scripts/VyattaConfig.pm | 28 ++++++++++++---------------- scripts/VyattaConfigLoad.pm | 29 ++++++++++++----------------- scripts/VyattaConfigOutput.pm | 29 +++++++++++++---------------- scripts/VyattaIpTablesAddressFilter.pm | 28 ++++++++++++---------------- scripts/VyattaMisc.pm | 21 ++++++--------------- scripts/VyattaTypeChecker.pm | 28 ++++++++++++---------------- scripts/vyatta-cfg-cmd-wrapper | 28 ++++++++++++---------------- scripts/vyatta-cfg-notify | 28 ++++++++++++---------------- scripts/vyatta-cli-expand-var.pl | 28 ++++++++++++---------------- scripts/vyatta-config-loader.pl | 28 ++++++++++++---------------- scripts/vyatta-dhclient-hook | 28 ++++++++++++---------------- scripts/vyatta-find-type.pl | 28 ++++++++++++---------------- scripts/vyatta-irqaffin | 20 ++++++-------------- scripts/vyatta-load-config.pl | 28 ++++++++++++---------------- scripts/vyatta-output-config.pl | 30 ++++++++++++++---------------- scripts/vyatta-save-config.pl | 28 ++++++++++++---------------- scripts/vyatta-validate-type.pl | 28 ++++++++++++---------------- 17 files changed, 195 insertions(+), 270 deletions(-) (limited to 'scripts') diff --git a/scripts/VyattaConfig.pm b/scripts/VyattaConfig.pm index 985ee5a..3c4b51f 100755 --- a/scripts/VyattaConfig.pm +++ b/scripts/VyattaConfig.pm @@ -1,26 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: vyatta configuration parser + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: vyatta configuration parser -# # **** End License **** package VyattaConfig; diff --git a/scripts/VyattaConfigLoad.pm b/scripts/VyattaConfigLoad.pm index 6b857dd..9605017 100755 --- a/scripts/VyattaConfigLoad.pm +++ b/scripts/VyattaConfigLoad.pm @@ -1,27 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: Perl module for loading configuration. + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: Perl module for loading configuration. -# -# **** End License **** package VyattaConfigLoad; diff --git a/scripts/VyattaConfigOutput.pm b/scripts/VyattaConfigOutput.pm index 4c16a0b..b7c5499 100755 --- a/scripts/VyattaConfigOutput.pm +++ b/scripts/VyattaConfigOutput.pm @@ -1,28 +1,25 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: Perl module for generating output of the configuration. + # **** License **** -# Version: VPL 1.0 +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: Perl module for generating output of the configuration. -# # **** End License **** + # outputNewConfig() # prints the "new" config, i.e., the active config with any un-committed # changes. 'diff' notation is also generated to indicate the changes. diff --git a/scripts/VyattaIpTablesAddressFilter.pm b/scripts/VyattaIpTablesAddressFilter.pm index a72bd9d..9789fef 100755 --- a/scripts/VyattaIpTablesAddressFilter.pm +++ b/scripts/VyattaIpTablesAddressFilter.pm @@ -1,26 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: IP tables address filter + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: IP tables address filter -# # **** End License **** package VyattaIpTablesAddressFilter; diff --git a/scripts/VyattaMisc.pm b/scripts/VyattaMisc.pm index a2dd0f2..e6bd9ff 100755 --- a/scripts/VyattaMisc.pm +++ b/scripts/VyattaMisc.pm @@ -2,6 +2,10 @@ # Module: VyattaMisc.pm # +# Author: Marat +# Date: 2007 +# Description: Implements miscellaneous commands + # **** License **** # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -11,24 +15,11 @@ # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. -# -# A copy of the GNU General Public License is available as -# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution -# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. -# You can also obtain it by writing to the Free Software Foundation, -# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, -# MA 02110-1301, USA. -# +# # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2005, 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: Marat -# Date: 2007 -# Description: Implements miscellaneous commands -# # **** End License **** -# package VyattaMisc; require Exporter; diff --git a/scripts/VyattaTypeChecker.pm b/scripts/VyattaTypeChecker.pm index 98be419..2a7d0c9 100755 --- a/scripts/VyattaTypeChecker.pm +++ b/scripts/VyattaTypeChecker.pm @@ -1,26 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: Type checking script + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: Type checking script -# # **** End License **** # Perl module for type validation. diff --git a/scripts/vyatta-cfg-cmd-wrapper b/scripts/vyatta-cfg-cmd-wrapper index b419f55..a1a573e 100755 --- a/scripts/vyatta-cfg-cmd-wrapper +++ b/scripts/vyatta-cfg-cmd-wrapper @@ -1,26 +1,22 @@ #!/bin/bash +# Author: An-Cheng Huang +# Date: 2007 +# Description: command wrapper + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: command wrapper -# # **** End License **** if grep -q union=aufs /proc/cmdline || grep -q aufs /proc/filesystems ; then diff --git a/scripts/vyatta-cfg-notify b/scripts/vyatta-cfg-notify index 098e593..0a2f895 100755 --- a/scripts/vyatta-cfg-notify +++ b/scripts/vyatta-cfg-notify @@ -1,26 +1,22 @@ #!/bin/bash +# Author: An-Cheng Huang +# Date: 2007 +# Description: config notify script + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: config notify script -# # **** End License **** [ -r /etc/default/vyatta ] && source /etc/default/vyatta diff --git a/scripts/vyatta-cli-expand-var.pl b/scripts/vyatta-cli-expand-var.pl index 2d65029..2691615 100755 --- a/scripts/vyatta-cli-expand-var.pl +++ b/scripts/vyatta-cli-expand-var.pl @@ -1,26 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: bash expand script + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: bash expand script -# # **** End License **** use strict; diff --git a/scripts/vyatta-config-loader.pl b/scripts/vyatta-config-loader.pl index a870bf3..29b6bcd 100755 --- a/scripts/vyatta-config-loader.pl +++ b/scripts/vyatta-config-loader.pl @@ -1,26 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: configuration loader + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: configuration loader -# # **** End License **** # Perl script for loading the startup config file. diff --git a/scripts/vyatta-dhclient-hook b/scripts/vyatta-dhclient-hook index c346498..5784d93 100755 --- a/scripts/vyatta-dhclient-hook +++ b/scripts/vyatta-dhclient-hook @@ -1,26 +1,22 @@ #!/bin/sh +# Author: Stig Thormodsrud +# Date: 2007 +# Description: dhcp client hook + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: Stig Thormodsrud -# Date: 2007 -# Description: dhcp client hook -# # **** End License **** # To enable this script set the following variable to "yes" diff --git a/scripts/vyatta-find-type.pl b/scripts/vyatta-find-type.pl index 37b5d2e..3c9ccc6 100755 --- a/scripts/vyatta-find-type.pl +++ b/scripts/vyatta-find-type.pl @@ -1,26 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: bash tyep checking for Vyatta configuration commands + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: bash completion for Vyatta configuration commands -# # **** End License **** use strict; diff --git a/scripts/vyatta-irqaffin b/scripts/vyatta-irqaffin index 7c7956c..1959a30 100755 --- a/scripts/vyatta-irqaffin +++ b/scripts/vyatta-irqaffin @@ -1,5 +1,9 @@ #!/bin/bash +# Author: Robert E. Gilligan +# Date: 2008 +# Description: CLI back-end script to manipulate NIC interrupt CPU affinity. + # **** License **** # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -9,22 +13,10 @@ # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. -# -# A copy of the GNU General Public License is available as -# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution -# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. -# You can also obtain it by writing to the Free Software Foundation, -# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, -# MA 02110-1301, USA. -# +# # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2008 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: Robert E. Gilligan -# Date: 2008 -# Description: CLI back-end script to manipulate NIC interrupt CPU affinity. -# # **** End License **** # Provides sub-commands to: diff --git a/scripts/vyatta-load-config.pl b/scripts/vyatta-load-config.pl index 50d9d7c..a432d8c 100755 --- a/scripts/vyatta-load-config.pl +++ b/scripts/vyatta-load-config.pl @@ -1,26 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: Script to output the configuration + # **** License **** -# Version: VPL 1.0 +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: Script5 to output the configuration` -# # **** End License **** use strict; @@ -31,6 +27,7 @@ if ($ARGV[0] eq '-all') { shift; VyattaConfigOutput::set_show_all(1); } + if ($ARGV[0] eq '-active') { shift; VyattaConfigOutput::set_hide_password(1); @@ -38,4 +35,5 @@ if ($ARGV[0] eq '-active') { } else { VyattaConfigOutput::outputNewConfig(@ARGV); } + exit 0; diff --git a/scripts/vyatta-save-config.pl b/scripts/vyatta-save-config.pl index 41f1051..c759503 100755 --- a/scripts/vyatta-save-config.pl +++ b/scripts/vyatta-save-config.pl @@ -1,26 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: script to save the configuration + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: script to save the configuration -# # **** End License **** use strict; diff --git a/scripts/vyatta-validate-type.pl b/scripts/vyatta-validate-type.pl index eee23bb..eecc024 100755 --- a/scripts/vyatta-validate-type.pl +++ b/scripts/vyatta-validate-type.pl @@ -1,26 +1,22 @@ #!/usr/bin/perl +# Author: An-Cheng Huang +# Date: 2007 +# Description: script to validate types + # **** License **** -# Version: VPL 1.0 -# -# The contents of this file are subject to the Vyatta Public License -# Version 1.0 ("License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.vyatta.com/vpl +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. # -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. -# -# Author: An-Cheng Huang -# Date: 2007 -# Description: script to validate types -# # **** End License **** use strict; -- cgit v1.2.3 From 2fd9d914de23cd6fabc08e3e4be4a588f2b2803d Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Tue, 11 Mar 2008 16:37:58 -0700 Subject: more robust handling of set mac address Bugfix: 2826 Enforce restrictions on address (must be valid ethernet address), and only bring interface down/up if already up. --- scripts/vyatta-interfaces.pl | 47 +++++++++++++++++++++- .../interfaces/ethernet/node.tag/mac/node.def | 15 ++----- 2 files changed, 49 insertions(+), 13 deletions(-) (limited to 'scripts') diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index 1cad719..e3afe68 100755 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -34,7 +34,7 @@ use lib "/opt/vyatta/share/perl5/"; use VyattaConfig; use VyattaMisc; use Getopt::Long; - +use POSIX; use NetAddr::IP; use strict; @@ -45,18 +45,22 @@ my $dhcp_conf = '/etc/dhcp3/dhclient.conf'; my $dhcp_pid = '/var/run/dhclient.pid'; my $dhcp_leases = '/var/lib/dhcp3/dhclient.leases'; +my ($eth_update, $eth_delete, $addr, $restart_dhclient, $dev, $mac, $mac_update); -my ($eth_update, $eth_delete, $addr, $restart_dhclient, $dev); GetOptions("eth-addr-update=s" => \$eth_update, "eth-addr-delete=s" => \$eth_delete, "valid-addr=s" => \$addr, "restart-dhclient!" => \$restart_dhclient, "dev=s" => \$dev, + "valid-mac=s" => \$mac, + "set-mac=s" => \$mac_update, ); if (defined $eth_update) { update_eth_addrs($eth_update, $dev); } if (defined $eth_delete) { delete_eth_addrs($eth_delete, $dev); } if (defined $addr) { is_valid_addr($addr, $dev); } +if (defined $mac) { is_valid_mac($mac, $dev); } +if (defined $mac_update) { update_mac($mac_update, $dev); } if (defined $restart_dhclient) { dhcp_restart_daemon(); } sub is_ip_configured { @@ -342,6 +346,45 @@ sub delete_eth_addrs { } } +sub update_mac { + my ($mac, $intf) = @_; + + open my $fh, "<", "/sys/class/net/$intf/flags" + or die "Error: $intf is not a network device\n"; + + my $flags = <$fh>; + chomp $flags; + close $fh or die "Error: can't read state\n"; + + if (POSIX::strtoul($flags) & 1) { + # NB: Perl 5 system return value is bass-ackwards + system "sudo ip link set $intf down" + and die "Could not set $intf down ($!)\n"; + system "sudo ip link set $intf address $mac" + and die "Could not set $intf address ($!)\n"; + system "sudo ip link set $intf up" + and die "Could not set $intf up ($!)\n"; + } else { + exec "sudo ip link set $intf address $mac"; + } + exit 0; +} + +sub is_valid_mac { + my ($mac, $intf) = @_; + my @octets = split /:/, $mac; + + ($#octets == 5) or die "Error: wrong number of octets: $#octets\n"; + + (($octets[0] & 1) == 0) or die "Error: $mac is a multicast address\n"; + + my $sum = 0; + $sum += strtoul('0x' . $_) foreach @octets; + ( $sum != 0 ) or die "Error: zero is not a valid address\n"; + + exit 0; +} + sub is_valid_addr { my ($addr_net, $intf) = @_; diff --git a/templates/interfaces/ethernet/node.tag/mac/node.def b/templates/interfaces/ethernet/node.tag/mac/node.def index e556743..d25b378 100644 --- a/templates/interfaces/ethernet/node.tag/mac/node.def +++ b/templates/interfaces/ethernet/node.tag/mac/node.def @@ -1,14 +1,7 @@ type: macaddr help: Set the MAC address of this interface +syntax:expression: exec "\ + /opt/vyatta/sbin/vyatta-interfaces.pl --dev $VAR(../@) --valid-mac $VAR(@)" +update: /opt/vyatta/sbin/vyatta-interfaces.pl --dev $VAR(../@) --set-mac $VAR(@) +delete: /opt/vyatta/sbin/vyatta-interfaces.pl --dev $VAR(../@) --set-mac $VAR(../hw-id/@) -update:expression: "sudo sh -c \"ip link set $VAR(../@) down && \ - ip link set $VAR(../@) address $VAR(@) && \ - ip link set $VAR(../@) up; \" "; \ - "Error setting MAC address on dev $VAR(../@)" - -delete:expression: "sudo sh -c \"ip link set $VAR(../@) down && \ - ip link set $VAR(../@) address \ - $VAR(../hw-id/@) && \ - ip link set $VAR(../@) up;\" "; \ - "Error resetting MAC address on dev $VAR(../@) to \ - $VAR(../hw-id/@)" -- cgit v1.2.3 From b5864fdc4462d1f329ebe852754c7877846d8bfa Mon Sep 17 00:00:00 2001 From: Robert Bays Date: Fri, 14 Mar 2008 13:38:07 -0700 Subject: fix for bugs 2725 2999 --- scripts/vyatta-check-typeless-node.pl | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 scripts/vyatta-check-typeless-node.pl (limited to 'scripts') diff --git a/scripts/vyatta-check-typeless-node.pl b/scripts/vyatta-check-typeless-node.pl new file mode 100644 index 0000000..65a7408 --- /dev/null +++ b/scripts/vyatta-check-typeless-node.pl @@ -0,0 +1,21 @@ +#!/usr/bin/perl +use lib "/opt/vyatta/share/perl5/"; +use VyattaConfig; +use VyattaMisc; +use Getopt::Long; + +## Check if a typeless node exists +# this is a lame little script to get around bug 2525 not being fixed. +# i.e. $VAR(./node/) always expands to true. Once bug 2525 is properly +# fixed, this can go away +my $node = shift; +my $config = new VyattaConfig; + +if ($config->exists("$node")) { + exit 0; +} +else { + exit 1; +} + +exit 0; -- cgit v1.2.3 From 1b22d8e098abf1f2cf4f479dab158c7a93805d11 Mon Sep 17 00:00:00 2001 From: Bob Gilligan Date: Mon, 17 Mar 2008 16:53:30 -0700 Subject: Bugfix: 2885 Place the "changes only" directory that is used by the configuration subsystem in its union mount into /tmp. We see kernel panics in unionfs at umount time in some cases when the "changes only" directory is located in a tmpfs filesystem. --- etc/default/vyatta-cfg | 2 +- scripts/vyatta-cfg-cmd-wrapper | 2 +- src/commit.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'scripts') diff --git a/etc/default/vyatta-cfg b/etc/default/vyatta-cfg index 7d189d8..b07440f 100644 --- a/etc/default/vyatta-cfg +++ b/etc/default/vyatta-cfg @@ -3,7 +3,7 @@ { declare -x -r VYATTA_ACTIVE_CONFIGURATION_DIR=${vyatta_configdir}/active -declare -x -r VYATTA_CHANGES_ONLY_DIR=${vyatta_configdir}/tmp/changes_only_$$ +declare -x -r VYATTA_CHANGES_ONLY_DIR=/tmp/changes_only_$$ declare -x -r VYATTA_TEMP_CONFIG_DIR=${vyatta_configdir}/tmp/new_config_$$ declare -x -r VYATTA_CONFIG_TMP=${vyatta_configdir}/tmp/tmp_$$ declare -x -r VYATTA_CONFIG_TEMPLATE=$vyatta_cfg_templates diff --git a/scripts/vyatta-cfg-cmd-wrapper b/scripts/vyatta-cfg-cmd-wrapper index a1a573e..518147d 100755 --- a/scripts/vyatta-cfg-cmd-wrapper +++ b/scripts/vyatta-cfg-cmd-wrapper @@ -32,7 +32,7 @@ export VYATTA_EDIT_LEVEL=/; export VYATTA_TEMPLATE_LEVEL=/; export VYATTA_ACTIVE_CONFIGURATION_DIR=/opt/vyatta/config/active; -export VYATTA_CHANGES_ONLY_DIR=/opt/vyatta/config/tmp/changes_only_$PPID; +export VYATTA_CHANGES_ONLY_DIR=/tmp/changes_only_$PPID; export VYATTA_TEMP_CONFIG_DIR=/opt/vyatta/config/tmp/new_config_$PPID; export VYATTA_CONFIG_TMP=/opt/vyatta/config/tmp/tmp_$PPID; diff --git a/src/commit.c b/src/commit.c index c3219e5..980a98b 100644 --- a/src/commit.c +++ b/src/commit.c @@ -1359,7 +1359,7 @@ static int fin_commit(boolean ok) system(command); my_free(command); - command = my_malloc(strlen(format3) + c_len, ""); + command = my_malloc(strlen(format3) + t_len, ""); sprintf(command, format3, get_tmpp()); system(command); my_free(command); -- cgit v1.2.3 From 00030c2e909b33ef0dbf694d82525134bdb5ffdf Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Thu, 20 Mar 2008 11:11:56 -0700 Subject: add validation for more types --- scripts/VyattaTypeChecker.pm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'scripts') diff --git a/scripts/VyattaTypeChecker.pm b/scripts/VyattaTypeChecker.pm index 2a7d0c9..f77664f 100755 --- a/scripts/VyattaTypeChecker.pm +++ b/scripts/VyattaTypeChecker.pm @@ -52,8 +52,11 @@ use strict; my %type_handler = ( 'ipv4' => \&validate_ipv4, 'ipv4net' => \&validate_ipv4net, + 'ipv4range' => \&validate_ipv4range, 'ipv4_negate' => \&validate_ipv4_negate, 'ipv4net_negate' => \&validate_ipv4net_negate, + 'ipv4range_negate' => \&validate_ipv4range_negate, + 'iptables4_addr' => \&validate_iptables4_addr, 'protocol' => \&validate_protocol, 'protocol_negate' => \&validate_protocol_negate, 'macaddr' => \&validate_macaddr, @@ -75,6 +78,14 @@ sub validate_ipv4net { return 1; } +sub validate_ipv4range { + $_ = shift; + return 0 if (!/^([^-]+)-([^-]+)$/); + my ($a1, $a2) = ($1, $2); + return 0 if (!validate_ipv4($a1) || !validate_ipv4($a2)); + return 1; +} + sub validate_ipv4_negate { my $value = shift; if ($value =~ m/^\!(.*)$/) { @@ -91,6 +102,22 @@ sub validate_ipv4net_negate { return validate_ipv4net($value); } +sub validate_ipv4range_negate { + my $value = shift; + if ($value =~ m/^\!(.*)$/) { + $value = $1; + } + return validate_ipv4range($value); +} + +sub validate_iptables4_addr { + my $value = shift; + return 0 if (!validate_ipv4_negate($value) + && !validate_ipv4net_negate($value) + && !validate_ipv4range_negate($value)); + return 1; +} + sub validate_protocol { my $value = shift; $value = lc $value; -- cgit v1.2.3 From 62727748e89f930899b9714110825e7abd7b45d2 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Mon, 24 Mar 2008 14:19:48 -0700 Subject: startup config ordering --- scripts/VyattaConfigLoad.pm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'scripts') diff --git a/scripts/VyattaConfigLoad.pm b/scripts/VyattaConfigLoad.pm index 9605017..c4ce8bd 100755 --- a/scripts/VyattaConfigLoad.pm +++ b/scripts/VyattaConfigLoad.pm @@ -30,6 +30,8 @@ use VyattaConfig; my $default_rank = 0; my %config_rank = ( 'qos-policy' => 110, + 'firewall' => 102, + 'service nat' => 101, 'interfaces' => 100, 'interfaces bridge' => 99, 'interfaces ethernet' => 98, @@ -38,6 +40,7 @@ my %config_rank = ( 'protocols static' => 85, 'service ssh' => 84, 'service telnet' => 83, + 'vpn' => 80, ); my @all_nodes = (); -- cgit v1.2.3 From 76aae0216871f8c4f3b1c2ebad6761e67ee3e799 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Wed, 26 Mar 2008 12:32:24 -0700 Subject: fix for bug 3032: * rename pre-glendale start-up config. * warn user when loading a pre-glendale config. --- etc/init.d/vyatta-ofr | 5 +++++ scripts/vyatta-load-config.pl | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'scripts') diff --git a/etc/init.d/vyatta-ofr b/etc/init.d/vyatta-ofr index b1e7a69..776aaf4 100755 --- a/etc/init.d/vyatta-ofr +++ b/etc/init.d/vyatta-ofr @@ -66,6 +66,11 @@ have_rl_system () { # if necessary, provide initial config init_bootfile () { + if [ -f $BOOTFILE ] && grep -q '/\*XORP Configuration File, v1.0\*/' \ + $BOOTFILE >&/dev/null; then + CURTIME=$(date +%F-%H%M%S) + mv $BOOTFILE $BOOTFILE.pre-glendale.$CURTIME + fi if [ ! -f $BOOTFILE ] ; then if [ -f $vyatta_sysconfdir/config.boot.default ]; then cp $vyatta_sysconfdir/config.boot.default $BOOTFILE diff --git a/scripts/vyatta-load-config.pl b/scripts/vyatta-load-config.pl index a432d8c..05323e3 100755 --- a/scripts/vyatta-load-config.pl +++ b/scripts/vyatta-load-config.pl @@ -40,6 +40,24 @@ if (!($load_file =~ /^\//)) { $load_file = "$bootpath/$load_file"; } +if (!open(CFG, "<$load_file")) { + print "Cannot open configuration file $load_file\n"; + exit 1; +} +while () { + if (/\/\*XORP Configuration File, v1.0\*\//) { + print "Warning: Loading a pre-Glendale configuration.\n"; + print "Do you want to continue? [no] "; + my $resp = ; + if (!($resp =~ /^yes$/i)) { + print "Configuration not loaded\n"; + exit 1; + } + last; + } +} +close CFG; + # do config migration system("$sbindir/vyatta_config_migrate.pl $load_file"); -- cgit v1.2.3 From 388d5ed2580bc9ef7ee7a8cdc1d75126ea97a53e Mon Sep 17 00:00:00 2001 From: Stig Thormodsrud Date: Mon, 31 Mar 2008 16:11:47 -0700 Subject: Add utilitly script to add/removed entries to watchlink exclude file. --- Makefile.am | 1 + scripts/vyatta-watchlink-exclude.pl | 144 ++++++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100755 scripts/vyatta-watchlink-exclude.pl (limited to 'scripts') diff --git a/Makefile.am b/Makefile.am index a309d34..4496be6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -43,6 +43,7 @@ sbin_SCRIPTS += scripts/vyatta-cfg-notify sbin_SCRIPTS += scripts/vyatta-interfaces.pl sbin_SCRIPTS += scripts/vyatta-irqaffin sbin_SCRIPTS += scripts/vyatta-check-typeless-node.pl +sbin_SCRIPTS += scripts/vyatta-watchlink-exclude.pl share_perl5_SCRIPTS = scripts/VyattaConfig.pm share_perl5_SCRIPTS += scripts/VyattaConfigDOMTree.pm diff --git a/scripts/vyatta-watchlink-exclude.pl b/scripts/vyatta-watchlink-exclude.pl new file mode 100755 index 0000000..9805463 --- /dev/null +++ b/scripts/vyatta-watchlink-exclude.pl @@ -0,0 +1,144 @@ +#!/usr/bin/perl +# +# Module: vyatta-watchlink-exclude.pl +# +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: Stig Thormodsrud +# Date: March 2008 +# Description: Script to update watchlink exclude file +# +# **** End License **** +# + +# +# parameters: +# --id="" : owner of exclude line (e.g. vrrp, ha) [required] +# --action="" : add or remove [required] +# --intf="" : interface [required] +# --ipaddr="" : ip address or network to execlude [optional] +# --signal : should watchlink get signaled [optional] +# +# Expected format of exclude file: +# +# [interface] ([ipv4addr]|ipv4net]) # id +# + +use Getopt::Long; +use POSIX; + +use strict; +use warnings; + +my $exclude_file = '/var/linkstatus/exclude'; +my $watchlink_pid = '/var/run/vyatta/quagga/watchlink.pid'; + +sub read_exclude_file { + my $FILE; + my @lines = (); + if (! -e $exclude_file) { + return @lines; + } + open($FILE, "<", $exclude_file) or die "Error: read() $!"; + @lines = <$FILE>; + close($FILE); + chomp @lines; + return @lines; +} + +sub write_exclude_file { + my @lines = @_; + + my $FILE; + open($FILE, ">", $exclude_file) or die "Error: write() $!"; + if (scalar(@lines) > 0) { + print $FILE join("\n", @lines), "\n"; + } + close($FILE); +} + +sub remove_exclude_line { + my ($remove_line, @lines) = @_; + + my @new_lines; + my $match = 0; + foreach my $line (@lines) { + if ($line eq $remove_line) { + $match++; + } else { + push @new_lines, $line; + } + } + if ($match < 1) { + die "Error: no match found for $remove_line"; + } + return @new_lines; +} + + +# +# main +# + +my ($opt_id, $opt_action, $opt_intf, $opt_ipaddr, $opt_ipnet, $opt_signal); + +GetOptions("id=s" => \$opt_id, + "action=s" => \$opt_action, + "intf=s" => \$opt_intf, + "ipaddr=s" => \$opt_ipaddr, + "signal!" => \$opt_signal, + ); + +if (!(defined $opt_id and defined $opt_action and defined $opt_intf) ) { + die "Error: parameters --id --intf --action must be set"; +} + +if ($opt_action ne "add" and $opt_action ne "remove") { + die "Error: --action must be \"add\" or \"remove\" "; +} + +my @lines = read_exclude_file(); +my $new_line = "$opt_intf "; +if (defined $opt_ipaddr) { + $new_line .= "$opt_ipaddr "; +} +if (defined $opt_id) { + $new_line .= "# $opt_id"; +} + +if ($opt_action eq "add") { + push @lines, $new_line; +} else { + @lines = remove_exclude_line($new_line, @lines); +} +write_exclude_file(@lines); + +if (defined $opt_signal) { + if (! -e $watchlink_pid) { + die "Error: missing pid file [$watchlink_pid]\n"; + } + my $pid = `cat $watchlink_pid`; + chomp $pid; + system("kill -10 $pid"); +} + +# end of file -- cgit v1.2.3 From 0a350b99308762f1eb180aa47b64db78b3187c7e Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Mon, 31 Mar 2008 16:46:42 -0700 Subject: handle delete address request if address is already removed Quagga link-detect may have already removed address from interface. Check for missing address, and if not present just tell vtysh. This fixes bug 2802 --- scripts/vyatta-interfaces.pl | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) (limited to 'scripts') diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index e3afe68..c60288a 100755 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -332,18 +332,44 @@ sub delete_eth_addrs { dhcp_release_addr($intf); update_dhcp_client(); system("rm -f /var/lib/dhcp3/dhclient_$intf\_lease"); - return; + exit 0; } my $version = is_ip_v4_or_v6($addr); - if (!defined $version) { - exit 1; + + # If interface has address than delete it + if (is_ip_configured($intf, $addr)) { + if ($version == 4) { + exec 'ip', 'addr', 'del', $addr, 'dev', $intf; + } elsif ($version == 6) { + exec 'ip', '-6', 'addr', 'del', $addr, 'dev', $intf; + } else { + die "Bad ip version"; + } + die "Can't exec ip"; } - if ($version == 4) { - return system("ip addr del $addr dev $intf"); + + # Interface address might have been removed by quagga link going down + # so tell quagga no to restore it on link-detect + my $vtysh; + if ( -x '/usr/bin/vyatta-vtysh' ) { + $vtysh = '/usr/bin/vyatta-vtysh'; + } else { + $vtysh = '/usr/bin/vtysh'; } - if ($version == 6) { - return system("ip -6 addr del $addr dev $intf"); + + my @cmd = (); + if ($version == 4) { + @cmd = ('vtysh', '-c', + "configure terminal; interface $intf; no ip address $intf" ); + } elsif ($version == 6) { + @cmd = ('vtysh', '-c', + "configure terminal; interface $intf; no ip6 address $intf" ); + } else { + die "Bad ip version"; } + exec $vtysh, @cmd; + + die "Can't exec vtysh"; } sub update_mac { -- cgit v1.2.3 From 2ad53e3ae6bd073785df8f99121b89683df744a2 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Tue, 1 Apr 2008 11:07:06 -0700 Subject: add function to delete watchlink exclude entries based on ID. --- scripts/vyatta-watchlink-exclude.pl | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) (limited to 'scripts') diff --git a/scripts/vyatta-watchlink-exclude.pl b/scripts/vyatta-watchlink-exclude.pl index 9805463..048946c 100755 --- a/scripts/vyatta-watchlink-exclude.pl +++ b/scripts/vyatta-watchlink-exclude.pl @@ -34,13 +34,13 @@ # parameters: # --id="" : owner of exclude line (e.g. vrrp, ha) [required] # --action="" : add or remove [required] -# --intf="" : interface [required] +# --intf="" : interface [required for add] # --ipaddr="" : ip address or network to execlude [optional] # --signal : should watchlink get signaled [optional] # # Expected format of exclude file: # -# [interface] ([ipv4addr]|ipv4net]) # id +# [ | ] # id # use Getopt::Long; @@ -76,6 +76,24 @@ sub write_exclude_file { close($FILE); } +sub remove_exclude_id { + my ($id, @lines) = @_; + + my @new_lines; + my $match = 0; + foreach my $line (@lines) { + if ($line =~ /# $id$/) { + $match++; + } else { + push @new_lines, $line; + } + } + if ($match < 1) { + die "Error: no match found for $id"; + } + return @new_lines; +} + sub remove_exclude_line { my ($remove_line, @lines) = @_; @@ -108,14 +126,18 @@ GetOptions("id=s" => \$opt_id, "signal!" => \$opt_signal, ); -if (!(defined $opt_id and defined $opt_action and defined $opt_intf) ) { - die "Error: parameters --id --intf --action must be set"; +if (!(defined $opt_id and defined $opt_action)) { + die "Error: parameters --id --action must be set"; } if ($opt_action ne "add" and $opt_action ne "remove") { die "Error: --action must be \"add\" or \"remove\" "; } +if ($opt_action eq "add" and !defined($opt_intf)) { + die "Error: --intf must be set for \"add\""; +} + my @lines = read_exclude_file(); my $new_line = "$opt_intf "; if (defined $opt_ipaddr) { @@ -127,8 +149,10 @@ if (defined $opt_id) { if ($opt_action eq "add") { push @lines, $new_line; -} else { +} elsif (defined $opt_intf) { @lines = remove_exclude_line($new_line, @lines); +} else { + @lines = remove_exclude_id($opt_id, @lines); } write_exclude_file(@lines); -- cgit v1.2.3 From 35642e2e10aff32335690a5af2710bbb9ec3ea13 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Tue, 1 Apr 2008 12:37:35 -0700 Subject: fix for bug 2689: sort tag nodes appropriately --- debian/control | 4 +++- scripts/VyattaConfigOutput.pm | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/debian/control b/debian/control index 308105a..2fdbcfe 100644 --- a/debian/control +++ b/debian/control @@ -17,7 +17,9 @@ Depends: sed (>= 4.1.5), vyatta-config-migrate, dhcp3-client | vyatta-dhcp3-client, bsdutils (>=1:2.13), - libc6 (>= 2.7-6) + libc6 (>= 2.7-6), + libsort-versions-perl, + vlan Replaces: vyatta-cfg-firewall Suggests: util-linux (>= 2.13-5), net-tools, diff --git a/scripts/VyattaConfigOutput.pm b/scripts/VyattaConfigOutput.pm index b7c5499..2766b64 100755 --- a/scripts/VyattaConfigOutput.pm +++ b/scripts/VyattaConfigOutput.pm @@ -32,6 +32,7 @@ package VyattaConfigOutput; use strict; use lib '/opt/vyatta/share/perl5/'; use VyattaConfig; +use Sort::Versions; # whether to show default values my $show_all = 0; @@ -190,6 +191,7 @@ sub displayDeletedOrigChildren { $dont_show_as_deleted); } elsif (scalar($#cnames) >= 0) { if ($is_tag) { + @cnames = sort versioncmp @cnames; foreach my $cname (@cnames) { if ($cname eq 'node.val') { # should not happen @@ -244,6 +246,7 @@ sub displayChildren { displayValues([ @cur_path, $child ], $prefix, $child); } elsif (scalar($#cnames) >= 0) { if ($is_tag) { + @cnames = sort versioncmp @cnames; foreach my $cname (@cnames) { if ($cname eq 'node.val') { # should not happen -- cgit v1.2.3 From ac2527611ae57dd54edb2d08e26a2b54aeca9dc4 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 2 Apr 2008 16:04:40 -0700 Subject: stop watchlink when address is removed Kludge to work around address watchlink interaction: remove status file. This should fix bug 2802. There may still be problems when multiple addresses are assigned to an interface. The correct fix is to just get rid of the watchlink process and do the management in kernel or zebra. --- scripts/vyatta-interfaces.pl | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) (limited to 'scripts') diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index c60288a..01ddd5e 100755 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -325,6 +325,18 @@ sub update_eth_addrs { exit 1; } +sub if_nametoindex { + my ($intf) = @_; + + open my $sysfs, "<", "/sys/class/net/$intf/ifindex" + || die "Unknown interface $intf"; + my $ifindex = <$sysfs>; + close($sysfs) or die "read sysfs error\n"; + chomp $ifindex; + print "$intf = $ifindex\n"; + return $ifindex; +} + sub delete_eth_addrs { my ($addr, $intf) = @_; @@ -336,8 +348,9 @@ sub delete_eth_addrs { } my $version = is_ip_v4_or_v6($addr); - # If interface has address than delete it if (is_ip_configured($intf, $addr)) { + # Link is up, so just delete address + # Zebra is watching for netlink events and will handle it if ($version == 4) { exec 'ip', 'addr', 'del', $addr, 'dev', $intf; } elsif ($version == 6) { @@ -348,28 +361,12 @@ sub delete_eth_addrs { die "Can't exec ip"; } - # Interface address might have been removed by quagga link going down - # so tell quagga no to restore it on link-detect - my $vtysh; - if ( -x '/usr/bin/vyatta-vtysh' ) { - $vtysh = '/usr/bin/vyatta-vtysh'; - } else { - $vtysh = '/usr/bin/vtysh'; - } + # Destroy watchlink's internal status so it doesn't erronously + # restore the address when link is restored + my $status = '/var/linkstatus/' . if_nametoindex($intf); + unlink($status) or die "can't remove $status"; - my @cmd = (); - if ($version == 4) { - @cmd = ('vtysh', '-c', - "configure terminal; interface $intf; no ip address $intf" ); - } elsif ($version == 6) { - @cmd = ('vtysh', '-c', - "configure terminal; interface $intf; no ip6 address $intf" ); - } else { - die "Bad ip version"; - } - exec $vtysh, @cmd; - - die "Can't exec vtysh"; + exit 0; } sub update_mac { -- cgit v1.2.3 From ab870f61eec0e48c06ee1a5008e8aa0d77a0638e Mon Sep 17 00:00:00 2001 From: Stig Thormodsrud Date: Wed, 2 Apr 2008 18:05:55 -0700 Subject: Add duplicate check to watchlink exclude file. --- scripts/vyatta-watchlink-exclude.pl | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/vyatta-watchlink-exclude.pl b/scripts/vyatta-watchlink-exclude.pl index 048946c..eb9d280 100755 --- a/scripts/vyatta-watchlink-exclude.pl +++ b/scripts/vyatta-watchlink-exclude.pl @@ -112,6 +112,18 @@ sub remove_exclude_line { return @new_lines; } +sub is_exclude_dup { + my ($new_line, @lines) = @_; + + my $frag = substr($new_line, 0, index($new_line, ' #')); + foreach my $line (@lines) { + if (substr($line, 0, index($line, ' #')) eq $frag) { + return 1; + } + } + return 0; +} + # # main @@ -148,7 +160,9 @@ if (defined $opt_id) { } if ($opt_action eq "add") { - push @lines, $new_line; + if (! is_exclude_dup($new_line, @lines)) { + push @lines, $new_line; + } } elsif (defined $opt_intf) { @lines = remove_exclude_line($new_line, @lines); } else { -- cgit v1.2.3 From cac51df000d90b9723abde545450fde66d1d7865 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 3 Apr 2008 17:22:01 -0700 Subject: handle multiple address deletion when link is down More robust fix for Bug 2802. Handle case of multiple addresses and lines in the linkstatus file. Add locking to try and prevent multiple update. --- scripts/vyatta-interfaces.pl | 52 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 11 deletions(-) (limited to 'scripts') diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index 01ddd5e..28b1c14 100755 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -33,9 +33,12 @@ use lib "/opt/vyatta/share/perl5/"; use VyattaConfig; use VyattaMisc; + use Getopt::Long; use POSIX; use NetAddr::IP; +use Tie::File; +use Fcntl qw (:flock); use strict; use warnings; @@ -333,10 +336,14 @@ sub if_nametoindex { my $ifindex = <$sysfs>; close($sysfs) or die "read sysfs error\n"; chomp $ifindex; - print "$intf = $ifindex\n"; + return $ifindex; } +sub htonl { + return unpack('L',pack('N',shift)); +} + sub delete_eth_addrs { my ($addr, $intf) = @_; @@ -347,25 +354,48 @@ sub delete_eth_addrs { exit 0; } my $version = is_ip_v4_or_v6($addr); + if ($version == 6) { + exec 'ip', '-6', 'addr', 'del', $addr, 'dev', $intf + or die "Could not exec ip?"; + } + + ($version == 4) or die "Bad ip version"; if (is_ip_configured($intf, $addr)) { # Link is up, so just delete address # Zebra is watching for netlink events and will handle it - if ($version == 4) { - exec 'ip', 'addr', 'del', $addr, 'dev', $intf; - } elsif ($version == 6) { - exec 'ip', '-6', 'addr', 'del', $addr, 'dev', $intf; - } else { - die "Bad ip version"; - } - die "Can't exec ip"; + exec 'ip', 'addr', 'del', $addr, 'dev', $intf + or die "Could not exec ip?"; } + # Destroy watchlink's internal status so it doesn't erronously # restore the address when link is restored - my $status = '/var/linkstatus/' . if_nametoindex($intf); - unlink($status) or die "can't remove $status"; + my $statusfile = '/var/linkstatus/' . if_nametoindex($intf); + + # Use tie to treat file as array + my $tie = tie my @status, 'Tie::File', $statusfile + or die "can't open $statusfile"; + $tie->flock(LOCK_EX); # Block out watchlink + $tie = undef; # Drop reference so untie will work + + my $ip = NetAddr::IP->new($addr); + my $recno = 0; + foreach my $line (@status) { + chomp $line; + + # The format of watchlink file is host byte order (IPV6??) + my ($ifindex, $raddr, $bcast, $prefix) = split (/,/, $line); + my $laddr = htonl($raddr); + my $this = NetAddr::IP->new("$laddr/$prefix"); + if ($ip eq $this) { + splice @status, $recno, 1; # delete the line + } else { + $recno++; + } + } + untie @status; exit 0; } -- cgit v1.2.3 From 41b4c40773d3fdc7dc9a204973038b1992107031 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Thu, 3 Apr 2008 20:38:02 -0700 Subject: fix for bug 3090: commit "policy" before "protocols" at boot time. --- scripts/VyattaConfigLoad.pm | 1 + 1 file changed, 1 insertion(+) (limited to 'scripts') diff --git a/scripts/VyattaConfigLoad.pm b/scripts/VyattaConfigLoad.pm index c4ce8bd..2efa81e 100755 --- a/scripts/VyattaConfigLoad.pm +++ b/scripts/VyattaConfigLoad.pm @@ -40,6 +40,7 @@ my %config_rank = ( 'protocols static' => 85, 'service ssh' => 84, 'service telnet' => 83, + 'policy' => 82, 'vpn' => 80, ); -- cgit v1.2.3 From 5617681dbb181b66d48164ec74d89f55e370a4d5 Mon Sep 17 00:00:00 2001 From: Stig Thormodsrud Date: Fri, 18 Apr 2008 12:10:56 -0700 Subject: If watchlink isn't running, don't treat it as a fatal error. --- scripts/vyatta-watchlink-exclude.pl | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'scripts') diff --git a/scripts/vyatta-watchlink-exclude.pl b/scripts/vyatta-watchlink-exclude.pl index eb9d280..b7a8916 100755 --- a/scripts/vyatta-watchlink-exclude.pl +++ b/scripts/vyatta-watchlink-exclude.pl @@ -89,7 +89,7 @@ sub remove_exclude_id { } } if ($match < 1) { - die "Error: no match found for $id"; + print "$0: no match found for $id"; } return @new_lines; } @@ -107,7 +107,7 @@ sub remove_exclude_line { } } if ($match < 1) { - die "Error: no match found for $remove_line"; + print "$0: no match found for $remove_line"; } return @new_lines; } @@ -172,7 +172,11 @@ write_exclude_file(@lines); if (defined $opt_signal) { if (! -e $watchlink_pid) { - die "Error: missing pid file [$watchlink_pid]\n"; + # + # watchlink may have been disabled, so don't treat + # this as an error + # + exit 0; } my $pid = `cat $watchlink_pid`; chomp $pid; -- cgit v1.2.3 From b0dd3c96c5e30077a602082c829d4bccf7795252 Mon Sep 17 00:00:00 2001 From: Robert Bays Date: Sat, 19 Apr 2008 11:10:39 -0700 Subject: cycle interface state on IP address assigment to fix static routes --- scripts/vyatta-interfaces.pl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index 28b1c14..abbf6a8 100755 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -319,7 +319,10 @@ sub update_eth_addrs { } if ($version == 4) { - return system("ip addr add $addr broadcast + dev $intf"); + # revert this gruesome hack when quagga static route initialization + # is fixed. + #return system("ip addr add $addr broadcast + dev $intf"); + return system("ip link set $intf down; ip link set $intf up; ip addr add $addr broadcast + dev $intf"); } if ($version == 6) { return system("ip -6 addr add $addr dev $intf"); -- cgit v1.2.3