This commit is contained in:
Mayank Jha 2024-09-19 19:47:09 +08:00 committed by GitHub
commit 6d7defe366
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 7 additions and 2 deletions

View File

@ -89,7 +89,7 @@ inline bool parseIPv4(T * &src, EOFfunction eof, unsigned char * dst, int32_t fi
/// returns pointer to the right after parsed sequence or null on failed parsing
inline const char * parseIPv4(const char * src, const char * end, unsigned char * dst)
{
if (parseIPv4(src, [&src, end](){ return src == end; }, dst))
if (parseIPv4(src, [&src, end](){ return src == end || *src == '\0'; }, dst))
return src;
return nullptr;
}
@ -97,7 +97,8 @@ inline const char * parseIPv4(const char * src, const char * end, unsigned char
/// returns true if whole buffer was parsed successfully
inline bool parseIPv4whole(const char * src, const char * end, unsigned char * dst)
{
return parseIPv4(src, end, dst) == end;
const char * parsed = parseIPv4(src, end, dst);
return parsed-end == 0;
}
/// returns pointer to the right after parsed sequence or null on failed parsing

View File

@ -31,6 +31,8 @@ ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
127.0.0.1 is ipv4 string: 1
8.8.8.8 is ipv4 string: 1
hello is ipv4 string: 0
192.168.1.1\0000 is ipv4 string: 0
192.168.1.1\00dc is ipv4 string: 0
0:0:0:0:0:0:0:0 is ipv4 string: 0
0000:0000:0000:0000:0000:FFFF:C1FC:110A is ipv4 string: 0
FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF is ipv4 string: 0

View File

@ -64,6 +64,8 @@ SELECT '192.168.0.91 is ipv4 string: ', isIPv4String(
SELECT '127.0.0.1 is ipv4 string: ', isIPv4String('127.0.0.1');
SELECT '8.8.8.8 is ipv4 string: ', isIPv4String('8.8.8.8');
SELECT 'hello is ipv4 string: ', isIPv4String('hello');
SELECT '192.168.1.1\0000 is ipv4 string: ', isIPv4String('192.168.1.1\0000');
SELECT '192.168.1.1\00dc is ipv4 string: ', isIPv4String('192.168.1.1\00dc');
SELECT '0:0:0:0:0:0:0:0 is ipv4 string: ', isIPv4String('0:0:0:0:0:0:0:0');
SELECT '0000:0000:0000:0000:0000:FFFF:C1FC:110A is ipv4 string: ', isIPv4String('0000:0000:0000:0000:0000:FFFF:C1FC:110A');
SELECT 'FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF is ipv4 string: ', isIPv4String('FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF');