diff --git a/patches/packages/routing/0005-babeld-fix-parsing-of-list-import_table.patch b/patches/packages/routing/0005-babeld-fix-parsing-of-list-import_table.patch new file mode 100644 index 00000000..a4d37d5a --- /dev/null +++ b/patches/packages/routing/0005-babeld-fix-parsing-of-list-import_table.patch @@ -0,0 +1,44 @@ +From: Nils Schneider +Date: Sun, 16 Aug 2015 18:50:02 +0200 +Subject: babeld: fix parsing of list import_table + +When parsing list options using config_load option_cb will be called +with additional options ending in _ITEM$x and _LENGTH. This ignores any +option containing _LENGTH or _ITEM as they can't possible be a valid +babeld option making a config like + + config general + list import_table 23 + list import_table 42 + +work. + +Signed-off-by: Nils Schneider + +diff --git a/babeld/files/babeld.config b/babeld/files/babeld.config +index cb2a131..0073f73 100644 +--- a/babeld/files/babeld.config ++++ b/babeld/files/babeld.config +@@ -16,8 +16,6 @@ config general + ## Enable ipv6-subtrees by default since OpenWrt should ship with a + ## recent enough kernel for it to work. + option 'ipv6_subtrees' 'true' +- ## This seems somewhat buggy on BB. If you need only one +- ## import-table statement, "option import_table 42" should work. + # list 'import_table' '42' + # list 'import_table' '100' + ## Alternative configuration file and directory. +diff --git a/babeld/files/babeld.init b/babeld/files/babeld.init +index 6796a34..21ae4be 100755 +--- a/babeld/files/babeld.init ++++ b/babeld/files/babeld.init +@@ -166,6 +166,9 @@ babel_config_cb() { + local value="$2" + # Ignore old options + list_contains ignored_options "$option" && return ++ # Skip lists. They will be taken care of by list_cb ++ test "${option#*_ITEM}" != "$option" && return ++ test "${option#*_LENGTH}" != "$option" && return + cfg_append "${option//_/-} $value" + } + ;;