From f9390f3e9a7999392c33c91173e176293a489407 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Mon, 24 Jun 2013 20:04:56 +1000 Subject: [PATCH] Fix some dialyzer warnings --- src/ejabberd_c2s.erl | 5 +---- src/ejabberd_http.erl | 2 +- src/ejabberd_receiver.erl | 2 +- src/ejabberd_s2s.erl | 4 ++-- src/mod_muc.erl | 9 +++++---- src/mod_offline.erl | 35 +++++++++++++++++++++++++++++++++++ 6 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 903f321da..c7038e6b2 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -283,10 +283,7 @@ get_subscribed(FsmRef) -> %%---------------------------------------------------------------------- wait_for_stream({xmlstreamstart, _Name, Attrs}, StateData) -> - DefaultLang = case ?MYLANG of - undefined -> <<"en">>; - DL -> DL - end, + DefaultLang = ?MYLANG, case xml:get_attr_s(<<"xmlns:stream">>, Attrs) of ?NS_STREAM -> Server = jlib:nameprep(xml:get_attr_s(<<"to">>, Attrs)), diff --git a/src/ejabberd_http.erl b/src/ejabberd_http.erl index 240e0105b..697aac116 100644 --- a/src/ejabberd_http.erl +++ b/src/ejabberd_http.erl @@ -198,7 +198,7 @@ parse_headers(#state{request_method = Method, undefined -> http; _ -> httph end, - case erlang:decode_packet(PktType, Data) of + case erlang:decode_packet(PktType, Data, []) of {ok, Pkt, Rest} -> NewState = process_header(State#state{trail = Rest}, {ok, Pkt}), case NewState#state.end_of_request of diff --git a/src/ejabberd_receiver.erl b/src/ejabberd_receiver.erl index 88a7405fd..f666ea837 100644 --- a/src/ejabberd_receiver.erl +++ b/src/ejabberd_receiver.erl @@ -102,7 +102,7 @@ change_shaper(Pid, Shaper) -> reset_stream(Pid) -> do_call(Pid, reset_stream). --spec starttls(pid(), iodata()) -> {ok, p1_tls:tls_socket()} | {error, any()}. +-spec starttls(pid(), p1_tls:tls_socket()) -> ok. starttls(Pid, TLSSocket) -> do_call(Pid, {starttls, TLSSocket}). diff --git a/src/ejabberd_s2s.erl b/src/ejabberd_s2s.erl index 63fdc7660..591d31da2 100644 --- a/src/ejabberd_s2s.erl +++ b/src/ejabberd_s2s.erl @@ -62,8 +62,8 @@ %% once a server is temporarly blocked, it stay blocked for 60 seconds --record(s2s, {fromto = {<<"">>, <<"">>} :: {binary(), binary()}, - pid = self() :: pid() | '_', +-record(s2s, {fromto = {<<"">>, <<"">>} :: {binary(), binary()} | '_', + pid = self() :: pid() | '_' | '$1', key = <<"">> :: binary() | '_'}). -record(state, {}). diff --git a/src/mod_muc.erl b/src/mod_muc.erl index d3794d141..6b87f1579 100644 --- a/src/mod_muc.erl +++ b/src/mod_muc.erl @@ -60,8 +60,9 @@ opts = [] :: list() | '_'}). -record(muc_online_room, - {name_host = {<<"">>, <<"">>} :: {binary(), binary()} | '$1', - pid = self() :: pid() | '$2' | '_'}). + {name_host = {<<"">>, <<"">>} :: {binary(), binary()} | '$1' | + {'_', binary()} | '_', + pid = self() :: pid() | '$2' | '_' | '$1'}). -record(muc_registered, {us_host = {{<<"">>, <<"">>}, <<"">>} :: {{binary(), binary()}, binary()} | '$1', @@ -1104,7 +1105,7 @@ update_tables(Host) -> update_muc_room_table(Host), update_muc_registered_table(Host). -update_muc_room_table(Host) -> +update_muc_room_table(_Host) -> Fields = record_info(fields, muc_room), case mnesia:table_info(muc_room, attributes) of Fields -> @@ -1122,7 +1123,7 @@ update_muc_room_table(Host) -> mnesia:transform_table(muc_room, ignore, Fields) end. -update_muc_registered_table(Host) -> +update_muc_registered_table(_Host) -> Fields = record_info(fields, muc_registered), case mnesia:table_info(muc_registered, attributes) of Fields -> diff --git a/src/mod_offline.erl b/src/mod_offline.erl index bf7da6cd3..503317485 100644 --- a/src/mod_offline.erl +++ b/src/mod_offline.erl @@ -43,6 +43,7 @@ remove_old_messages/2, remove_user/2, get_queue_length/2, + get_offline_els/2, webadmin_page/3, webadmin_user/4, webadmin_user_parse_query/5]). @@ -520,6 +521,40 @@ webadmin_page(_, Host, Res = user_queue(U, Host, Query, Lang), {stop, Res}; webadmin_page(Acc, _, _) -> Acc. +get_offline_els(LUser, LServer) -> + get_offline_els(LUser, LServer, gen_mod:db_type(LServer, ?MODULE)). + +get_offline_els(LUser, LServer, mnesia) -> + Msgs = read_all_msgs(LUser, LServer, mnesia), + lists:map( + fun(Msg) -> + {route, From, To, Packet} = offline_msg_to_route(LServer, Msg), + jlib:replace_from_to(From, To, Packet) + end, Msgs); +get_offline_els(LUser, LServer, odbc) -> + Username = ejabberd_odbc:escape(LUser), + case catch ejabberd_odbc:sql_query(LServer, + [<<"select xml from spool where username='">>, + Username, <<"' order by seq;">>]) of + {selected, [<<"xml">>], Rs} -> + lists:flatmap( + fun([XML]) -> + case xml_stream:parse_element(XML) of + #xmlel{} = El -> + case offline_msg_to_route(LServer, El) of + {route, _, _, NewEl} -> + [NewEl]; + error -> + [] + end; + _ -> + [] + end + end, Rs); + _ -> + [] + end. + offline_msg_to_route(LServer, #offline_msg{} = R) -> El = #xmlel{children = Els} = R#offline_msg.packet, {route, R#offline_msg.from, R#offline_msg.to,