diff options
author | Badlop <badlop@process-one.net> | 2011-12-23 14:55:01 +0400 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2011-12-23 14:55:01 +0400 |
commit | 09a5fafc8a6feb49dff551b48b010f764f4db06f (patch) | |
tree | 0e0f6330d62df8582a8e7cf75c44eba2b569db96 | |
parent | 64036bc1215e2126fd46e807c26fb5a89e73e61f (diff) |
Always allow packets from user's server and bare jid (thanks to Alexey Shchepin)
-rw-r--r-- | src/mod_privacy.erl | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/mod_privacy.erl b/src/mod_privacy.erl index 3b741b4e7..bb9e55a5c 100644 --- a/src/mod_privacy.erl +++ b/src/mod_privacy.erl @@ -114,6 +114,7 @@ updated_list/3]). -include_lib("exmpp/include/exmpp.hrl"). +-include_lib("exmpp/include/exmpp_jid.hrl"). -include("ejabberd.hrl"). -include("mod_privacy.hrl"). @@ -674,6 +675,27 @@ get_user_list(_, LUser, LServer) %% From is the sender, To is the destination. %% If Dir = out, User@Server is the sender account (From). %% If Dir = in, User@Server is the destination account (To). +check_packet(_, _User, _Server, + _UserList, + {#jid{node = "", domain = Server} = _From, + #jid{domain = Server} = _To, + _}, + in) -> + allow; +check_packet(_, _User, _Server, + _UserList, + {#jid{domain = Server} = _From, + #jid{node = "", domain = Server} = _To, + _}, + out) -> + allow; +check_packet(_, _User, _Server, + _UserList, + {#jid{node = User, domain = Server} = _From, + #jid{node = User, domain = Server} = _To, + _}, + _Dir) -> + allow; check_packet(_, User, Server, #userlist{list = List, needdb = NeedDb}, {From, To, #xmlel{name = PName} = El}, |