summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog21
-rwxr-xr-xlib/Vyatta/Interface.pm1
-rw-r--r--src/common/unionfs.c32
3 files changed, 41 insertions, 13 deletions
diff --git a/debian/changelog b/debian/changelog
index dc212c3..7d6caef 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,24 @@
+vyatta-cfg (0.15.39) unstable; urgency=low
+
+ * Fix missing semicolon.
+
+ -- Stig Thormodsrud <stig@vyatta.com> Wed, 04 Nov 2009 08:16:11 -0800
+
+vyatta-cfg (0.15.38) unstable; urgency=low
+
+ * Fix uninitialized variable when reading carrier on admin down
+ interface.
+
+ -- Stig Thormodsrud <stig@vyatta.com> Tue, 03 Nov 2009 11:22:03 -0800
+
+vyatta-cfg (0.15.37) unstable; urgency=low
+
+ [ slioch ]
+ * fix for missing priority value on embedded multinode. bug behavior
+ was more limited than this--at least tag node.def and multiple
+
+ -- root <root@eng-140.vyatta.com> Mon, 02 Nov 2009 17:26:42 -0800
+
vyatta-cfg (0.15.36) unstable; urgency=low
[ David S. Madole ]
diff --git a/lib/Vyatta/Interface.pm b/lib/Vyatta/Interface.pm
index 924058a..513f686 100755
--- a/lib/Vyatta/Interface.pm
+++ b/lib/Vyatta/Interface.pm
@@ -228,6 +228,7 @@ sub carrier {
or return;
my $val = <$carrier>;
+ $val = 0 if ! defined $val; # proc entry not readable on down interface
chomp $val;
close $carrier;
return $val;
diff --git a/src/common/unionfs.c b/src/common/unionfs.c
index 45127e8..452c774 100644
--- a/src/common/unionfs.c
+++ b/src/common/unionfs.c
@@ -225,13 +225,6 @@ retrieve_data(char* rel_data_path, GNode *node, char* root, NODE_OPERATION op)
}
//either multi or tag--shouldn't have made a difference, but arkady was confused.
vn->_config._multi = (def.tag | def.multi);
- if (def.def_priority == 0) {
- vn->_config._priority = LOWEST_PRIORITY;
- }
- else {
- vn->_config._priority = def.def_priority;
- }
-
}
}
@@ -252,12 +245,6 @@ retrieve_data(char* rel_data_path, GNode *node, char* root, NODE_OPERATION op)
//Need to do two things:
// 1. Come to agreement on where the behavior splits on priority multinodes
// 2. Not check for tag node in the def datastructure but use the new datastructure as at some point tag and multi will be the same
- if (vn_parent->_config._def.tag == TRUE) { //only for embedded multinodes
- vn->_config._priority = vn_parent->_config._priority;
- vn_parent->_config._priority = LOWEST_PRIORITY;
- }
-
-
//now let's patch up the def multi-nodes
//move the def for the multinode from the parent to the value node
struct VyattaNode* vn2 = (struct VyattaNode*)node->data;
@@ -282,6 +269,25 @@ retrieve_data(char* rel_data_path, GNode *node, char* root, NODE_OPERATION op)
}
}
+
+ if (G_NODE_IS_ROOT(node) == FALSE) {
+ struct VyattaNode* vn_parent = (struct VyattaNode*)node->parent->data;
+ struct VyattaNode* vn = (struct VyattaNode*)node->data;
+ // vn->_config._priority = vn_parent->_config._def.def_priority;
+ if (vn->_config._def.tag && vn->_config._multi) {
+ vn->_config._priority = LOWEST_PRIORITY;
+ }
+ else if (vn->_config._def.def_priority == 0) {
+ vn->_config._priority = LOWEST_PRIORITY;
+ }
+ else {
+ vn->_config._priority = vn->_config._def.def_priority;
+ }
+ }
+
+
+
+
if (final_node == TRUE) {
//move defs to child...
get_term_data_values(node);