diff --git a/LICENSE b/LICENSE index c639838f9ae0356f5728dd364b6494650b0020f3..2fa9023d54b04efddf441c0d30dc5f7ac8adcb04 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 3f96b3054a0c057fe80fe5cd969f85c4516289df..88bf42197b054e64b9532e2ba2549b790e43ee2c 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; } diff --git a/examples/nip_lib.c b/examples/nip_lib.c index 8699228c4183761995e1ce8b9206ceea040979bb..5c84643611d1421f8ce7a4824cfd403d196c08b7 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); }