Sfoglia il codice sorgente

ft: 代码修改

master
SisMaker 3 anni fa
parent
commit
cfaafa446d
2 ha cambiato i file con 12 aggiunte e 16 eliminazioni
  1. +2
    -1
      src/wsSrv/elli.erl
  2. +10
    -15
      src/wsSrv/wsHttp.erl

+ 2
- 1
src/wsSrv/elli.erl Vedi File

@ -5,7 +5,8 @@
-include("eWSrv.hrl").
-include("wsCom.hrl").
-export([start_link/0,
-export([
start_link/0,
start_link/1,
stop/1,
get_acceptors/1,

+ 10
- 15
src/wsSrv/wsHttp.erl Vedi File

@ -45,8 +45,7 @@
Options :: proplists:proplist(),
Callback :: wsHer:callback().
start_link(Server, ListenSocket, Options, Callback) ->
proc_lib:spawn_link(?MODULE, accept,
[Server, ListenSocket, Options, Callback]).
proc_lib:spawn_link(?MODULE, accept, [Server, ListenSocket, Options, Callback]).
%% @doc Accept on the socket until a client connects.
%% Handle the request, then loop if we're using keep alive or chunked transfer.
@ -80,10 +79,9 @@ keepalive_loop(Socket, Options, Callback) ->
keepalive_loop(Socket, 0, <<>>, Options, Callback).
keepalive_loop(Socket, NumRequests, Buffer, Options, Callback) ->
case ?n>MODULE:handle_request(Socket, Buffer, Options, Callback) of
case handle_request(Socket, Buffer, Options, Callback) of
{keep_alive, NewBuffer} ->
?MODULE:keepalive_loop(Socket, NumRequests + 1,
NewBuffer, Options, Callback);
keepalive_loop(Socket, NumRequests + 1, NewBuffer, Options, Callback);
{close, _} ->
wsNet:close(Socket),
ok
@ -125,9 +123,7 @@ handle_request(S, PrevB, Opts, {Mod, Args} = Callback) ->
t(user_end),
t(request_end),
handle_event(Mod, request_complete,
[Req1, handover, [], <<>>, {get_timings(),
get_sizes()}], Args),
handle_event(Mod, request_complete, [Req1, handover, [], <<>>, {get_timings(), get_sizes()}], Args),
Response
end.
@ -332,7 +328,7 @@ execute_callback(#req{callback = {Mod, Args}} = Req) ->
exit:Exit:Stacktrace ->
handle_event(Mod, request_exit, [Req, Exit, Stacktrace], Args),
{response, 500, [], <<"Internal server error">>}
end .
end.
%%
%% CHUNKED-TRANSFER
@ -460,8 +456,7 @@ get_headers(_Socket, {0, 9}, _, _, _) ->
get_headers(Socket, {1, _}, Buffer, Opts, Callback) ->
get_headers(Socket, Buffer, {[], []}, 0, Opts, Callback).
get_headers(Socket, _, {Headers, _}, HeadersCount, _Opts, {Mod, Args})
when HeadersCount >= 100 ->
get_headers(Socket, _, {Headers, _}, HeadersCount, _Opts, {Mod, Args}) when HeadersCount >= 100 ->
handle_event(Mod, bad_request, [{too_many_headers, Headers}], Args),
send_bad_request(Socket),
wsNet:close(Socket),
@ -808,9 +803,9 @@ handle_event(Mod, Name, EventArgs, ElliArgs) ->
Mod:handle_event(Name, EventArgs, ElliArgs)
catch
EvClass:EvError:Stacktrace ->
?wsErr("~p:handle_event/3 crashed ~p:~p~n~p",
[Mod, EvClass, EvError, Stacktrace])
end.
?wsErr("~p:handle_event/3 crashed ~p:~p~n~p",
[Mod, EvClass, EvError, Stacktrace])
end.
%%
%% TIMING HELPERS
@ -931,7 +926,7 @@ status(506) -> <<"506 Variant Also Negotiates">>;
status(507) -> <<"507 Insufficient Storage">>;
status(510) -> <<"510 Not Extended">>;
status(511) -> <<"511 Network Authentication Required">>;
status(I) when is_integer(I), I >= 100, I < 1000 -> <<(integer_to_binary(I))/binary, "Status">>;
status(I) when is_integer(I), I >= 100, I < 1000 -> <<(integer_to_binary(I))/binary, "Status">>;
status(B) when is_binary(B) -> B.

Caricamento…
Annulla
Salva