diff mbox

ip: allow using a device "help" (or a prefix thereof)

Message ID 55FBCA11.7070604@kristov.de
State Changes Requested, archived
Delegated to: stephen hemminger
Headers show

Commit Message

Christoph Schulz Sept. 18, 2015, 8:23 a.m. UTC
Device names that match "help" or a prefix thereof should be allowed anywhere
a device name can be used. Note that a suitable keyword ("dev" or "name", the
latter for "ip tunnel") has to be used in these cases to resolve ambiguities.

Signed-off-by: Christoph Schulz <develop@kristov.de>
Reported-by: Leonhard Preis <leonhard@pre.is>
Reported-by: Wilhelm Wijkander <lists@0x5e.se>
---
 ip/ip6tunnel.c | 2 +-
 ip/ipaddress.c | 2 +-
 ip/iplink.c    | 6 ++----
 ip/ipmaddr.c   | 2 +-
 4 files changed, 5 insertions(+), 7 deletions(-)

Comments

Erik Hugne Sept. 18, 2015, 12:06 p.m. UTC | #1
On Fri, Sep 18, 2015 at 10:23:45AM +0200, Christoph Schulz wrote:
> Device names that match "help" or a prefix thereof should be allowed anywhere
> a device name can be used. Note that a suitable keyword ("dev" or "name", the
> latter for "ip tunnel") has to be used in these cases to resolve ambiguities.

Lol :D


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Hemminger Sept. 23, 2015, 11:07 p.m. UTC | #2
On Fri, 18 Sep 2015 10:23:45 +0200
Christoph Schulz <develop@kristov.de> wrote:

> Device names that match "help" or a prefix thereof should be allowed anywhere
> a device name can be used. Note that a suitable keyword ("dev" or "name", the
> latter for "ip tunnel") has to be used in these cases to resolve ambiguities.
> 
> Signed-off-by: Christoph Schulz <develop@kristov.de>
> Reported-by: Leonhard Preis <leonhard@pre.is>
> Reported-by: Wilhelm Wijkander <lists@0x5e.se>

This patch no longer applies cleanly after this patch that was just merged.



commit 940a96e6ca9a14cd52c97a719a1700b417adb2fb
Author: Phil Sutter <phil@nwl.cc>
Date:   Mon Sep 21 21:33:01 2015 +0200

    ip-link: do not support 'ip link add dev help'
    
    Commit 0532555 ('Support "ip link add help" for rtnl_link API') added a
    check for specified help parameter. Though due to the place where it has
    been added to, it is not possible anymore to force a given parameter to
    be interpreted as interface name by prefixing it with 'dev '. Fix this
    by forcing whatever follows 'dev' to be presumed as interface name.
    
    Signed-off-by: Phil Sutter <phil@nwl.cc>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/ip/ip6tunnel.c b/ip/ip6tunnel.c
index 62a8240..9884efd 100644
--- a/ip/ip6tunnel.c
+++ b/ip/ip6tunnel.c
@@ -287,7 +287,7 @@  static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm2 *p)
 			if (strcmp(*argv, "name") == 0) {
 				NEXT_ARG();
 			}
-			if (matches(*argv, "help") == 0)
+			else if (matches(*argv, "help") == 0)
 				usage();
 			if (p->name[0])
 				duparg2("name", *argv);
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 2aa5fbf..4c97b4a 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -1561,7 +1561,7 @@  static int ipaddr_list_flush_or_save(int argc, char **argv, int action)
 			if (strcmp(*argv, "dev") == 0) {
 				NEXT_ARG();
 			}
-			if (matches(*argv, "help") == 0)
+			else if (matches(*argv, "help") == 0)
 				usage();
 			if (filter_dev)
 				duparg2("dev", *argv);
diff --git a/ip/iplink.c b/ip/iplink.c
index 97f46cd..6f840cf 100644
--- a/ip/iplink.c
+++ b/ip/iplink.c
@@ -649,8 +649,7 @@  int iplink_parse(int argc, char **argv, struct iplink_req *req,
 		} else {
 			if (strcmp(*argv, "dev") == 0)
 				NEXT_ARG();
-
-			if (matches(*argv, "help") == 0)
+			else if (matches(*argv, "help") == 0)
 				usage();
 			if (*dev)
 				duparg2("dev", *argv);
@@ -1148,8 +1147,7 @@  static int do_set(int argc, char **argv)
 		} else {
 			if (strcmp(*argv, "dev") == 0)
 				NEXT_ARG();
-
-			if (matches(*argv, "help") == 0)
+			else if (matches(*argv, "help") == 0)
 				usage();
 
 			if (dev)
diff --git a/ip/ipmaddr.c b/ip/ipmaddr.c
index a77a18f..cbd6d11 100644
--- a/ip/ipmaddr.c
+++ b/ip/ipmaddr.c
@@ -257,7 +257,7 @@  static int multiaddr_list(int argc, char **argv)
 			if (strcmp(*argv, "dev") == 0) {
 				NEXT_ARG();
 			}
-			if (matches(*argv, "help") == 0)
+			else if (matches(*argv, "help") == 0)
 				usage();
 			if (filter.dev)
 				duparg2("dev", *argv);