25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-26 16:26:24 +01:00

* src/mod_privacy.erl: Fixed privacy list pushing (thanks to

Sergei Golovan)
* src/ejabberd_c2s.erl: Likewise

SVN Revision: 520
This commit is contained in:
Alexey Shchepin 2006-03-17 04:35:03 +00:00
parent eabf8d1c6c
commit a6b3e6c904
3 changed files with 28 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2006-03-17 Alexey Shchepin <alexey@sevcom.net>
* src/mod_privacy.erl: Fixed privacy list pushing (thanks to
Sergei Golovan)
* src/ejabberd_c2s.erl: Likewise
2006-03-16 Mickael Remond <mickael.remond@process-one.net> 2006-03-16 Mickael Remond <mickael.remond@process-one.net>
* src/ejabberd_sm.erl: Remove unnecessary use delete_object, which can, * src/ejabberd_sm.erl: Remove unnecessary use delete_object, which can,

View File

@ -1015,7 +1015,7 @@ handle_info({route, From, To, Packet}, StateName, StateData) ->
StateData)}; StateData)};
[{exit, Reason}] -> [{exit, Reason}] ->
{exit, Attrs, Reason}; {exit, Attrs, Reason};
[{privacy_list, PrivList}] -> [{privacy_list, PrivList, PrivListName}] ->
{false, Attrs, {false, Attrs,
case catch mod_privacy:updated_list( case catch mod_privacy:updated_list(
StateData#state.privacy_list, StateData#state.privacy_list,
@ -1023,6 +1023,21 @@ handle_info({route, From, To, Packet}, StateName, StateData) ->
{'EXIT', _} -> {'EXIT', _} ->
{false, Attrs, StateData}; {false, Attrs, StateData};
NewPL -> NewPL ->
PrivPushIQ =
#iq{type = set, xmlns = ?NS_PRIVACY,
id = "push",
sub_el = [{xmlelement, "query",
[{"xmlns", ?NS_PRIVACY}],
[{xmlelement, "list",
[{"name", PrivListName}],
[]}]}]},
PrivPushEl =
jlib:replace_from_to(
jlib:jid_remove_resource(
StateData#state.jid),
StateData#state.jid,
jlib:iq_to_xml(PrivPushIQ)),
send_element(StateData, PrivPushEl),
StateData#state{privacy_list = NewPL} StateData#state{privacy_list = NewPL}
end}; end};
_ -> _ ->

View File

@ -362,7 +362,9 @@ process_list_set(LUser, LServer, {value, Name}, Els) ->
jlib:make_jid(LUser, ?MYNAME, ""), jlib:make_jid(LUser, ?MYNAME, ""),
jlib:make_jid(LUser, ?MYNAME, ""), jlib:make_jid(LUser, ?MYNAME, ""),
{xmlelement, "broadcast", [], {xmlelement, "broadcast", [],
[{privacy_list, #userlist{name = Name, list = []}}]}), [{privacy_list,
#userlist{name = Name, list = []},
Name}]}),
Res; Res;
_ -> _ ->
{error, ?ERR_INTERNAL_SERVER_ERROR} {error, ?ERR_INTERNAL_SERVER_ERROR}
@ -391,7 +393,9 @@ process_list_set(LUser, LServer, {value, Name}, Els) ->
jlib:make_jid(LUser, ?MYNAME, ""), jlib:make_jid(LUser, ?MYNAME, ""),
jlib:make_jid(LUser, ?MYNAME, ""), jlib:make_jid(LUser, ?MYNAME, ""),
{xmlelement, "broadcast", [], {xmlelement, "broadcast", [],
[{privacy_list, #userlist{name = Name, list = List}}]}), [{privacy_list,
#userlist{name = Name, list = List},
Name}]}),
Res; Res;
_ -> _ ->
{error, ?ERR_INTERNAL_SERVER_ERROR} {error, ?ERR_INTERNAL_SERVER_ERROR}