aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2011-12-22 16:35:56 +0200
committerAlexey Shchepin <alexey@process-one.net>2011-12-22 16:37:47 +0200
commita3c58f28965fb6a858f1a6d347a9bd9548c6e927 (patch)
tree40299e3c56b2efbee64bb413b3cd9dd75cfe999f /src
parentFixed the previous mod_blocking patch (diff)
Always allow packets from user's server and bare jid in mod_privacy*
Diffstat (limited to 'src')
-rw-r--r--src/mod_privacy.erl21
-rw-r--r--src/mod_privacy_odbc.erl21
2 files changed, 42 insertions, 0 deletions
diff --git a/src/mod_privacy.erl b/src/mod_privacy.erl
index 38ecf138b..e100a8a15 100644
--- a/src/mod_privacy.erl
+++ b/src/mod_privacy.erl
@@ -559,6 +559,27 @@ get_user_list(_, User, Server) ->
%% 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{luser = "", lserver = Server} = _From,
+ #jid{lserver = Server} = _To,
+ _},
+ in) ->
+ allow;
+check_packet(_, _User, _Server,
+ _UserList,
+ {#jid{lserver = Server} = _From,
+ #jid{luser = "", lserver = Server} = _To,
+ _},
+ out) ->
+ allow;
+check_packet(_, _User, _Server,
+ _UserList,
+ {#jid{luser = User, lserver = Server} = _From,
+ #jid{luser = User, lserver = Server} = _To,
+ _},
+ _Dir) ->
+ allow;
check_packet(_, User, Server,
#userlist{list = List, needdb = NeedDb},
{From, To, {xmlelement, PName, Attrs, _}},
diff --git a/src/mod_privacy_odbc.erl b/src/mod_privacy_odbc.erl
index 2df9ee27a..b8d8ec8d6 100644
--- a/src/mod_privacy_odbc.erl
+++ b/src/mod_privacy_odbc.erl
@@ -557,6 +557,27 @@ get_user_list(_, User, Server) ->
%% 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{luser = "", lserver = Server} = _From,
+ #jid{lserver = Server} = _To,
+ _},
+ in) ->
+ allow;
+check_packet(_, _User, _Server,
+ _UserList,
+ {#jid{lserver = Server} = _From,
+ #jid{luser = "", lserver = Server} = _To,
+ _},
+ out) ->
+ allow;
+check_packet(_, _User, _Server,
+ _UserList,
+ {#jid{luser = User, lserver = Server} = _From,
+ #jid{luser = User, lserver = Server} = _To,
+ _},
+ _Dir) ->
+ allow;
check_packet(_, User, Server,
#userlist{list = List, needdb = NeedDb},
{From, To, {xmlelement, PName, Attrs, _}},