noproxy: fix the IPV6 network mask pattern match
No binary (build failed)
—
(log yok)
| @@ -99,7 +99,7 @@ UNITTEST bool Curl_cidr6_match(const char *ipv6, | |
| return FALSE; | |
| if(bytes && memcmp(address, check, bytes)) | |
| return FALSE; | |
| - | if(rest && !((address[bytes] ^ check[bytes]) & (0xff << (8 - rest)))) |
| + | if(rest && ((address[bytes] ^ check[bytes]) & (0xff << (8 - rest)))) |
| return FALSE; | |
| return TRUE; | |
| @@ -111,6 +111,28 @@ static CURLcode test_unit1614(const char *arg) | |
| { "[::1]", "foo, bar, ::1/64", TRUE}, | |
| { "[::1]", "::1/64", TRUE}, | |
| { "[::1]", "::1/96", TRUE}, | |
| + | { "[::1]", "::1/127", TRUE}, |
| + | { "[::1]", "::1/126", TRUE}, |
| + | { "[::1]", "::1/125", TRUE}, |
| + | { "[::1]", "::1/124", TRUE}, |
| + | { "[::1]", "::1/123", TRUE}, |
| + | { "[::1]", "::1/122", TRUE}, |
| + | { "[2001:db8:8000::1]", "2001:db8::/65", FALSE}, |
| + | { "[2001:db8:8000::1]", "2001:db8::/66", FALSE}, |
| + | { "[2001:db8:8000::1]", "2001:db8::/67", FALSE}, |
| + | { "[2001:db8:8000::1]", "2001:db8::/68", FALSE}, |
| + | { "[2001:db8:8000::1]", "2001:db8::/69", FALSE}, |
| + | { "[2001:db8:8000::1]", "2001:db8::/70", FALSE}, |
| + | { "[2001:db8:8000::1]", "2001:db8::/71", FALSE}, |
| + | { "[2001:db8:8000::1]", "2001:db8::/72", FALSE}, |
| + | { "[2001:db8::1]", "2001:db8::/65", TRUE}, |
| + | { "[2001:db8::1]", "2001:db8::/66", TRUE}, |
| + | { "[2001:db8::1]", "2001:db8::/67", TRUE}, |
| + | { "[2001:db8::1]", "2001:db8::/68", TRUE}, |
| + | { "[2001:db8::1]", "2001:db8::/69", TRUE}, |
| + | { "[2001:db8::1]", "2001:db8::/70", TRUE}, |
| + | { "[2001:db8::1]", "2001:db8::/71", TRUE}, |
| + | { "[2001:db8::1]", "2001:db8::/72", TRUE}, |
| { "[::1]", "::1/129", FALSE}, | |
| { "bar", "foo, bar, ::1/64", TRUE}, | |
| { "BAr", "foo, bar, ::1/64", TRUE}, | |