mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-26 17:38:45 +01:00
fixes allow_host/2 on subdomains. added hook s2s_allow_host: the hook should return deny or allow
SVN Revision: 2738
This commit is contained in:
parent
1511a5dc82
commit
311bf4dbb1
@ -486,15 +486,31 @@ update_tables() ->
|
|||||||
|
|
||||||
%% Check if host is in blacklist or white list
|
%% Check if host is in blacklist or white list
|
||||||
allow_host(MyServer, S2SHost) ->
|
allow_host(MyServer, S2SHost) ->
|
||||||
case ejabberd_config:get_local_option({{s2s_host, S2SHost},MyServer}) of
|
case lists:filter(
|
||||||
deny -> false;
|
fun(Host) ->
|
||||||
allow -> true;
|
is_subdomain(MyServer, Host)
|
||||||
_ ->
|
end, ?MYHOSTS) of
|
||||||
case ejabberd_config:get_local_option({s2s_default_policy, MyServer}) of
|
[MyHost|_] ->
|
||||||
deny -> false;
|
allow_host1(MyHost, S2SHost);
|
||||||
allow -> true;
|
[] ->
|
||||||
_ -> true %% The default s2s policy is allow
|
allow_host1(MyServer, S2SHost)
|
||||||
end
|
end.
|
||||||
|
|
||||||
|
allow_host1(MyHost, S2SHost) ->
|
||||||
|
case ejabberd_config:get_local_option({{s2s_host, S2SHost}, MyHost}) of
|
||||||
|
deny -> false;
|
||||||
|
allow -> true;
|
||||||
|
_ ->
|
||||||
|
case ejabberd_config:get_local_option({s2s_default_policy, MyHost}) of
|
||||||
|
deny -> false;
|
||||||
|
_ ->
|
||||||
|
case ejabberd_hooks:run_fold(s2s_allow_host, MyHost,
|
||||||
|
allow, [MyHost, S2SHost]) of
|
||||||
|
deny -> false;
|
||||||
|
allow -> true;
|
||||||
|
_ -> true
|
||||||
|
end
|
||||||
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
%% Get information about S2S connections of the specified type.
|
%% Get information about S2S connections of the specified type.
|
||||||
|
Loading…
Reference in New Issue
Block a user