diff options
author | Dave Barach <dave@barachs.net> | 2020-02-26 08:02:58 -0500 |
---|---|---|
committer | Andrew Yourtchenko <ayourtch@gmail.com> | 2020-03-30 13:56:32 +0000 |
commit | a42f9a54231526f0cba42d590917a51eab6529e1 (patch) | |
tree | 87f97c89a39d3dbd185a8a196f5364d523ece392 | |
parent | 247bbe2cfa517d3b0498e3416ea5fe6855b6549e (diff) |
ip-neighbor: fix ip6_ra_cmd
The option parsing loop had "break" statements included in each
'if (unformat (line_input, "this-option ...") option_values=xxx;'
statement.
Result: the code would silently ignore all but the first
option. Probably broken forever, not easy to spot because the code
looks OK even though it's badly broken.
Type: fix
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I667bee85b4ca654b53fb3af421f957957ed0f0f8
(cherry picked from commit 7249b90ab21c20138907e692dcb6032aea9e2f0f)
-rw-r--r-- | src/vnet/ip6-nd/ip6_ra.c | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/src/vnet/ip6-nd/ip6_ra.c b/src/vnet/ip6-nd/ip6_ra.c index ebc2c4be417..b64292fe3f1 100644 --- a/src/vnet/ip6-nd/ip6_ra.c +++ b/src/vnet/ip6-nd/ip6_ra.c @@ -1882,34 +1882,28 @@ ip6_ra_cmd (vlib_main_t * vm, unformat_ip6_address, &ip6_addr, &addr_len)) { add_radv_info = 0; - break; } else if (unformat (line_input, "ra-managed-config-flag")) { managed = 1; - break; } else if (unformat (line_input, "ra-other-config-flag")) { other = 1; - break; } else if (unformat (line_input, "ra-suppress") || unformat (line_input, "ra-surpress")) { suppress = 1; - break; } else if (unformat (line_input, "ra-suppress-link-layer") || unformat (line_input, "ra-surpress-link-layer")) { suppress_ll_option = 1; - break; } else if (unformat (line_input, "ra-send-unicast")) { send_unicast = 1; - break; } else if (unformat (line_input, "ra-lifetime")) { @@ -1919,7 +1913,6 @@ ip6_ra_cmd (vlib_main_t * vm, goto done; } use_lifetime = 1; - break; } else if (unformat (line_input, "ra-initial")) { @@ -1929,7 +1922,6 @@ ip6_ra_cmd (vlib_main_t * vm, error = unformat_parse_error (line_input); goto done; } - break; } else if (unformat (line_input, "ra-interval")) { @@ -1941,12 +1933,10 @@ ip6_ra_cmd (vlib_main_t * vm, if (!unformat (line_input, "%d", &ra_min_interval)) ra_min_interval = 0; - break; } else if (unformat (line_input, "ra-cease")) { cease = 1; - break; } else { |