diff options
author | Loïc Hoguin <[email protected]> | 2012-08-27 11:50:35 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2012-08-27 11:50:35 +0200 |
commit | e4124de2c71564d37b3732ede0fe1542de1d6f99 (patch) | |
tree | 0e632d9eb44c848bfc4b9190251e7c8566c8debc /src/cowboy_acceptor.erl | |
parent | 50e5a616dcaa765f0c795f565d361196823ed2fe (diff) | |
download | cowboy-e4124de2c71564d37b3732ede0fe1542de1d6f99.tar.gz cowboy-e4124de2c71564d37b3732ede0fe1542de1d6f99.tar.bz2 cowboy-e4124de2c71564d37b3732ede0fe1542de1d6f99.zip |
Switch to Ranch for connection handling
This is the first of many API incompatible changes.
You have been warned.
Diffstat (limited to 'src/cowboy_acceptor.erl')
-rw-r--r-- | src/cowboy_acceptor.erl | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/cowboy_acceptor.erl b/src/cowboy_acceptor.erl deleted file mode 100644 index 55ef933..0000000 --- a/src/cowboy_acceptor.erl +++ /dev/null @@ -1,57 +0,0 @@ -%% Copyright (c) 2011-2012, Loïc Hoguin <[email protected]> -%% -%% Permission to use, copy, modify, and/or distribute this software for any -%% purpose with or without fee is hereby granted, provided that the above -%% copyright notice and this permission notice appear in all copies. -%% -%% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -%% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -%% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -%% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -%% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -%% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -%% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -%% @private --module(cowboy_acceptor). - --export([start_link/6]). %% API. --export([acceptor/7]). %% Internal. - -%% API. - --spec start_link(inet:socket(), module(), module(), any(), - pid(), pid()) -> {ok, pid()}. -start_link(LSocket, Transport, Protocol, Opts, - ListenerPid, ReqsSup) -> - Pid = spawn_link(?MODULE, acceptor, - [LSocket, Transport, Protocol, Opts, 1, ListenerPid, ReqsSup]), - {ok, Pid}. - -%% Internal. - --spec acceptor(inet:socket(), module(), module(), any(), - non_neg_integer(), pid(), pid()) -> no_return(). -acceptor(LSocket, Transport, Protocol, Opts, OptsVsn, ListenerPid, ReqsSup) -> - Res = case Transport:accept(LSocket, 2000) of - {ok, CSocket} -> - {ok, Pid} = supervisor:start_child(ReqsSup, - [ListenerPid, CSocket, Transport, Protocol, Opts]), - Transport:controlling_process(CSocket, Pid), - cowboy_listener:add_connection(ListenerPid, - default, Pid, OptsVsn); - {error, timeout} -> - cowboy_listener:check_upgrades(ListenerPid, OptsVsn); - {error, _Reason} -> - %% @todo Probably do something here. If the socket was closed, - %% we may want to try and listen again on the port? - ok - end, - case Res of - ok -> - ?MODULE:acceptor(LSocket, Transport, Protocol, - Opts, OptsVsn, ListenerPid, ReqsSup); - {upgrade, Opts2, OptsVsn2} -> - ?MODULE:acceptor(LSocket, Transport, Protocol, - Opts2, OptsVsn2, ListenerPid, ReqsSup) - end. |