# HG changeset patch # User Kim Alvefur # Date 1512099229 -3600 # Node ID ec8f37baffaa7074d3b9321717b8e81c327988c4 # Parent ca7f8e60410a496611332661350e6831b125cb25 util.ip: Simplify creation of IPv6-mapped IPv4 addresses diff -r ca7f8e60410a -r ec8f37baffaa util/ip.lua --- a/util/ip.lua Fri Dec 01 04:33:27 2017 +0100 +++ b/util/ip.lua Fri Dec 01 04:33:49 2017 +0100 @@ -155,22 +155,9 @@ end end -local function toV4mapped(ip) - local fields = {}; - local ret = "::ffff:"; - ip:gsub("([^.]*).?", function (c) fields[#fields + 1] = tonumber(c) end); - ret = ret .. ("%02x"):format(fields[1]); - ret = ret .. ("%02x"):format(fields[2]); - ret = ret .. ":" - ret = ret .. ("%02x"):format(fields[3]); - ret = ret .. ("%02x"):format(fields[4]); - return new_ip(ret, "IPv6"); -end - function ip_methods:toV4mapped() if self.proto ~= "IPv4" then return nil, "No IPv4 address" end - local value = toV4mapped(self.addr); - self.toV4mapped = value; + local value = new_ip("::ffff:" .. self.normal); return value; end