aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMickaël Rémond <mickael.remond@process-one.net>2008-05-09 19:53:06 +0000
committerMickaël Rémond <mickael.remond@process-one.net>2008-05-09 19:53:06 +0000
commit977a20700a50f35449e384d668b4dc68eb904fd4 (patch)
treed42fcfd7902f738e459baa6228da3a27bef81e98
parent* src/mod_ip_blacklist.erl: ignore when we do not have the IP. (diff)
* src/mod_ip_blacklist.erl: Better error handling (EJAB-625).
SVN Revision: 1321
-rw-r--r--ChangeLog4
-rw-r--r--src/mod_ip_blacklist.erl21
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 <mremond@process-one.net>
+
+ * src/mod_ip_blacklist.erl: Better error handling (EJAB-625).
+
2008-05-05 Mickael Remond <mremond@process-one.net>
* 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