+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>
* src/ejabberd_sm.erl: Remove unnecessary use delete_object, which can,
StateData)};
[{exit, Reason}] ->
{exit, Attrs, Reason};
- [{privacy_list, PrivList}] ->
+ [{privacy_list, PrivList, PrivListName}] ->
{false, Attrs,
case catch mod_privacy:updated_list(
StateData#state.privacy_list,
{'EXIT', _} ->
{false, Attrs, StateData};
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}
end};
_ ->
jlib:make_jid(LUser, ?MYNAME, ""),
jlib:make_jid(LUser, ?MYNAME, ""),
{xmlelement, "broadcast", [],
- [{privacy_list, #userlist{name = Name, list = []}}]}),
+ [{privacy_list,
+ #userlist{name = Name, list = []},
+ Name}]}),
Res;
_ ->
{error, ?ERR_INTERNAL_SERVER_ERROR}
jlib:make_jid(LUser, ?MYNAME, ""),
jlib:make_jid(LUser, ?MYNAME, ""),
{xmlelement, "broadcast", [],
- [{privacy_list, #userlist{name = Name, list = List}}]}),
+ [{privacy_list,
+ #userlist{name = Name, list = List},
+ Name}]}),
Res;
_ ->
{error, ?ERR_INTERNAL_SERVER_ERROR}