From: Mickaël Rémond Date: Fri, 9 May 2008 19:53:06 +0000 (+0000) Subject: * src/mod_ip_blacklist.erl: Better error handling (EJAB-625). X-Git-Tag: v2.1.0~18^2~713 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=977a20700a50f35449e384d668b4dc68eb904fd4;p=ejabberd * src/mod_ip_blacklist.erl: Better error handling (EJAB-625). SVN Revision: 1321 --- diff --git a/ChangeLog b/ChangeLog index 0ca87d186..63eb9df84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-05-09 Mickael Remond + + * src/mod_ip_blacklist.erl: Better error handling (EJAB-625). + 2008-05-05 Mickael Remond * src/ejabberd_c2s.erl: Added C2S blacklist support (EJAB-625). diff --git a/src/mod_ip_blacklist.erl b/src/mod_ip_blacklist.erl index 495faa5fb..6a0cc3947 100644 --- a/src/mod_ip_blacklist.erl +++ b/src/mod_ip_blacklist.erl @@ -85,20 +85,25 @@ loop(_State) -> %% TODO: Support comment lines starting by % update_bl_c2s() -> ?INFO_MSG("Updating C2S Blacklist", []), - {ok, {{_Version, 200, _Reason}, _Headers, Body}} = http:request(?BLC2S), - IPs = string:tokens(Body,"\n"), - ets:delete_all_objects(bl_c2s), - lists:foreach( - fun(IP) -> - ets:insert(bl_c2s, #bl_c2s{ip=list_to_binary(IP)}) - end, IPs). + case http:request(?BLC2S) of + {ok, {{_Version, 200, _Reason}, _Headers, Body}} -> + IPs = string:tokens(Body,"\n"), + ets:delete_all_objects(bl_c2s), + lists:foreach( + fun(IP) -> + ets:insert(bl_c2s, #bl_c2s{ip=list_to_binary(IP)}) + end, IPs); + {error, Reason} -> + ?ERROR_MSG("Cannot download C2S blacklist file. Reason: ~p", + [Reason]) + end. %% Hook is run with: %% ejabberd_hooks:run_fold(check_bl_c2s, false, [IP]), %% Return: false: IP not blacklisted %% true: IP is blacklisted %% IPV4 IP tuple: -is_ip_in_c2s_blacklist(_Val, IP) -> +is_ip_in_c2s_blacklist(_Val, IP) when is_tuple(IP) -> BinaryIP = list_to_binary(jlib:ip_to_list(IP)), case ets:lookup(bl_c2s, BinaryIP) of [] -> %% Not in blacklist