Skip to content

Commit 7cd1478

Browse files
authored
Merge pull request #8003 from Taiki-San/patch-2
Leverage the simplification of the IPv6 parsing primitive
2 parents 2092e40 + 3bc33f6 commit 7cd1478

File tree

10 files changed

+24
-65
lines changed

10 files changed

+24
-65
lines changed

UNITTESTS/features/netsocket/EthernetInterface/unittest.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ set(unittest-sources
1414
../features/netsocket/NetworkInterface.cpp
1515
../features/netsocket/NetworkStack.cpp
1616
../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c
17+
../features/frameworks/nanostack-libservice/source/libip6string/ip6tos.c
1718
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
19+
../features/frameworks/nanostack-libservice/source/libip6string/stoip6.c
20+
../features/frameworks/nanostack-libservice/source/libBits/common_functions.c
1821
)
1922

2023
# Test files

UNITTESTS/features/netsocket/InternetSocket/unittest.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ set(unittest-sources
88
../features/netsocket/NetworkStack.cpp
99
../features/netsocket/InternetSocket.cpp
1010
../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c
11+
../features/frameworks/nanostack-libservice/source/libip6string/ip6tos.c
1112
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
13+
../features/frameworks/nanostack-libservice/source/libip6string/stoip6.c
14+
../features/frameworks/nanostack-libservice/source/libBits/common_functions.c
1215
)
1316

1417
set(unittest-test-sources

UNITTESTS/features/netsocket/NetworkInterface/unittest.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ set(unittest-sources
99
../features/netsocket/NetworkStack.cpp
1010
../features/netsocket/NetworkInterface.cpp
1111
../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c
12+
../features/frameworks/nanostack-libservice/source/libip6string/ip6tos.c
1213
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
14+
../features/frameworks/nanostack-libservice/source/libip6string/stoip6.c
15+
../features/frameworks/nanostack-libservice/source/libBits/common_functions.c
1316
)
1417

1518
# Test files

UNITTESTS/features/netsocket/NetworkStack/unittest.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@ set(unittest-sources
1212
../features/netsocket/NetworkStack.cpp
1313
../features/netsocket/NetworkInterface.cpp
1414
../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c
15+
../features/frameworks/nanostack-libservice/source/libip6string/ip6tos.c
1516
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
17+
../features/frameworks/nanostack-libservice/source/libip6string/stoip6.c
18+
../features/frameworks/nanostack-libservice/source/libBits/common_functions.c
1619
)
1720

1821
# Test files

UNITTESTS/features/netsocket/SocketAddress/unittest.cmake

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,14 @@
66
# Unit test suite name
77
set(TEST_SUITE_NAME "features_netsocket_SocketAddress")
88

9-
# We want to get rid of ip6string.h fake include to use the real definitions.
10-
list(REMOVE_ITEM unittest-includes "${PROJECT_SOURCE_DIR}/target_h")
11-
129
# Source files
1310
set(unittest-sources
1411
../features/netsocket/SocketAddress.cpp
1512
../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c
16-
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
17-
# Adding real ip6-related features, to test the relevant functions fully.
1813
../features/frameworks/nanostack-libservice/source/libip6string/ip6tos.c
14+
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
1915
../features/frameworks/nanostack-libservice/source/libip6string/stoip6.c
20-
../features/frameworks/nanostack-libservice/source/libBits/common_functions.c
21-
16+
../features/frameworks/nanostack-libservice/source/libBits/common_functions.c
2217
)
2318

2419
# Test files

UNITTESTS/features/netsocket/TCPServer/unittest.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ set(unittest-sources
1313
../features/netsocket/TCPSocket.cpp
1414
../features/netsocket/TCPServer.cpp
1515
../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c
16+
../features/frameworks/nanostack-libservice/source/libip6string/ip6tos.c
1617
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
18+
../features/frameworks/nanostack-libservice/source/libip6string/stoip6.c
19+
../features/frameworks/nanostack-libservice/source/libBits/common_functions.c
1720
)
1821

1922
set(unittest-test-sources

UNITTESTS/features/netsocket/TCPSocket/unittest.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ set(unittest-sources
99
../features/netsocket/InternetSocket.cpp
1010
../features/netsocket/TCPSocket.cpp
1111
../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c
12+
../features/frameworks/nanostack-libservice/source/libip6string/ip6tos.c
1213
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
14+
../features/frameworks/nanostack-libservice/source/libip6string/stoip6.c
15+
../features/frameworks/nanostack-libservice/source/libBits/common_functions.c
1316
)
1417

1518
set(unittest-test-sources

UNITTESTS/features/netsocket/UDPSocket/unittest.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ set(unittest-sources
99
../features/netsocket/InternetSocket.cpp
1010
../features/netsocket/UDPSocket.cpp
1111
../features/frameworks/nanostack-libservice/source/libip4string/ip4tos.c
12+
../features/frameworks/nanostack-libservice/source/libip6string/ip6tos.c
1213
../features/frameworks/nanostack-libservice/source/libip4string/stoip4.c
14+
../features/frameworks/nanostack-libservice/source/libip6string/stoip6.c
15+
../features/frameworks/nanostack-libservice/source/libBits/common_functions.c
1316
)
1417

1518
set(unittest-test-sources

UNITTESTS/target_h/ip6string.h

Lines changed: 0 additions & 36 deletions
This file was deleted.

features/netsocket/SocketAddress.cpp

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,6 @@
2424

2525

2626

27-
static bool ipv6_is_valid(const char *addr)
28-
{
29-
// Check each digit for [0-9a-fA-F:]
30-
// Must also have at least 2 colons
31-
int colons = 0;
32-
for (int i = 0; addr[i]; i++) {
33-
if (!(addr[i] >= '0' && addr[i] <= '9') &&
34-
!(addr[i] >= 'a' && addr[i] <= 'f') &&
35-
!(addr[i] >= 'A' && addr[i] <= 'F') &&
36-
addr[i] != ':') {
37-
return false;
38-
}
39-
if (addr[i] == ':') {
40-
colons++;
41-
}
42-
}
43-
44-
return colons >= 2;
45-
}
46-
4727
SocketAddress::SocketAddress(nsapi_addr_t addr, uint16_t port)
4828
{
4929
_ip_address = NULL;
@@ -80,9 +60,8 @@ bool SocketAddress::set_ip_address(const char *addr)
8060
if (addr && stoip4(addr, strlen(addr), _addr.bytes)) {
8161
_addr.version = NSAPI_IPv4;
8262
return true;
83-
} else if (addr && ipv6_is_valid(addr)) {
63+
} else if (addr && stoip6(addr, strlen(addr), _addr.bytes)) {
8464
_addr.version = NSAPI_IPv6;
85-
stoip6(addr, strlen(addr), _addr.bytes);
8665
return true;
8766
} else {
8867
_addr = nsapi_addr_t();

0 commit comments

Comments
 (0)