* src/ejabberd_listener.erl: Added handling of accept errors,
added timeout value to ssl:accept * src/mod_vcard.erl: Added checks for all empty input fields * src/mod_offline.erl: More strong checks for stored packets SVN Revision: 163
This commit is contained in:
parent
20dada9aca
commit
188be0dc62
|
@ -1,5 +1,12 @@
|
||||||
2003-10-28 Alexey Shchepin <alexey@sevcom.net>
|
2003-10-28 Alexey Shchepin <alexey@sevcom.net>
|
||||||
|
|
||||||
|
* src/ejabberd_listener.erl: Added handling of accept errors,
|
||||||
|
added timeout value to ssl:accept
|
||||||
|
|
||||||
|
* src/mod_vcard.erl: Added checks for all empty input fields
|
||||||
|
|
||||||
|
* src/mod_offline.erl: More strong checks for stored packets
|
||||||
|
|
||||||
* src/ejabberd_sm.erl: Bugfix
|
* src/ejabberd_sm.erl: Bugfix
|
||||||
|
|
||||||
2003-10-27 Alexey Shchepin <alexey@sevcom.net>
|
2003-10-27 Alexey Shchepin <alexey@sevcom.net>
|
||||||
|
|
|
@ -67,16 +67,11 @@ accept(ListenSocket, Module, Opts) ->
|
||||||
ok
|
ok
|
||||||
end,
|
end,
|
||||||
{ok, Pid} = Module:start({gen_tcp, Socket}, Opts),
|
{ok, Pid} = Module:start({gen_tcp, Socket}, Opts),
|
||||||
%{ok, Pid} =
|
|
||||||
% supervisor:start_child(
|
|
||||||
% ejabberd_tmp_sup,
|
|
||||||
% {{Module, Socket},
|
|
||||||
% {Module, start_link, [{gen_tcp, Socket}, Opts]},
|
|
||||||
% transient,
|
|
||||||
% brutal_kill,
|
|
||||||
% worker,
|
|
||||||
% [Module]}),
|
|
||||||
gen_tcp:controlling_process(Socket, Pid),
|
gen_tcp:controlling_process(Socket, Pid),
|
||||||
|
accept(ListenSocket, Module, Opts);
|
||||||
|
{error, Reason} ->
|
||||||
|
?INFO_MSG("(~w) Failed TCP accept: ~w",
|
||||||
|
[ListenSocket, Reason]),
|
||||||
accept(ListenSocket, Module, Opts)
|
accept(ListenSocket, Module, Opts)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -90,7 +85,7 @@ init_ssl(Port, Module, Opts, SSLOpts) ->
|
||||||
accept_ssl(ListenSocket, Module, Opts).
|
accept_ssl(ListenSocket, Module, Opts).
|
||||||
|
|
||||||
accept_ssl(ListenSocket, Module, Opts) ->
|
accept_ssl(ListenSocket, Module, Opts) ->
|
||||||
case ssl:accept(ListenSocket) of
|
case ssl:accept(ListenSocket, 200) of
|
||||||
{ok, Socket} ->
|
{ok, Socket} ->
|
||||||
case {ssl:sockname(Socket), ssl:peername(Socket)} of
|
case {ssl:sockname(Socket), ssl:peername(Socket)} of
|
||||||
{{ok, Addr}, {ok, PAddr}} ->
|
{{ok, Addr}, {ok, PAddr}} ->
|
||||||
|
@ -99,7 +94,13 @@ accept_ssl(ListenSocket, Module, Opts) ->
|
||||||
_ ->
|
_ ->
|
||||||
ok
|
ok
|
||||||
end,
|
end,
|
||||||
apply(Module, start_link, [{ssl, Socket}, Opts]),
|
Module:start_link({ssl, Socket}, Opts),
|
||||||
|
accept_ssl(ListenSocket, Module, Opts);
|
||||||
|
{error, timeout} ->
|
||||||
|
accept_ssl(ListenSocket, Module, Opts);
|
||||||
|
{error, Reason} ->
|
||||||
|
?INFO_MSG("(~w) Failed SSL handshake: ~w",
|
||||||
|
[ListenSocket, Reason]),
|
||||||
accept_ssl(ListenSocket, Module, Opts)
|
accept_ssl(ListenSocket, Module, Opts)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,8 @@ stop() ->
|
||||||
|
|
||||||
store_packet(From, To, Packet) ->
|
store_packet(From, To, Packet) ->
|
||||||
true = is_process_alive(whereis(?PROCNAME)),
|
true = is_process_alive(whereis(?PROCNAME)),
|
||||||
|
Type = xml:get_tag_attr_s("type", Packet),
|
||||||
|
true = Type /= "error" andalso Type /= "groupchat",
|
||||||
case check_event(From, To, Packet) of
|
case check_event(From, To, Packet) of
|
||||||
true ->
|
true ->
|
||||||
#jid{luser = LUser} = To,
|
#jid{luser = LUser} = To,
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
-include("jlib.hrl").
|
-include("jlib.hrl").
|
||||||
|
|
||||||
|
|
||||||
|
%-define(JUD_ALLOW_RETURN_ALL, true)
|
||||||
|
|
||||||
-record(vcard_search, {user, luser,
|
-record(vcard_search, {user, luser,
|
||||||
fn, lfn,
|
fn, lfn,
|
||||||
family, lfamily,
|
family, lfamily,
|
||||||
|
@ -386,6 +388,7 @@ record_to_item(R) ->
|
||||||
]
|
]
|
||||||
}.
|
}.
|
||||||
|
|
||||||
|
-ifdef(JUD_ALLOW_RETURN_ALL).
|
||||||
|
|
||||||
search(Data) ->
|
search(Data) ->
|
||||||
MatchSpec = make_matchspec(Data),
|
MatchSpec = make_matchspec(Data),
|
||||||
|
@ -397,6 +400,27 @@ search(Data) ->
|
||||||
Rs
|
Rs
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
-else.
|
||||||
|
|
||||||
|
search(Data) ->
|
||||||
|
MatchSpec = make_matchspec(Data),
|
||||||
|
if
|
||||||
|
MatchSpec == #vcard_search{_ = '_'} ->
|
||||||
|
[];
|
||||||
|
true ->
|
||||||
|
case catch mnesia:dirty_select(vcard_search,
|
||||||
|
[{MatchSpec, [], ['$_']}]) of
|
||||||
|
{'EXIT', Reason} ->
|
||||||
|
?ERROR_MSG("~p", [Reason]),
|
||||||
|
[];
|
||||||
|
Rs ->
|
||||||
|
Rs
|
||||||
|
end
|
||||||
|
end.
|
||||||
|
|
||||||
|
-endif.
|
||||||
|
|
||||||
|
|
||||||
% TODO: remove
|
% TODO: remove
|
||||||
% F = fun() ->
|
% F = fun() ->
|
||||||
% mnesia:select(vcard_search, [{MatchSpec, [], ['$_']}])
|
% mnesia:select(vcard_search, [{MatchSpec, [], ['$_']}])
|
||||||
|
|
Loading…
Reference in New Issue