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(-) 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 41e72b84ece50e0104e2e58c6452fc6012e2c8c3 Mon Sep 17 00:00:00 2001 From: rbalocca Date: Sun, 2 Mar 2008 14:07:10 -0800 Subject: Vyatta-cfg postinst was preventing upgrade --- debian/vyatta-cfg.postinst.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/vyatta-cfg.postinst.in b/debian/vyatta-cfg.postinst.in index 556b1a9..074d57c 100644 --- a/debian/vyatta-cfg.postinst.in +++ b/debian/vyatta-cfg.postinst.in @@ -18,6 +18,6 @@ if [ "$sysconfdir" != "/etc" ]; then done fi -# add group for configure +# add group for configuration, if not already present: +grep '^vyattacfg:' /etc/group >/dev/null || addgroup --system vyattacfg - -- 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(-) 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 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 6b9c47ba408bd10b85cd87c1a61f919e38c2982f Mon Sep 17 00:00:00 2001 From: rbalocca Date: Wed, 5 Mar 2008 12:45:37 -0800 Subject: Fix problems with upgrading (and also fix lintian errors) --- debian/control | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/debian/control b/debian/control index c317ca4..960e9a5 100644 --- a/debian/control +++ b/debian/control @@ -16,7 +16,10 @@ Depends: bash (>= 3.1), bsdutils, vyatta-op, vyatta-config-migrate, - dhcp3-client | vyatta-dhcp3-client + dhcp3-client | vyatta-dhcp3-client, + bsdutils (>=1:2.13), + libc6 (>= 2.7-6) +Replaces: vyatta-cfg-firewall Suggests: util-linux (>= 2.13-5), net-tools, ethtool, -- cgit v1.2.3 From f991ec7d6679fb6ce6c65f18246c0d46a08bf635 Mon Sep 17 00:00:00 2001 From: rbalocca Date: Thu, 6 Mar 2008 12:55:26 -0800 Subject: Fix problems with upgrading (and also fix lintian errors) --- debian/control | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/debian/control b/debian/control index c317ca4..960e9a5 100644 --- a/debian/control +++ b/debian/control @@ -16,7 +16,10 @@ Depends: bash (>= 3.1), bsdutils, vyatta-op, vyatta-config-migrate, - dhcp3-client | vyatta-dhcp3-client + dhcp3-client | vyatta-dhcp3-client, + bsdutils (>=1:2.13), + libc6 (>= 2.7-6) +Replaces: vyatta-cfg-firewall Suggests: util-linux (>= 2.13-5), net-tools, ethtool, -- cgit v1.2.3 From ed83fedcee73473b038cabc1ebc172f085169bd5 Mon Sep 17 00:00:00 2001 From: rbalocca Date: Thu, 6 Mar 2008 12:57:41 -0800 Subject: Remove a dependency listed twice --- debian/control | 1 - 1 file changed, 1 deletion(-) diff --git a/debian/control b/debian/control index 960e9a5..c359bcd 100644 --- a/debian/control +++ b/debian/control @@ -13,7 +13,6 @@ Depends: bash (>= 3.1), procps (>= 1:3.2.7-3), vyatta-quagga | quagga, coreutils (>= 5.97-5.3), - bsdutils, vyatta-op, vyatta-config-migrate, dhcp3-client | vyatta-dhcp3-client, -- 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(-) 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 d85778dbe365f40d1806f24c81756cd7e44e643b Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Mon, 10 Mar 2008 09:04:33 -0700 Subject: Replace VPL with GPLv2 Glendale is licensed under GPL version 2 --- COPYING | 367 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 340 insertions(+), 27 deletions(-) diff --git a/COPYING b/COPYING index 8c03eb3..3912109 100644 --- a/COPYING +++ b/COPYING @@ -1,27 +1,340 @@ -/* - * Package: vyatt-cfg - * - * **** 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) "YEAR" Vyatta, Inc. - * All Rights Reserved. - * - * Author: eng@vyatta.com - * Date: 2007 - * Description: Vyatta configuration system - * - * **** End License **** - * - */ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 of the License, 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. -- 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(-) 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(-) 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(-) 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 e2b8d516969b1863d6e0668ccc5e8ecaf2e30c15 Mon Sep 17 00:00:00 2001 From: Mohit Mehta Date: Tue, 11 Mar 2008 18:05:40 -0700 Subject: CLI tab enhancement at "set interfaces ethernet <> address" - tab gives dhcp if interface hasn't been configured before --- templates/interfaces/ethernet/node.tag/address/node.def | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/interfaces/ethernet/node.tag/address/node.def b/templates/interfaces/ethernet/node.tag/address/node.def index 410c072..79bc6e2 100644 --- a/templates/interfaces/ethernet/node.tag/address/node.def +++ b/templates/interfaces/ethernet/node.tag/address/node.def @@ -4,6 +4,7 @@ help: Configure an IP address for this interface syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr $VAR(@) --dev $VAR(../@)"; "Invalid IP address/prefix [$VAR(@)] for interface $VAR(../@)" update:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-update $VAR(@) --dev $VAR(../@)"; "Error setting address $VAR(@) on interface $VAR(../@)" delete:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-delete $VAR(@) --dev $VAR(../@)"; "Error deleting address $VAR(@) on interface $VAR(../@)" +allowed: echo "dhcp" comp_help:Possible completions: /\tSet the IP address and prefix length dhcp\t\t\t\tSet the IP address and prefix length via DHCP -- cgit v1.2.3 From 9cb73b42bf97b3978c34290825a715b6400536bc Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Tue, 11 Mar 2008 23:38:11 -0700 Subject: add LESSSECURE --- etc/default/vyatta-cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/etc/default/vyatta-cfg b/etc/default/vyatta-cfg index ef02233..d801239 100644 --- a/etc/default/vyatta-cfg +++ b/etc/default/vyatta-cfg @@ -43,6 +43,7 @@ if [ $is_admin == 1 ]; then else # no need to check is_users since there are only 2 levels for now declare -x -r VYATTA_USER_LEVEL_DIR=${vyatta_sysconfdir}/shell/level/users + declare -x -r LESSSECURE=1 fi } 2>/dev/null || : -- cgit v1.2.3 From ee9178c72e1fff0eff2932297f039eb0345f26b1 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Wed, 12 Mar 2008 14:43:24 -0700 Subject: partial fix for bug 2987: use "less" instead of "more", and disable "terminal" command for operator level. --- etc/default/vyatta-cfg | 1 + etc/shell/level/users/allowed-op | 1 - etc/shell/level/users/allowed-pipe | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/default/vyatta-cfg b/etc/default/vyatta-cfg index d801239..7d189d8 100644 --- a/etc/default/vyatta-cfg +++ b/etc/default/vyatta-cfg @@ -44,6 +44,7 @@ else # no need to check is_users since there are only 2 levels for now declare -x -r VYATTA_USER_LEVEL_DIR=${vyatta_sysconfdir}/shell/level/users declare -x -r LESSSECURE=1 + alias more=less fi } 2>/dev/null || : diff --git a/etc/shell/level/users/allowed-op b/etc/shell/level/users/allowed-op index 498d120..4c8d16f 100644 --- a/etc/shell/level/users/allowed-op +++ b/etc/shell/level/users/allowed-op @@ -8,7 +8,6 @@ reboot set show telnet -terminal traceroute undebug vpn diff --git a/etc/shell/level/users/allowed-pipe b/etc/shell/level/users/allowed-pipe index 3204ef3..2d92acc 100644 --- a/etc/shell/level/users/allowed-pipe +++ b/etc/shell/level/users/allowed-pipe @@ -1,4 +1,4 @@ -more +less 1 no-more 1 -- cgit v1.2.3 From 58dac8aa8edab4f904c9a621ad20c016f2b7bda5 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Wed, 12 Mar 2008 15:03:11 -0700 Subject: handle "<*>" allowed values --- etc/bash_completion.d/20vyatta-cfg | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/etc/bash_completion.d/20vyatta-cfg b/etc/bash_completion.d/20vyatta-cfg index 463b383..4ad86ce 100755 --- a/etc/bash_completion.d/20vyatta-cfg +++ b/etc/bash_completion.d/20vyatta-cfg @@ -440,8 +440,14 @@ vyatta_parse_tmpl () vyatta_cfg_comp_help=$(vyatta_parse_tmpl_comp_fields $1 "comp_help") if (( ${#vyatta_cfg_allowed[@]} == 0 )); then - local ares=$(eval "$acmd") - eval "vyatta_cfg_allowed=( $ares )" + local -a ares=( $(eval "$acmd") ) + for (( i=0 ; i<${#ares[@]} ; i++ )); do + if [[ "${ares[i]}" != \<*\> ]]; then + vyatta_cfg_allowed+=( "${ares[i]}" ) + else + vyatta_cfg_allowed+=( "" ) + fi + done fi if [ -z "$vyatta_cfg_help" ]; then vyatta_cfg_help='' -- cgit v1.2.3 From 19c692e171e9542f977183a44e258fb9ab105a8b Mon Sep 17 00:00:00 2001 From: Mohit Mehta Date: Wed, 12 Mar 2008 16:46:47 -0700 Subject: CLI tab enhancement at "set interfaces ethernet <> address" - tab gives dhcp if interface hasn't been configured before. handle "<*>" allowed values. --- templates/interfaces/ethernet/node.tag/address/node.def | 2 +- templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/templates/interfaces/ethernet/node.tag/address/node.def b/templates/interfaces/ethernet/node.tag/address/node.def index 79bc6e2..23b1262 100644 --- a/templates/interfaces/ethernet/node.tag/address/node.def +++ b/templates/interfaces/ethernet/node.tag/address/node.def @@ -4,7 +4,7 @@ help: Configure an IP address for this interface syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr $VAR(@) --dev $VAR(../@)"; "Invalid IP address/prefix [$VAR(@)] for interface $VAR(../@)" update:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-update $VAR(@) --dev $VAR(../@)"; "Error setting address $VAR(@) on interface $VAR(../@)" delete:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-delete $VAR(@) --dev $VAR(../@)"; "Error deleting address $VAR(@) on interface $VAR(../@)" -allowed: echo "dhcp" +allowed: echo "dhcp <>" comp_help:Possible completions: /\tSet the IP address and prefix length dhcp\t\t\t\tSet the IP address and prefix length via DHCP diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def index 6653727..a33818f 100644 --- a/templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def +++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def @@ -4,6 +4,7 @@ help: Configure an IP address for this interface syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr $VAR(@) --dev $VAR(../../@).$VAR(../@) "; "Invalid IP address/prefix [$VAR(@)] for interface $VAR(../../@).$VAR(../@)" create:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-update $VAR(@) --dev $VAR(../../@).$VAR(../@) "; "Error setting address $VAR(@) on dev $VAR(../../@).$VAR(../@) " delete:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-delete $VAR(@) --dev $VAR(../../@).$VAR(../@) "; "Error deleting address $VAR(@) on dev $VAR(../../@).$VAR(../@) " +allowed: echo "dhcp <>" comp_help:Possible completions: / Set the IP address and prefix length dhcp Set the IP address and prefix length via DHCP -- cgit v1.2.3 From 0b2a533b973b3d92f1292470cd07338d9cf157ed Mon Sep 17 00:00:00 2001 From: Robert Bays Date: Fri, 14 Mar 2008 13:18:45 -0700 Subject: fix for bugs 2725 and 2999 --- Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.am b/Makefile.am index 2879932..a309d34 100644 --- a/Makefile.am +++ b/Makefile.am @@ -42,6 +42,7 @@ sbin_SCRIPTS += scripts/vyatta-load-config.pl 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 share_perl5_SCRIPTS = scripts/VyattaConfig.pm share_perl5_SCRIPTS += scripts/VyattaConfigDOMTree.pm -- 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 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(-) 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 a5b5ad6f5074dd165d777b2a310d609f111e1d9f Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Tue, 18 Mar 2008 10:21:03 -0700 Subject: Don't allow operator to run init-floppy Bugfix: 2985 --- etc/shell/level/users/allowed-op | 1 - 1 file changed, 1 deletion(-) diff --git a/etc/shell/level/users/allowed-op b/etc/shell/level/users/allowed-op index 4c8d16f..724c235 100644 --- a/etc/shell/level/users/allowed-op +++ b/etc/shell/level/users/allowed-op @@ -1,7 +1,6 @@ clear debug exit -init-floppy no ping reboot -- cgit v1.2.3 From 047e1b4b5a0a3265de6631c4266b78ca94422011 Mon Sep 17 00:00:00 2001 From: Bob Gilligan Date: Tue, 18 Mar 2008 11:59:50 -0700 Subject: Bugfix: 2986 Fix typo in arguments to "mount" command. --- src/delete.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/delete.c b/src/delete.c index b62a697..bb36fd1 100644 --- a/src/delete.c +++ b/src/delete.c @@ -28,7 +28,7 @@ static void remove_rf(boolean do_umount) command = my_malloc(strlen(get_mdirp()) + strlen(get_cdirp()) + strlen(get_mdirp()) + 100, "delete"); - sprintf(command, "sudo mount -t $UNIONFS -o dirs=%s=rw:%s=ro:" + sprintf(command, "sudo mount -t $UNIONFS -o dirs=%s=rw:%s=ro" " $UNIONFS %s", get_cdirp(), get_adirp(), get_mdirp()); system(command); free(command); -- cgit v1.2.3 From 520fc1ba6d76963d3483d74f7699108fc684a804 Mon Sep 17 00:00:00 2001 From: Mark O'Brien Date: Tue, 18 Mar 2008 16:59:41 -0700 Subject: VC4.0.1 --- debian/changelog | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/debian/changelog b/debian/changelog index 5f9affd..b351910 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,56 @@ +vyatta-cfg (0.3) unstable; urgency=low + + VC4.0.1 + [ Mark O'Brien ] + + + [ An-Cheng Huang ] + * fix for bug 2868: return failure for invalid values. + * fix for bug 2749: add u32 range check + * fix for bug 2912: direct config loading output to syslog. + * fix for bug 2924: set admin flag for root + * fix for bug 2950: raise config error messages during boot to warning + level. + * add LESSSECURE + * partial fix for bug 2987: use "less" instead of "more", and disable + * handle "<*>" allowed values + + [ Bob Gilligan ] + * Bugfix: 2653 + * Bugfix: 2885 + * Bugfix: 2986 + + [ Christopher Liljenstolpe ] + * Fix 2954: IPv6 addresses that have a-f in the address fail. + + [ Mohit Mehta ] + * CLI tab enhancement at "set interfaces ethernet <> address" + * CLI tab enhancement at "set interfaces ethernet <> address" + + [ Robert Bays ] + * fix for bugs 2725 and 2999 + * fix for bugs 2725 2999 + + [ Stephen Hemminger ] + * Read qos-policy before setting interface qos-policy + * Replace VPL with GPLv2 + * Convert from VPL 1.0 to GPLv2 + * more robust handling of set mac address + * Don't allow operator to run init-floppy + + [ rbalocca ] + * Merge changelog fix to glendale + * Vyatta-cfg postinst was preventing upgrade + * Add VPL to scripts and fix lintian errors + * Fix problems with upgrading (and also fix lintian errors) + * Fix problems with upgrading (and also fix lintian errors) + * Remove a dependency listed twice + * Add GPLv2 to additional Vyatta created scripts + + [ Mark O'Brien ] + + -- Mark O'Brien Tue, 18 Mar 2008 16:59:41 -0700 + vyatta-cfg (0.2) unstable; urgency=low vc4.0.0 -- cgit v1.2.3 From dd649c9b86b3e58376a8b0b3c337cacf8eef9918 Mon Sep 17 00:00:00 2001 From: Mark O'Brien Date: Tue, 18 Mar 2008 19:04:10 -0700 Subject: 3.0.1 --- debian/changelog | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/debian/changelog b/debian/changelog index 5f9affd..70b2ab0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,56 @@ +vyatta-cfg (0.3) unstable; urgency=low + + 3.0.1 + [ Mark O'Brien ] + + + [ An-Cheng Huang ] + * fix for bug 2868: return failure for invalid values. + * fix for bug 2749: add u32 range check + * fix for bug 2912: direct config loading output to syslog. + * fix for bug 2924: set admin flag for root + * fix for bug 2950: raise config error messages during boot to warning + level. + * add LESSSECURE + * partial fix for bug 2987: use "less" instead of "more", and disable + * handle "<*>" allowed values + + [ Bob Gilligan ] + * Bugfix: 2653 + * Bugfix: 2885 + * Bugfix: 2986 + + [ Christopher Liljenstolpe ] + * Fix 2954: IPv6 addresses that have a-f in the address fail. + + [ Mohit Mehta ] + * CLI tab enhancement at "set interfaces ethernet <> address" + * CLI tab enhancement at "set interfaces ethernet <> address" + + [ Robert Bays ] + * fix for bugs 2725 and 2999 + * fix for bugs 2725 2999 + + [ Stephen Hemminger ] + * Read qos-policy before setting interface qos-policy + * Replace VPL with GPLv2 + * Convert from VPL 1.0 to GPLv2 + * more robust handling of set mac address + * Don't allow operator to run init-floppy + + [ rbalocca ] + * Merge changelog fix to glendale + * Vyatta-cfg postinst was preventing upgrade + * Add VPL to scripts and fix lintian errors + * Fix problems with upgrading (and also fix lintian errors) + * Fix problems with upgrading (and also fix lintian errors) + * Remove a dependency listed twice + * Add GPLv2 to additional Vyatta created scripts + + [ Mark O'Brien ] + + -- Mark O'Brien Tue, 18 Mar 2008 19:04:10 -0700 + vyatta-cfg (0.2) unstable; urgency=low vc4.0.0 -- cgit v1.2.3 From 50ee96499609f9bd229e6d06a7ce57a17e9e4c52 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Thu, 20 Mar 2008 10:18:39 -0700 Subject: fix for bug 3037: shell completion --- etc/bash_completion.d/20vyatta-cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/etc/bash_completion.d/20vyatta-cfg b/etc/bash_completion.d/20vyatta-cfg index 4ad86ce..7968cec 100755 --- a/etc/bash_completion.d/20vyatta-cfg +++ b/etc/bash_completion.d/20vyatta-cfg @@ -440,7 +440,8 @@ vyatta_parse_tmpl () vyatta_cfg_comp_help=$(vyatta_parse_tmpl_comp_fields $1 "comp_help") if (( ${#vyatta_cfg_allowed[@]} == 0 )); then - local -a ares=( $(eval "$acmd") ) + astr=$(eval "$acmd") + eval "ares=( $astr )" for (( i=0 ; i<${#ares[@]} ; i++ )); do if [[ "${ares[i]}" != \<*\> ]]; then vyatta_cfg_allowed+=( "${ares[i]}" ) -- 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(+) 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 a1a664266381ee6290f22213dc415960ec24b267 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Thu, 20 Mar 2008 18:25:42 -0700 Subject: handle <> completion correctly --- etc/bash_completion.d/20vyatta-cfg | 2 ++ 1 file changed, 2 insertions(+) diff --git a/etc/bash_completion.d/20vyatta-cfg b/etc/bash_completion.d/20vyatta-cfg index 7968cec..f979939 100755 --- a/etc/bash_completion.d/20vyatta-cfg +++ b/etc/bash_completion.d/20vyatta-cfg @@ -441,6 +441,8 @@ vyatta_parse_tmpl () if (( ${#vyatta_cfg_allowed[@]} == 0 )); then astr=$(eval "$acmd") + astr=${astr///\\>} eval "ares=( $astr )" for (( i=0 ; i<${#ares[@]} ; i++ )); do if [[ "${ares[i]}" != \<*\> ]]; then -- cgit v1.2.3 From 23104e6a58525f2dbd41152bf22615bb8d257278 Mon Sep 17 00:00:00 2001 From: rbalocca Date: Fri, 21 Mar 2008 16:38:29 -0700 Subject: Fix debian dependencies --- debian/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/control b/debian/control index c359bcd..ddad8da 100644 --- a/debian/control +++ b/debian/control @@ -7,13 +7,13 @@ Standards-Version: 3.7.2 Package: vyatta-cfg Architecture: any -Depends: bash (>= 3.1), - sed (>= 4.1.5), +Depends: sed (>= 4.1.5), perl (>= 5.8.8), procps (>= 1:3.2.7-3), vyatta-quagga | quagga, coreutils (>= 5.97-5.3), vyatta-op, + vyatta-bash, vyatta-config-migrate, dhcp3-client | vyatta-dhcp3-client, bsdutils (>=1:2.13), -- 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(+) 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 dedc3083522c70de84db4d2e7bef21998debd18f Mon Sep 17 00:00:00 2001 From: rbalocca Date: Mon, 24 Mar 2008 18:14:04 -0700 Subject: Set dependencies on either bash or vyatta-bash --- debian/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/control b/debian/control index ddad8da..308105a 100644 --- a/debian/control +++ b/debian/control @@ -10,10 +10,10 @@ Architecture: any Depends: sed (>= 4.1.5), perl (>= 5.8.8), procps (>= 1:3.2.7-3), - vyatta-quagga | quagga, coreutils (>= 5.97-5.3), + vyatta-bash | bash (>= 3.1), + vyatta-quagga | quagga, vyatta-op, - vyatta-bash, vyatta-config-migrate, dhcp3-client | vyatta-dhcp3-client, bsdutils (>=1:2.13), -- 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(+) 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 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 06702f2ed04408962d7e8e6323db97e29dd32669 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Mon, 31 Mar 2008 16:40:33 -0700 Subject: fix for bug 2675: correctly detect newly created config nodes. --- src/commit.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/commit.c b/src/commit.c index 980a98b..8fbc1d6 100644 --- a/src/commit.c +++ b/src/commit.c @@ -747,17 +747,16 @@ static boolean commit_delete_child(vtw_def *pdefp, char *child, mark_paths(&mark); if (!deleting) { int status; - /* are we marked with opaque */ push_path(&m_path, child); - push_path(&m_path, opaque_name); + switch_path(APATH); /* switch to active */ status = lstat(m_path.path, &statbuf); + switch_path(CPATH); /* back to changes */ pop_path(&m_path); - pop_path(&m_path); - if (status >= 0) { - /* brand new directory, nothing is - deleted there; - update will handle txn (both begin and end) - */ + if (status < 0) { + /* node doesn't exist in active config. it's newly created + * so we don't need to handle delete. update will handle the + * transaction (if any). + */ return TRUE; } } -- 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(-) 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(-) 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(-) 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(-) 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(-) 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 bcdf7826a9e29cd48627ffb57b665fcad9a714fa Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Thu, 3 Apr 2008 12:19:50 -0700 Subject: code cleanup (remove some evil copy-and-paste instances). --- src/commit.c | 206 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 113 insertions(+), 93 deletions(-) diff --git a/src/commit.c b/src/commit.c index 8fbc1d6..6ed8632 100644 --- a/src/commit.c +++ b/src/commit.c @@ -53,6 +53,23 @@ static void make_dir() } #endif +static struct dirent * +get_next_filtered_dirent(DIR *dp, int exclude_wh) +{ + struct dirent *dirp = NULL; + while ((dirp = readdir(dp)) != NULL) { + if (strcmp(dirp->d_name, ".") == 0 || strcmp(dirp->d_name, "..") == 0 + || strcmp(dirp->d_name, MOD_NAME) == 0 + || strcmp(dirp->d_name, opaque_name) == 0 + || (exclude_wh && strncmp(dirp->d_name, ".wh.", 4) == 0)) { + continue; + } else { + return dirp; + } + } + return dirp; +} + /************************************************* validate_dir_for_commit: validate value.value if there is one, validate @@ -114,16 +131,7 @@ static boolean validate_dir_for_commit() push_path(&t_path, tag_name); /* PUSH 2a */ } - while ((dirp = readdir(dp)) != NULL) { - - if (strcmp(dirp->d_name, ".") == 0 || - strcmp(dirp->d_name, "..") == 0 || - strcmp(dirp->d_name, MOD_NAME) == 0 || - strcmp(dirp->d_name, opaque_name) == 0 || - strncmp(dirp->d_name, ".wh.", 4) == 0) { - continue; /*ignore dot and dot-dot*/ - } - + while ((dirp = get_next_filtered_dirent(dp, 1)) != NULL) { subdirs_number++; if(uename) @@ -916,25 +924,82 @@ static boolean commit_delete_child(vtw_def *pdefp, char *child, return ok; } +/* add a value to the valstruct. struct must be initialized (memset 0). + * cp: pointer to value + * type: type of value + */ +static void +valstruct_append(valstruct *mvals, char *cp, vtw_type_e type) +{ + if (!(mvals->free_me)) { + /* empty struct. add 1st value */ + mvals->free_me = TRUE; + mvals->val = cp; + mvals->val_type = type; + } else { + if ((mvals->cnt % MULTI_ALLOC) == 0) { + /* convert into multivalue */ + mvals->vals = my_realloc(mvals->vals, (mvals->cnt + MULTI_ALLOC) + * sizeof(char *), "add_value"); + if (mvals->cnt == 0) { /* single value - convert */ + mvals->vals[0] = mvals->val; + mvals->cnt= 1; + mvals->val = NULL; + } + } + mvals->vals[mvals->cnt] = cp; + ++mvals->cnt; + } +} + +/* get the filtered directory listing and put the names in valstruct. + * dp: target directory + * mvals: structure for storing the names + * type: type of the names + * exclude_wh: exclude whiteouts + */ +static void +get_filtered_directory_listing(DIR *dp, valstruct *mvals, vtw_type_e type, + int exclude_wh) +{ + struct dirent *dirp = NULL; + char *cp = NULL; + + memset(mvals, 0, sizeof (valstruct)); + while ((dirp = get_next_filtered_dirent(dp, exclude_wh)) != NULL) { + cp = clind_unescape(dirp->d_name); + valstruct_append(mvals, cp, type); + } +} + static boolean commit_delete_children(vtw_def *defp, boolean deleting, boolean in_txn) { - DIR *dp; - int status; - struct dirent *dirp; + DIR *dp, *adp = NULL, *mdp = NULL; boolean ok = TRUE; char *child; vtw_type_e type; - valstruct mvals; - boolean first; - char *cp; + valstruct mvals, valsA, valsM; int elem, curi; vtw_sorted cur_sorted; - char *uename = NULL; + + if (!deleting) { + switch_path(APATH); /* switch to active */ + if ((adp = opendir(m_path.path)) == NULL) { + INTERNAL; + } + switch_path(MPATH); /* switch to modified */ + if ((mdp = opendir(m_path.path)) == NULL) { + INTERNAL; + } + switch_path(CPATH); /* back to changes */ + } if ((dp = opendir(m_path.path)) == NULL){ - if (deleting) + if (deleting) { + /* deleting. adp & mdp are not opened so no need to close. */ return TRUE; + } INTERNAL; } if (defp) @@ -943,46 +1008,37 @@ static boolean commit_delete_children(vtw_def *defp, boolean deleting, type = TEXT_TYPE; if (type == ERROR_TYPE) type = TEXT_TYPE; - first = TRUE; memset(&mvals, 0, sizeof (valstruct)); + memset(&valsA, 0, sizeof (valstruct)); + memset(&valsM, 0, sizeof (valstruct)); memset(&cur_sorted, 0, sizeof(vtw_sorted)); - while ((dirp = readdir(dp)) != NULL) { - child = dirp->d_name; - if (strcmp(child, ".") == 0 || - strcmp(child, "..") == 0 || - strcmp(child, MOD_NAME) == 0 || - strcmp(child, OPQ_NAME) == 0) - continue; - uename = clind_unescape(child); - cp = uename; - if (first) { - mvals.free_me = TRUE; - mvals.val = cp; - mvals.val_type = type; - first = FALSE; - } else { - if (mvals.cnt%MULTI_ALLOC == 0) { - /* convert into multivalue */ - mvals.vals = my_realloc(mvals.vals, - (mvals.cnt + MULTI_ALLOC) * - sizeof(char *), "add_value"); - if (mvals.cnt == 0) { /* single value - convert */ - mvals.vals[0] = mvals.val; - mvals.cnt= 1; - mvals.val = NULL; - } - } - mvals.vals[mvals.cnt] = cp; - ++mvals.cnt; + get_filtered_directory_listing(dp, &mvals, type, 0); + if (closedir(dp) != 0) { + INTERNAL; + } + if (adp) { + get_filtered_directory_listing(adp, &valsA, type, 0); + if (closedir(adp) != 0) { + INTERNAL; } } - status = closedir(dp); - if (status) - INTERNAL; - if (first) { + if (mdp) { + get_filtered_directory_listing(mdp, &valsM, type, 0); + if (closedir(mdp) != 0) { + INTERNAL; + } + } + + if (!(mvals.free_me)) { + /* empty struct. nothing to do. */ return TRUE; } + /* XXX TODO */ + /* for each "node" in A but not in M + * if ".wh.node" is not in mvals + * add ".wh.node" to mvals + */ vtw_sort(&mvals, &cur_sorted); for (curi = 0; curi < cur_sorted.num && ok; ++curi){ if (type == TEXT_TYPE || @@ -1006,18 +1062,12 @@ static boolean commit_update_children(vtw_def *defp, boolean creating, boolean in_txn, boolean *parent_update) { DIR *dp; - int status; - struct dirent *dirp; boolean ok = TRUE; char *child; vtw_type_e type; valstruct mvals; - boolean first; - char *cp; int elem, curi; vtw_sorted cur_sorted; - char *uename = NULL; - if ((dp = opendir(m_path.path)) == NULL){ printf("%s:%d: opendir error: path=%s\n", @@ -1033,43 +1083,14 @@ static boolean commit_update_children(vtw_def *defp, boolean creating, type = TEXT_TYPE; if (type == ERROR_TYPE) type = TEXT_TYPE; - first = TRUE; - while ((dirp = readdir(dp)) != NULL) { - child = dirp->d_name; - if (strcmp(child, ".") == 0 || - strcmp(child, "..") == 0 || - strcmp(child, MOD_NAME) == 0 || - strcmp(child, OPQ_NAME) == 0) - continue; - cp = uename = clind_unescape(child); - if (first) { - mvals.free_me = TRUE; - mvals.val = cp; - mvals.val_type = type; - first = FALSE; - } else { - if (mvals.cnt%MULTI_ALLOC == 0) { - /* convert into multivalue */ - mvals.vals = my_realloc(mvals.vals, - (mvals.cnt + MULTI_ALLOC) * - sizeof(char *), "add_value"); - if (mvals.cnt == 0) { /* single value - convert */ - mvals.vals[0] = mvals.val; - mvals.cnt= 1; - mvals.val = NULL; - } - } - mvals.vals[mvals.cnt] = cp; - ++mvals.cnt; - } - } - status = closedir(dp); - if (status) + get_filtered_directory_listing(dp, &mvals, type, 0); + if (closedir(dp) != 0) { INTERNAL; - if (first) { - if (uename) - my_free(uename); + } + + if (!(mvals.free_me)) { + /* empty struct. nothing to do. */ return TRUE; } vtw_sort(&mvals, &cur_sorted); @@ -1164,7 +1185,6 @@ static boolean commit_value(vtw_def *defp, char *cp, /* act_value will be freed by freeing cur_value do not zero out it here */ } - acti = 0; curi = 0; total = act_sorted.num + cur_sorted.num; -- cgit v1.2.3 From 9158b59fd7cdd018a5c9b1e36c097b0436fd02a4 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Thu, 3 Apr 2008 15:09:34 -0700 Subject: fix for bug 3097: correctly detect deleted tag --- src/commit.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 88 insertions(+), 8 deletions(-) diff --git a/src/commit.c b/src/commit.c index 6ed8632..534757c 100644 --- a/src/commit.c +++ b/src/commit.c @@ -972,6 +972,65 @@ get_filtered_directory_listing(DIR *dp, valstruct *mvals, vtw_type_e type, } } +/* check if a value is one of those in a valstruct. + * cp: pointer to value + * vals: pointer to valstruct + * + * return 1 if yes, 0 otherwise. + * TODO: optimization + */ +static int +is_val_in_valstruct(char *cp, valstruct *vals) +{ + int i = 0; + if (!(vals->free_me)) { + /* empty struct. */ + return 0; + } + if (vals->cnt == 0) { + /* single-value struct */ + if (strcmp(cp, vals->val) == 0) { + return 1; + } + return 0; + } + /* multi-value */ + for (i = 0; i < vals->cnt; i++) { + if (strcmp(cp, vals->vals[i]) == 0) { + return 1; + } + } + return 0; +} + +/* returns the value at a particular index in a valstruct. + * vals: pointer to the valstruct + * idx: index of the value + * + * return pointer to the value, NULL if idx is not valid. + */ +static char * +idx_val_in_valstruct(valstruct *vals, int idx) +{ + if (!(vals->free_me)) { + /* empty struct. */ + return NULL; + } + if (vals->cnt == 0) { + /* single-value struct */ + if (idx == 0) { + return vals->val; + } + return NULL; + } + /* multi-value */ + if ((idx < 0) || (idx >= vals->cnt)) { + return NULL; + } + return vals->vals[idx]; +} + + static boolean commit_delete_children(vtw_def *defp, boolean deleting, boolean in_txn) { @@ -1013,32 +1072,53 @@ static boolean commit_delete_children(vtw_def *defp, boolean deleting, memset(&valsM, 0, sizeof (valstruct)); memset(&cur_sorted, 0, sizeof(vtw_sorted)); + /* changes directory */ get_filtered_directory_listing(dp, &mvals, type, 0); if (closedir(dp) != 0) { INTERNAL; } - if (adp) { + + if (adp && mdp) { + /* active directory */ get_filtered_directory_listing(adp, &valsA, type, 0); if (closedir(adp) != 0) { INTERNAL; } - } - if (mdp) { + /* modified directory */ get_filtered_directory_listing(mdp, &valsM, type, 0); if (closedir(mdp) != 0) { INTERNAL; } + + if (valsA.free_me) { + /* A is not empty */ + int idx = 0; + char *cp = NULL; + for (idx = 0; (cp = idx_val_in_valstruct(&valsA, idx)); idx++) { + if (!is_val_in_valstruct(cp, &valsM)) { + /* cp is in A but not in M */ + /* construct whiteout name */ + char *wh_name = my_malloc(strlen(cp) + 4 + 1, "del_children"); + strcpy(wh_name, ".wh."); + strcpy(wh_name + 4, cp); + if (!is_val_in_valstruct(wh_name, &mvals)) { + /* whiteout not in C */ + /* add whiteout to mvals */ + valstruct_append(&mvals, wh_name, type); + } + } + } + free_val(&valsA); + } + if (valsM.free_me) { + free_val(&valsM); + } } if (!(mvals.free_me)) { /* empty struct. nothing to do. */ return TRUE; } - /* XXX TODO */ - /* for each "node" in A but not in M - * if ".wh.node" is not in mvals - * add ".wh.node" to mvals - */ vtw_sort(&mvals, &cur_sorted); for (curi = 0; curi < cur_sorted.num && ok; ++curi){ if (type == TEXT_TYPE || -- 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(-) 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(+) 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 dd4c7f784fe4eebb874fb023318910e3665e00bd Mon Sep 17 00:00:00 2001 From: Mark O'Brien Date: Fri, 4 Apr 2008 18:00:44 -0700 Subject: 3.0.2 --- debian/changelog | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/debian/changelog b/debian/changelog index 38a5169..ffccaeb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,43 @@ +vyatta-cfg (0.4) unstable; urgency=low + + 3.0.2 + [ Mark O'Brien ] + + + [ An-Cheng Huang ] + * fix for bug 3037: shell completion + * add validation for more types + * handle <> completion correctly + * startup config ordering + * fix for bug 3032: + * fix for bug 2675: correctly detect newly created config nodes. + * add function to delete watchlink exclude entries based on ID. + * fix for bug 2689: sort tag nodes appropriately + * code cleanup (remove some evil copy-and-paste instances). + * fix for bug 3097: correctly detect deleted tag + * fix for bug 3090: commit "policy" before "protocols" at boot time. + + [ Mark O'Brien ] + * 3.0.1 + + [ Stephen Hemminger ] + * handle delete address request if address is already removed + * stop watchlink when address is removed + * handle multiple address deletion when link is down + + [ Stig Thormodsrud ] + * Add utilitly script to add/removed entries to watchlink exclude + file. + * Add duplicate check to watchlink exclude file. + + [ rbalocca ] + * Fix debian dependencies + * Set dependencies on either bash or vyatta-bash + + [ Mark O'Brien ] + + -- Mark O'Brien Fri, 04 Apr 2008 18:00:44 -0700 + vyatta-cfg (0.3) unstable; urgency=low VC4.0.1 -- cgit v1.2.3 From aefffdc38e5df3a74e3799e397fd48b17a88d1f2 Mon Sep 17 00:00:00 2001 From: Stig Thormodsrud Date: Mon, 14 Apr 2008 11:50:31 -0700 Subject: Fix 3034: Loopback interface controlled by "ethernet lo" --- templates/interfaces/ethernet/node.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/interfaces/ethernet/node.def b/templates/interfaces/ethernet/node.def index eee64cd..baf824b 100644 --- a/templates/interfaces/ethernet/node.def +++ b/templates/interfaces/ethernet/node.def @@ -2,7 +2,7 @@ tag: type: txt help: Ethernet interface name syntax:expression: exec " \ - if [ -z \"`ip link | egrep -v 'eth[0-9]+[.]' | grep $VAR(@)`\" ]; then \ + if [ -z \"`ip link | grep eth | egrep -v 'eth[0-9]+[.]' | grep $VAR(@)`\" ]; then \ echo Invalid ethernet interface [$VAR(@)]; \ exit 1 ; \ fi ; " -- cgit v1.2.3 From 39f2c4e968b4578a33dd0ee55241fb042b2fdadb Mon Sep 17 00:00:00 2001 From: Mark O'Brien Date: Wed, 16 Apr 2008 09:50:08 -0700 Subject: VC4.0.2 --- debian/changelog | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/debian/changelog b/debian/changelog index ffccaeb..4318bf5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +vyatta-cfg (0.5) unstable; urgency=low + + VC4.0.2 + [ Mark O'Brien ] + + + [ Stig Thormodsrud ] + * Fix 3034: Loopback interface controlled by "ethernet lo" + + [ Mark O'Brien ] + + -- Mark O'Brien Wed, 16 Apr 2008 09:50:08 -0700 + vyatta-cfg (0.4) unstable; urgency=low 3.0.2 -- cgit v1.2.3 From fd5ebf6b81c2273ba77f66c7e9b17856b462ef01 Mon Sep 17 00:00:00 2001 From: Robert Bays Date: Fri, 18 Apr 2008 11:21:15 -0700 Subject: fix for bug 3177 --- templates/interfaces/ethernet/node.tag/vif/node.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/interfaces/ethernet/node.tag/vif/node.def b/templates/interfaces/ethernet/node.tag/vif/node.def index 73958be..6a367f6 100644 --- a/templates/interfaces/ethernet/node.tag/vif/node.def +++ b/templates/interfaces/ethernet/node.tag/vif/node.def @@ -5,7 +5,7 @@ syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 4094; "VLAN ID must be between 0 a create:expression: "sudo modprobe 8021q"; "Error loading 802.1q driver" create:expression: "sudo vconfig add $VAR(../@) $VAR(@)"; "Error adding VLAN id $VAR(@) to dev $VAR(../@)" create:expression: "sudo ip link set $VAR(../@).$VAR(@) up"; "Error enabling VLAN id $VAR(@) on dev $VAR(../@)" -update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\"\ +create:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\"\ -c \"interface $VAR(../@).$VAR(@)\" \ -c \"link-detect\"; " delete:expression: "sudo vconfig rem $VAR(../@).$VAR(@)"; "Error removing VLAN id $VAR(@) from dev $VAR(../@)" -- 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(-) 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(-) 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 From 29866c17c545126eadeb7b235668056801b811c9 Mon Sep 17 00:00:00 2001 From: Mark O'Brien Date: Sat, 19 Apr 2008 11:56:07 -0700 Subject: VC4.0.2 --- debian/changelog | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/debian/changelog b/debian/changelog index 4318bf5..56aa7f2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,20 @@ +vyatta-cfg (0.6) unstable; urgency=low + + VC4.0.2 + [ Mark O'Brien ] + + + [ Robert Bays ] + * fix for bug 3177 + * cycle interface state on IP address assigment to fix static routes + + [ Stig Thormodsrud ] + * If watchlink isn't running, don't treat it as a fatal error. + + [ Mark O'Brien ] + + -- Mark O'Brien Sat, 19 Apr 2008 11:56:07 -0700 + vyatta-cfg (0.5) unstable; urgency=low VC4.0.2 -- cgit v1.2.3 From 7fd560b72df1b327b4b47a6232dfcf16d6fae52c Mon Sep 17 00:00:00 2001 From: rbalocca Date: Mon, 21 Apr 2008 12:30:23 -0700 Subject: Indicate the VC4.0.2 release candidate in the changelog --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 56aa7f2..e1076c5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -17,7 +17,7 @@ vyatta-cfg (0.6) unstable; urgency=low vyatta-cfg (0.5) unstable; urgency=low - VC4.0.2 + VC4.0.2 release candidate [ Mark O'Brien ] -- cgit v1.2.3