From mboxrd@z Thu Jan 1 00:00:00 1970 From: Serhey Popovych Subject: [PATCH iproute2 2/4] iptnl/ip6tnl: Unify ttl/hoplimit parsing routines Date: Fri, 19 Jan 2018 18:44:01 +0200 Message-ID: <1516380243-32568-3-git-send-email-serhe.popovych@gmail.com> References: <1516380243-32568-1-git-send-email-serhe.popovych@gmail.com> To: netdev@vger.kernel.org Return-path: Received: from mail-lf0-f68.google.com ([209.85.215.68]:44765 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756162AbeASQoN (ORCPT ); Fri, 19 Jan 2018 11:44:13 -0500 Received: by mail-lf0-f68.google.com with SMTP id w23so2826493lfd.11 for ; Fri, 19 Jan 2018 08:44:12 -0800 (PST) Received: from tuxracer.localdomain ([2a01:6d80::195:20:96:53]) by smtp.gmail.com with ESMTPSA id 77sm1785587ljx.58.2018.01.19.08.44.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Jan 2018 08:44:10 -0800 (PST) In-Reply-To: <1516380243-32568-1-git-send-email-serhe.popovych@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: Handle "inherit" case properly for gre6 and ip6tnl. Use get_u8() in gre to parse ttl/hoplimit. Be consistent about "hlim" alias to ttl/hoplimit support. Signed-off-by: Serhey Popovych --- ip/link_gre.c | 10 +++------- ip/link_gre6.c | 13 +++++++------ ip/link_ip6tnl.c | 14 +++++++------- ip/link_iptnl.c | 3 ++- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/ip/link_gre.c b/ip/link_gre.c index 6254e88..009ddfc 100644 --- a/ip/link_gre.c +++ b/ip/link_gre.c @@ -229,16 +229,12 @@ get_failed: exit(-1); } } else if (!matches(*argv, "ttl") || - !matches(*argv, "hoplimit")) { - unsigned int uval; - + !matches(*argv, "hoplimit") || + !matches(*argv, "hlim")) { NEXT_ARG(); if (strcmp(*argv, "inherit") != 0) { - if (get_unsigned(&uval, *argv, 0)) + if (get_u8(&ttl, *argv, 0)) invarg("invalid TTL\n", *argv); - if (uval > 255) - invarg("TTL must be <= 255\n", *argv); - ttl = uval; } else ttl = 0; } else if (!matches(*argv, "tos") || diff --git a/ip/link_gre6.c b/ip/link_gre6.c index 29ca3d1..3d02e16 100644 --- a/ip/link_gre6.c +++ b/ip/link_gre6.c @@ -238,13 +238,14 @@ get_failed: exit(-1); } } else if (!matches(*argv, "ttl") || - !matches(*argv, "hoplimit")) { - __u8 uval; - + !matches(*argv, "hoplimit") || + !matches(*argv, "hlim")) { NEXT_ARG(); - if (get_u8(&uval, *argv, 0)) - invarg("invalid TTL", *argv); - hop_limit = uval; + if (strcmp(*argv, "inherit") != 0) { + if (get_u8(&hop_limit, *argv, 0)) + invarg("invalid HLIM\n", *argv); + } else + hop_limit = 0; } else if (!matches(*argv, "tos") || !matches(*argv, "tclass") || !matches(*argv, "dsfield")) { diff --git a/ip/link_ip6tnl.c b/ip/link_ip6tnl.c index 8f5c9bd..f6c52ac 100644 --- a/ip/link_ip6tnl.c +++ b/ip/link_ip6tnl.c @@ -196,15 +196,15 @@ get_failed: link = if_nametoindex(*argv); if (link == 0) invarg("\"dev\" is invalid", *argv); - } else if (strcmp(*argv, "hoplimit") == 0 || - strcmp(*argv, "ttl") == 0 || + } else if (strcmp(*argv, "ttl") == 0 || + strcmp(*argv, "hoplimit") == 0 || strcmp(*argv, "hlim") == 0) { - __u8 uval; - NEXT_ARG(); - if (get_u8(&uval, *argv, 0)) - invarg("invalid HLIM", *argv); - hop_limit = uval; + if (strcmp(*argv, "inherit") != 0) { + if (get_u8(&hop_limit, *argv, 0)) + invarg("invalid HLIM\n", *argv); + } else + hop_limit = 0; } else if (strcmp(*argv, "encaplimit") == 0) { NEXT_ARG(); if (strcmp(*argv, "none") == 0) { diff --git a/ip/link_iptnl.c b/ip/link_iptnl.c index ce3855c..a6213d2 100644 --- a/ip/link_iptnl.c +++ b/ip/link_iptnl.c @@ -204,7 +204,8 @@ get_failed: if (link == 0) invarg("\"dev\" is invalid", *argv); } else if (strcmp(*argv, "ttl") == 0 || - strcmp(*argv, "hoplimit") == 0) { + strcmp(*argv, "hoplimit") == 0 || + strcmp(*argv, "hlim") == 0) { NEXT_ARG(); if (strcmp(*argv, "inherit") != 0) { if (get_u8(&ttl, *argv, 0)) -- 1.7.10.4