{'./socket', true},
{'[fe80::f919:8b26:ff93:3092%5]', true},
{'[fe80::f919:8b26:ff93:3092]', true},
+ {'IPv6:::1', true},
+ {'IPv6:[::1]', true},
+ {'IPv6[:::1]', false},
+ {'[::]', true},
+ {'[1::]', true},
+ {'[000:01:02:003:004:5:6:007]', true}, -- leading zeros
+ {'[A:b:c:DE:fF:0:1:aC]', true}, -- mixed case
+ {'[::192.168.0.1]', true}, -- embedded ipv4
+ {'[1:2:192.168.0.1:5:6]', false}, -- poor octets
+ {'[::ffff:192.1.2]', false}, -- ipv4 without last octet (maybe should be true?)
+ {'[0:0::0:0:8]', true}, -- bogus zeros
+ {'[::192.168.0.0.1]', false}, -- invalid mapping
}
for i,c in ipairs(cases) do
- test("Create inet addr from string " .. i, function()
+ test("Create inet addr from string " .. c[1] .. '; expect ' .. tostring(c[2]), function()
local ip = ffi.new("rspamd_inet_addr_t* [1]");
local res = ffi.C.rspamd_parse_inet_address(ip, c[1])
assert_equal(res, c[2], "Expect " .. tostring(c[2]) .. " while parsing " .. c[1])