diff options
author | Alexey Shchepin <alexey@process-one.net> | 2011-12-22 16:35:56 +0200 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2011-12-22 16:37:47 +0200 |
commit | a3c58f28965fb6a858f1a6d347a9bd9548c6e927 (patch) | |
tree | 40299e3c56b2efbee64bb413b3cd9dd75cfe999f /src | |
parent | Fixed 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.erl | 21 | ||||
-rw-r--r-- | src/mod_privacy_odbc.erl | 21 |
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, _}}, |