comparison mod_register_dnsbl/mod_register_dnsbl.lua @ 2891:84670bac7348

mod_register_dnsbl: Use util.net for IP address parsing
author Kim Alvefur <zash@zash.se>
date Fri, 23 Feb 2018 21:59:28 +0100
parents 6412595e2046
children bf9fc41bf7ad
comparison
equal deleted inserted replaced
2890:6412595e2046 2891:84670bac7348
1 local adns = require "net.adns"; 1 local adns = require "net.adns";
2 local async = require "util.async"; 2 local async = require "util.async";
3 local inet_pton = require "util.net".pton;
3 4
4 local rbl = module:get_option_string("registration_rbl"); 5 local rbl = module:get_option_string("registration_rbl");
5 6
6 local function reverse(ip, suffix) 7 local function reverse(ip, suffix)
7 local a,b,c,d = ip:match("^(%d+).(%d+).(%d+).(%d+)$"); 8 local n, err = inet_pton(ip);
8 if not a then return end 9 if not n then return n, err end
9 return ("%d.%d.%d.%d.%s"):format(d,c,b,a, suffix); 10 if #n == 4 then
11 local a,b,c,d = n:byte(1,4);
12 return ("%d.%d.%d.%d.%s"):format(d,c,b,a, suffix);
13 end
10 end 14 end
11 15
12 module:hook("user-registering", function (event) 16 module:hook("user-registering", function (event)
13 local session, ip = event.session, event.ip; 17 local session, ip = event.session, event.ip;
14 if not ip then 18 if not ip then