LUA_INTERFACE_DEF (ip, apply_mask),
LUA_INTERFACE_DEF (ip, copy),
LUA_INTERFACE_DEF (ip, is_local),
+ {"tostring", lua_ip_to_string},
+ {"totable", lua_ip_to_table},
+ {"tonumber", lua_ip_to_number},
{"__tostring", lua_ip_to_string},
{"__eq", lua_ip_equal},
{"__gc", lua_ip_destroy},
if r['cdb'] then
local srch = value
if type(value) == 'userdata' then
- srch = value:to_string()
+ if value.class == 'rspamd{ip}' then
+ srch = value:tostring()
+ end
end
ret = r['cdb']:lookup(srch)
elseif r['redis_key'] then
local srch = {value}
local cmd = 'HGET'
- if type(value) == 'userdata' then
- srch = {value:to_string()}
+ if type(value) == 'userdata' and value.class == 'rspamd{ip}' then
+ srch = {value:tostring()}
cmd = 'HMGET'
local maxbits = 128
local minbits = 32
minbits = 8
end
for i=maxbits,minbits,-1 do
- local nip = value:apply_mask(i):to_string() .. "/" .. i
+ local nip = value:apply_mask(i):tostring() .. "/" .. i
table.insert(srch, nip)
end
end
ret = r['radix']:get_key(value)
elseif r['hash'] then
if type(value) == 'userdata' then
- value = value:to_string()
+ if value.class == 'rspamd{ip}' then
+ value = value:tostring()
+ end
end
ret = r['hash']:get_key(value)
end