mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-26 16:26:24 +01:00
o Finish conversion to exmpp for mod_caps.
o In ejabberd_loca, IQ response handler are now always called with arguments in the new format. SVN Revision: 1469
This commit is contained in:
parent
37b99639d4
commit
adaf392156
@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
* src/mod_disco.erl, src/gen_iq_handler.erl: Convert to exmpp.
|
* src/mod_disco.erl, src/gen_iq_handler.erl: Convert to exmpp.
|
||||||
|
|
||||||
|
* src/mod_caps.erl, src/gen_iq_handler.erl: Finish conversion to
|
||||||
|
exmpp.
|
||||||
|
|
||||||
|
* src/ejabberd_local.erl (process_iq_reply): IQ handler are now always
|
||||||
|
called with arguments in the new format.
|
||||||
|
|
||||||
2008-07-21 Jean-Sébastien Pédron <js.pedron@meetic-corp.com>
|
2008-07-21 Jean-Sébastien Pédron <js.pedron@meetic-corp.com>
|
||||||
|
|
||||||
* src/gen_iq_handler.erl: Prepare gen_iq_handler to pass arguments in
|
* src/gen_iq_handler.erl: Prepare gen_iq_handler to pass arguments in
|
||||||
|
@ -131,11 +131,7 @@ process_iq_reply(From, To, Packet) ->
|
|||||||
end,
|
end,
|
||||||
case mnesia:transaction(F) of
|
case mnesia:transaction(F) of
|
||||||
{atomic, {Module, Function}} ->
|
{atomic, {Module, Function}} ->
|
||||||
% XXX OLD FORMAT: From, To, Packet.
|
Module:Function(From, To, Packet);
|
||||||
FromOld = jlib:to_old_jid(From),
|
|
||||||
ToOld = jlib:to_old_jid(To),
|
|
||||||
IQ_Rec = jlib:iq_query_or_response_info(Packet),
|
|
||||||
Module:Function(FromOld, ToOld, IQ_Rec);
|
|
||||||
_ ->
|
_ ->
|
||||||
ok
|
ok
|
||||||
end
|
end
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
% XXX OLD FORMAT: modules not in the following list will receive
|
% XXX OLD FORMAT: modules not in the following list will receive
|
||||||
% old format strudctures.
|
% old format strudctures.
|
||||||
-define(CONVERTED_MODULES, [
|
-define(CONVERTED_MODULES, [
|
||||||
|
mod_caps,
|
||||||
mod_disco,
|
mod_disco,
|
||||||
mod_roster,
|
mod_roster,
|
||||||
mod_vcard
|
mod_vcard
|
||||||
|
@ -62,13 +62,6 @@
|
|||||||
disco_requests = ?DICT:new(),
|
disco_requests = ?DICT:new(),
|
||||||
feature_queries = []}).
|
feature_queries = []}).
|
||||||
|
|
||||||
% XXX OLD FORMAT: Re-include jlib.hrl (after clean-up).
|
|
||||||
-record(iq, {id = "",
|
|
||||||
type,
|
|
||||||
xmlns = "",
|
|
||||||
lang = "",
|
|
||||||
sub_el}).
|
|
||||||
|
|
||||||
%% read_caps takes a list of XML elements (the child elements of a
|
%% read_caps takes a list of XML elements (the child elements of a
|
||||||
%% <presence/> stanza) and returns an opaque value representing the
|
%% <presence/> stanza) and returns an opaque value representing the
|
||||||
%% Entity Capabilities contained therein, or the atom nothing if no
|
%% Entity Capabilities contained therein, or the atom nothing if no
|
||||||
@ -224,17 +217,16 @@ handle_cast({note_caps, From,
|
|||||||
?ERROR_MSG("Transaction failed: ~p", [Error]),
|
?ERROR_MSG("Transaction failed: ~p", [Error]),
|
||||||
{noreply, State}
|
{noreply, State}
|
||||||
end;
|
end;
|
||||||
handle_cast({disco_response, From, _To,
|
handle_cast({disco_response, From, _To, IQ},
|
||||||
#iq{type = Type, id = ID,
|
|
||||||
sub_el = SubEls}},
|
|
||||||
#state{disco_requests = Requests} = State) ->
|
#state{disco_requests = Requests} = State) ->
|
||||||
case {Type, SubEls} of
|
ID = exmpp_stanza:get_id(IQ),
|
||||||
{result, [{xmlelement, "query", _Attrs, Els}]} ->
|
case {exmpp_iq:get_type(IQ), exmpp_iq:get_payload(IQ)} of
|
||||||
|
{result, #xmlel{name = 'query', children = Els}} ->
|
||||||
case ?DICT:find(ID, Requests) of
|
case ?DICT:find(ID, Requests) of
|
||||||
{ok, {Node, SubNode}} ->
|
{ok, {Node, SubNode}} ->
|
||||||
Features =
|
Features =
|
||||||
lists:flatmap(fun({xmlelement, "feature", FAttrs, _}) ->
|
lists:flatmap(fun(#xmlel{name = 'feature'} = F) ->
|
||||||
[xml:get_attr_s("var", FAttrs)];
|
[exmpp_xml:get_attribute(F, 'var')];
|
||||||
(_) ->
|
(_) ->
|
||||||
[]
|
[]
|
||||||
end, Els),
|
end, Els),
|
||||||
@ -262,9 +254,9 @@ handle_cast({disco_response, From, _To,
|
|||||||
?ERROR_MSG("ID '~s' matches no query", [ID])
|
?ERROR_MSG("ID '~s' matches no query", [ID])
|
||||||
end;
|
end;
|
||||||
%gen_server:cast(self(), visit_feature_queries),
|
%gen_server:cast(self(), visit_feature_queries),
|
||||||
%?DEBUG("Error IQ reponse from ~s:~n~p", [jlib:jid_to_string(From), SubEls]);
|
%?DEBUG("Error IQ reponse from ~s:~n~p", [exmpp_jid:jid_to_string(From), SubEls]);
|
||||||
{result, _} ->
|
{result, _} ->
|
||||||
?DEBUG("Invalid IQ contents from ~s:~n~p", [jlib:jid_to_string(From), SubEls]);
|
?DEBUG("Invalid IQ contents from ~s:~n~p", [exmpp_jid:jid_to_string(From), IQ#xmlel.children]);
|
||||||
_ ->
|
_ ->
|
||||||
%% Can't do anything about errors
|
%% Can't do anything about errors
|
||||||
ok
|
ok
|
||||||
|
Loading…
Reference in New Issue
Block a user