Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2011-12-23 14:55:01 +0400
committerBadlop <badlop@process-one.net>2011-12-23 14:55:01 +0400
commit09a5fafc8a6feb49dff551b48b010f764f4db06f (patch)
tree0e0f6330d62df8582a8e7cf75c44eba2b569db96
parent64036bc1215e2126fd46e807c26fb5a89e73e61f (diff)
Always allow packets from user's server and bare jid (thanks to Alexey Shchepin)
-rw-r--r--src/mod_privacy.erl22
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},