util.ip: Fix protocol detection of IPv6 addresses beginning with : [Backported from 0.10]
--- a/util/ip.lua Fri May 17 14:52:52 2013 +0100
+++ b/util/ip.lua Sat May 18 21:41:17 2013 +0100
@@ -14,8 +14,10 @@
local function new_ip(ipStr, proto)
if not proto then
local sep = ipStr:match("^%x+(.)");
- if sep == ":" then proto = "IPv6"
- elseif sep == "." then proto = "IPv4"
+ if sep == ":" or (not(sep) and ipStr:sub(1,1) == ":") then
+ proto = "IPv6"
+ elseif sep == "." then
+ proto = "IPv4"
end
if not proto then
return nil, "invalid address";