diff mbox series

iproute2: fix 'ip xfrm monitor all' command

Message ID 20180530191132.62598-1-nharold@google.com
State Accepted, archived
Delegated to: stephen hemminger
Headers show
Series iproute2: fix 'ip xfrm monitor all' command | expand

Commit Message

Nathan Harold May 30, 2018, 7:11 p.m. UTC
Currently, calling 'ip xfrm monitor all' will
actually invoke the 'all-nsid' command because the
soft-match for 'all-nsid' occurs before the precise
match for 'all'. This patch rearranges the checks
so that the 'all' command, itself an alias for
invoking 'ip xfrm monitor' with no argument, can
be called consistent with the syntax for other ip
commands that accept an 'all'.

Signed-off-by: Nathan Harold <nharold@google.com>
---
 ip/xfrm_monitor.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Stephen Hemminger June 1, 2018, 8:03 p.m. UTC | #1
On Wed, 30 May 2018 12:11:32 -0700
Nathan Harold <nharold@google.com> wrote:

> Currently, calling 'ip xfrm monitor all' will
> actually invoke the 'all-nsid' command because the
> soft-match for 'all-nsid' occurs before the precise
> match for 'all'. This patch rearranges the checks
> so that the 'all' command, itself an alias for
> invoking 'ip xfrm monitor' with no argument, can
> be called consistent with the syntax for other ip
> commands that accept an 'all'.
> 
> Signed-off-by: Nathan Harold <nharold@google.com>

Looks good, applied. After review it shouldn't break any existing command lines.
diff mbox series

Patch

diff --git a/ip/xfrm_monitor.c b/ip/xfrm_monitor.c
index 2eabece0..5d086768 100644
--- a/ip/xfrm_monitor.c
+++ b/ip/xfrm_monitor.c
@@ -359,6 +359,8 @@  int do_xfrm_monitor(int argc, char **argv)
 		if (matches(*argv, "file") == 0) {
 			NEXT_ARG();
 			file = *argv;
+		} else if (strcmp(*argv, "all") == 0) {
+			/* fall out */
 		} else if (matches(*argv, "all-nsid") == 0) {
 			listen_all_nsid = 1;
 		} else if (matches(*argv, "acquire") == 0) {
@@ -381,7 +383,7 @@  int do_xfrm_monitor(int argc, char **argv)
 			groups = 0;
 		} else if (matches(*argv, "help") == 0) {
 			usage();
-		} else if (strcmp(*argv, "all")) {
+		} else {
 			fprintf(stderr, "Argument \"%s\" is unknown, try \"ip xfrm monitor help\".\n", *argv);
 			exit(-1);
 		}