From f04fe5f74314f14cdfee3c59ac28ec5b2b5e4cd5 Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Thu, 22 Dec 2011 16:35:56 +0200 Subject: [PATCH] Always allow packets from user's server and bare jid in mod_privacy* --- src/mod_privacy.erl | 21 +++++++++++++++++++++ src/mod_privacy_odbc.erl | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) 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, _}},