From 977a20700a50f35449e384d668b4dc68eb904fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20R=C3=A9mond?= Date: Fri, 9 May 2008 19:53:06 +0000 Subject: [PATCH] * src/mod_ip_blacklist.erl: Better error handling (EJAB-625). SVN Revision: 1321 --- ChangeLog | 4 ++++ src/mod_ip_blacklist.erl | 21 +++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) 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