summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Larson <slioch@slioch.vyatta.com>2010-08-19 17:48:53 -0700
committerMichael Larson <slioch@slioch.vyatta.com>2010-08-19 17:48:53 -0700
commit63b71c2c9f140897f1597eb3223b50df96adf67a (patch)
tree17b3539c8ad73f78c4df09338b40e4f7924d45bb
parenta785fe685d9fa0edd813e2a53f1ebbc227ba2c7f (diff)
downloadvyatta-cfg-quagga-63b71c2c9f140897f1597eb3223b50df96adf67a.tar.gz
vyatta-cfg-quagga-63b71c2c9f140897f1597eb3223b50df96adf67a.zip
larkspur fix for bug 6069.
set first tmp file on first visitation. clean up other files in etc/commit hook.
-rw-r--r--Makefile.am2
-rw-r--r--debian/vyatta-cfg-quagga.postinst7
-rwxr-xr-xscripts/vyatta-asn-first-cleanup.pl34
-rw-r--r--templates/protocols/bgp/node.def6
4 files changed, 48 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index f6c04a85..50e67f34 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,4 @@
+commithookdir = /etc/commit
share_perl5dir = /opt/vyatta/share/perl5/Vyatta/Quagga
cfgdir = $(datadir)/vyatta-cfg/templates
curverdir = $(sysconfdir)/config-migrate/current
@@ -10,6 +11,7 @@ sbin_SCRIPTS += scripts/policy/vyatta-check-as-prepend.pl
sbin_SCRIPTS += scripts/vyatta-policy-action-verify.pl
sbin_SCRIPTS += scripts/vyatta-gateway-static_route-check.pl
sbin_SCRIPTS += scripts/vyatta-link-detect
+sbin_SCRIPTS += scripts/vyatta-asn-first-cleanup.pl
sbin_PROGRAMS = src/check_prefix_boundary
diff --git a/debian/vyatta-cfg-quagga.postinst b/debian/vyatta-cfg-quagga.postinst
new file mode 100644
index 00000000..4e19570a
--- /dev/null
+++ b/debian/vyatta-cfg-quagga.postinst
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+mkdir -p /etc/commit
+ln -s /opt/vyatta/sbin/vyatta-asn-first-cleanup.pl /etc/commit/vyatta-asn-first-cleanup.pl 2>/dev/null
+
+exit 0
+
diff --git a/scripts/vyatta-asn-first-cleanup.pl b/scripts/vyatta-asn-first-cleanup.pl
new file mode 100755
index 00000000..cec82d7c
--- /dev/null
+++ b/scripts/vyatta-asn-first-cleanup.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+# Module: vyatta-asn-first-cleanup.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) 2008 Vyatta, Inc.
+# All Rights Reserved.
+#
+# Author: Michael Larson
+# Date: June 2008
+# Description: Removes file at end of asn node visitation
+# **** End License ****
+
+use strict;
+use warnings;
+use lib "/opt/vyatta/share/perl5/";
+
+`rm -f /tmp/protocols-bgp.*`;
diff --git a/templates/protocols/bgp/node.def b/templates/protocols/bgp/node.def
index 3e9e6b51..44319838 100644
--- a/templates/protocols/bgp/node.def
+++ b/templates/protocols/bgp/node.def
@@ -7,4 +7,8 @@ val_help: u32:1-4294967294; AS number
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 4294967294 ; \
"AS number must be between 1 and 4294967294"
-end: /opt/vyatta/sbin/vyatta-bgp.pl --main
+end:
+if [ ! -f "/tmp/protocols-bgp.$PPID" ]; then
+ touch /tmp/protocols-bgp.$PPID;
+ /opt/vyatta/sbin/vyatta-bgp.pl --main
+fi; \ No newline at end of file