From 1ef562160feaaa893c348d6f14ccd3424021a6b4 Mon Sep 17 00:00:00 2001 From: yangyanjun Date: Sun, 9 Oct 2022 16:35:33 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9demo=E4=BB=A3=E7=A0=81che?= =?UTF-8?q?ckpatch=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangyanjun --- examples/nip_lib.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/examples/nip_lib.c b/examples/nip_lib.c index 8699228..5c84643 100644 --- a/examples/nip_lib.c +++ b/examples/nip_lib.c @@ -67,31 +67,33 @@ int32_t nip_get_ifindex(const char *ifname, int *ifindex) return 0; } -int nip_addr_fmt(char *addr, struct nip_addr *sap, int addrlen_input) +int nip_addr_fmt(char *addr_str, struct nip_addr *sap, int addrlen_input) { unsigned char first_byte; int addrlen, i; memset(sap, 0, sizeof(struct nip_addr)); for (i = 0; i < INDEX_MAX; i++) { + if (addr_str[i] == 0) + break; + /* 0 ~ 9 = 48 ~ 57, '0'构造成 0 = 48 - 48 */ - if (addr[i] >= '0' && addr[i] <= '9') - addr[i] = addr[i] - '0'; + if (addr_str[i] >= '0' && addr_str[i] <= '9') { + addr_str[i] = addr_str[i] - '0'; /* A ~ F = 65 ~ 70, 'A'构造成 10 = 65 - 55 */ - else if (addr[i] >= 'A' && addr[i] <= 'F') - addr[i] = addr[i] - STR_FMT_1; + } else if (addr_str[i] >= 'A' && addr_str[i] <= 'F') { + addr_str[i] = addr_str[i] - STR_FMT_1; /* a ~ f = 97 ~ 102, 'a'构造成 10 = 97 - 87 */ - else if (addr[i] >= 'a' && addr[i] <= 'f') - addr[i] = addr[i] - STR_FMT_2; - else if (addr[i] == 0) - break; - - printf("Newip addr error: uaddr[%u]=%c.\n", i, addr[i]); - return 1; + } else if (addr_str[i] >= 'a' && addr_str[i] <= 'f') { + addr_str[i] = addr_str[i] - STR_FMT_2; + } else { + printf("Newip addr error: uaddr[%u]=%c.\n", i, addr_str[i]); + return 1; + } } - first_byte = addr[0] << NIP_ADDR_LEN_4; - first_byte += addr[1]; + first_byte = addr_str[0] << NIP_ADDR_LEN_4; + first_byte += addr_str[1]; if (first_byte >= 0x00 && first_byte <= ADDR_FIRST_DC) addrlen = NIP_ADDR_LEN_1; else if ((first_byte > ADDR_FIRST_DC && first_byte <= ADDR_FIRST_F0) || @@ -117,8 +119,8 @@ int nip_addr_fmt(char *addr, struct nip_addr *sap, int addrlen_input) printf("*************************************************\n"); printf("Newip addr len=%u\n", addrlen); for (i = 0; i < addrlen; i++) { - sap->nip_addr_field8[i] = addr[i * INDEX_2] << INDEX_4; - sap->nip_addr_field8[i] += addr[i * INDEX_2 + 1]; + sap->nip_addr_field8[i] = addr_str[i * INDEX_2] << INDEX_4; + sap->nip_addr_field8[i] += addr_str[i * INDEX_2 + 1]; printf("%02x ", sap->nip_addr_field8[i]); } printf("\n*************************************************\n\n"); @@ -131,7 +133,7 @@ int nip_get_addr(char **args, struct nip_addr *addr) int ret; char *sp = *args; int addrlen_input = 0; - __u8 addr[INDEX_MAX] = {0}; + __u8 addr_str[INDEX_MAX] = {0}; while (*sp != '\0') { addrlen_input += 1; @@ -143,7 +145,7 @@ int nip_get_addr(char **args, struct nip_addr *addr) return -1; } - ret = sscanf(*args, "%s", addr); - return nip_addr_fmt(addr, addr, addrlen_input / ADDR_STR_LEN); + ret = sscanf(*args, "%s", addr_str); + return nip_addr_fmt(addr_str, addr, addrlen_input / ADDR_STR_LEN); } -- Gitee From 27a52360bd8b9d49d7b8dec52c35f71850bc1cea Mon Sep 17 00:00:00 2001 From: yangyanjun Date: Mon, 10 Oct 2022 14:03:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?check=20nip=20enable=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=E5=8F=98=E6=9B=B4=EF=BC=8C?= =?UTF-8?q?tools=E7=9B=AE=E5=BD=95=E5=A2=9E=E5=8A=A0license=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangyanjun --- LICENSE | 1 + examples/check_nip_enable.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index c639838..2fa9023 100644 --- a/LICENSE +++ b/LICENSE @@ -4,6 +4,7 @@ Copyright (c) 2022 Huawei Device Co., Ltd. All rights reserved. The code/linux/ subdirectorie is licensed under the GPL V2 License. The code/ommon/ subdirectorie is licensed under 3-Clause BSD License. The examples/ subdirectorie is licensed under 3-Clause BSD License. +The tools/ subdirectorie is licensed under the GPL V2 License. a) GNU General Public License version 2, (https://opensource.org/licenses/GPL-2.0) This library is free software; you can redistribute it and/or diff --git a/examples/check_nip_enable.c b/examples/check_nip_enable.c index 3f96b30..88bf421 100644 --- a/examples/check_nip_enable.c +++ b/examples/check_nip_enable.c @@ -62,8 +62,10 @@ void _check_nip_enable(void) int check_nip_enable(void) { - if (g_nip_enable == NIP_ENABLE_INVALID) + if (g_nip_enable == NIP_ENABLE_INVALID) { _check_nip_enable(); + g_nip_enable = (g_nip_enable == 1 ? 1 : 0); + } return g_nip_enable; } @@ -72,7 +74,10 @@ int main(int argc, char **argv) { int af_ninet = check_nip_enable(); - printf("nip_enable=%d\n\n", g_nip_enable); + if (g_nip_enable) + printf("Support NewIP.\n\n"); + else + printf("Not support NewIP.\n\n"); return 0; } -- Gitee