All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH iproute2] ipaddress: accept symbolic names
@ 2023-06-02 15:54 Stephen Hemminger
  2023-06-02 21:30 ` patchwork-bot+netdevbpf
  0 siblings, 1 reply; 2+ messages in thread
From: Stephen Hemminger @ 2023-06-02 15:54 UTC (permalink / raw)
  To: netdev; +Cc: Stephen Hemminger, petrm

The function rtnl_addproto_a2n() was defined but never used.
Use it to allow for symbolic names, and fix the function signatures
so protocol value is consistently __u8.

Fixes: bdb8d8549ed9 ("ip: Support IP address protocol")
Cc: petrm@nvidia.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 include/rt_names.h |  4 ++--
 ip/ipaddress.c     |  2 +-
 lib/rt_names.c     | 18 +++++-------------
 3 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/include/rt_names.h b/include/rt_names.h
index e96d80f30554..0275030704c1 100644
--- a/include/rt_names.h
+++ b/include/rt_names.h
@@ -5,7 +5,7 @@
 #include <asm/types.h>
 
 const char *rtnl_rtprot_n2a(int id, char *buf, int len);
-const char *rtnl_addrprot_n2a(int id, char *buf, int len);
+const char *rtnl_addrprot_n2a(__u8 id, char *buf, int len);
 const char *rtnl_rtscope_n2a(int id, char *buf, int len);
 const char *rtnl_rttable_n2a(__u32 id, char *buf, int len);
 const char *rtnl_rtrealm_n2a(int id, char *buf, int len);
@@ -14,7 +14,7 @@ const char *rtnl_dsfield_get_name(int id);
 const char *rtnl_group_n2a(int id, char *buf, int len);
 
 int rtnl_rtprot_a2n(__u32 *id, const char *arg);
-int rtnl_addrprot_a2n(__u32 *id, const char *arg);
+int rtnl_addrprot_a2n(__u8 *id, const char *arg);
 int rtnl_rtscope_a2n(__u32 *id, const char *arg);
 int rtnl_rttable_a2n(__u32 *id, const char *arg);
 int rtnl_rtrealm_a2n(__u32 *id, const char *arg);
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index c428dd3d5413..7accbf7d7822 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -2547,7 +2547,7 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv)
 			__u8 proto;
 
 			NEXT_ARG();
-			if (get_u8(&proto, *argv, 0))
+			if (rtnl_addrprot_a2n(&proto, *argv))
 				invarg("\"proto\" value is invalid\n", *argv);
 			addattr8(&req.n, sizeof(req), IFA_PROTO, proto);
 		} else {
diff --git a/lib/rt_names.c b/lib/rt_names.c
index 51d11fd056b1..b441e98f8078 100644
--- a/lib/rt_names.c
+++ b/lib/rt_names.c
@@ -242,9 +242,9 @@ static void rtnl_addrprot_initialize(void)
 	rtnl_addrprot_tab_initialized = true;
 }
 
-const char *rtnl_addrprot_n2a(int id, char *buf, int len)
+const char *rtnl_addrprot_n2a(__u8 id, char *buf, int len)
 {
-	if (id < 0 || id >= 256 || numeric)
+	if (numeric)
 		goto numeric;
 	if (!rtnl_addrprot_tab_initialized)
 		rtnl_addrprot_initialize();
@@ -255,27 +255,19 @@ numeric:
 	return buf;
 }
 
-int rtnl_addrprot_a2n(__u32 *id, const char *arg)
+int rtnl_addrprot_a2n(__u8 *id, const char *arg)
 {
-	static char *cache;
-	static unsigned long res;
+	unsigned long res;
 	char *end;
 	int i;
 
-	if (cache && strcmp(cache, arg) == 0) {
-		*id = res;
-		return 0;
-	}
-
 	if (!rtnl_addrprot_tab_initialized)
 		rtnl_addrprot_initialize();
 
 	for (i = 0; i < 256; i++) {
 		if (rtnl_addrprot_tab[i] &&
 		    strcmp(rtnl_addrprot_tab[i], arg) == 0) {
-			cache = rtnl_addrprot_tab[i];
-			res = i;
-			*id = res;
+			*id = i;
 			return 0;
 		}
 	}
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH iproute2] ipaddress: accept symbolic names
  2023-06-02 15:54 [PATCH iproute2] ipaddress: accept symbolic names Stephen Hemminger
@ 2023-06-02 21:30 ` patchwork-bot+netdevbpf
  0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-06-02 21:30 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev, petrm

Hello:

This patch was applied to iproute2/iproute2.git (main)
by Stephen Hemminger <stephen@networkplumber.org>:

On Fri,  2 Jun 2023 08:54:19 -0700 you wrote:
> The function rtnl_addproto_a2n() was defined but never used.
> Use it to allow for symbolic names, and fix the function signatures
> so protocol value is consistently __u8.
> 
> Fixes: bdb8d8549ed9 ("ip: Support IP address protocol")
> Cc: petrm@nvidia.com
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> 
> [...]

Here is the summary with links:
  - [iproute2] ipaddress: accept symbolic names
    https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=709063e8368a

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-02 21:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-02 15:54 [PATCH iproute2] ipaddress: accept symbolic names Stephen Hemminger
2023-06-02 21:30 ` patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.