diff options
author | Loïc Hoguin <[email protected]> | 2015-04-10 17:34:26 +0300 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2015-04-10 17:34:26 +0300 |
commit | f618634bf648124c9562aaf49ee460be9ef71ae7 (patch) | |
tree | a0bd678d5e053358d3662ee626db677ab6033b2e /src | |
parent | cff0a87d3cbdcf67a9049cdc2784d459711e2867 (diff) | |
download | gun-f618634bf648124c9562aaf49ee460be9ef71ae7.tar.gz gun-f618634bf648124c9562aaf49ee460be9ef71ae7.tar.bz2 gun-f618634bf648124c9562aaf49ee460be9ef71ae7.zip |
Add headers to gun_ws_upgrade message
Also improves the code and documentation about this message.
It was incorrectly specified that a gun_ws_upgrade message
could be sent on error; instead a gun_response is sent.
Diffstat (limited to 'src')
-rw-r--r-- | src/gun.erl | 2 | ||||
-rw-r--r-- | src/gun_http.erl | 8 | ||||
-rw-r--r-- | src/gun_ws.erl | 6 |
3 files changed, 8 insertions, 8 deletions
diff --git a/src/gun.erl b/src/gun.erl index ae30494..9ebb34a 100644 --- a/src/gun.erl +++ b/src/gun.erl @@ -393,7 +393,7 @@ flush_pid(ServerPid) -> flush_pid(ServerPid); {gun_error, ServerPid, _} -> flush_pid(ServerPid); - {gun_ws_upgrade, ServerPid, _} -> + {gun_ws_upgrade, ServerPid, _, _} -> flush_pid(ServerPid); {gun_ws, ServerPid, _} -> flush_pid(ServerPid); diff --git a/src/gun_http.erl b/src/gun_http.erl index 6e65341..67c235f 100644 --- a/src/gun_http.erl +++ b/src/gun_http.erl @@ -452,11 +452,11 @@ ws_validate_extensions(_, _, _, _) -> close. %% @todo Validate protocols. -ws_handshake_protocols(Buffer, State, _Headers, Extensions, _GunProtocols = []) -> +ws_handshake_protocols(Buffer, State, Headers, Extensions, _GunProtocols = []) -> Protocols = [], - ws_handshake_end(Buffer, State, Extensions, Protocols). + ws_handshake_end(Buffer, State, Headers, Extensions, Protocols). -ws_handshake_end(Buffer, #http_state{owner=Owner, socket=Socket, transport=Transport}, Extensions, Protocols) -> +ws_handshake_end(Buffer, #http_state{owner=Owner, socket=Socket, transport=Transport}, Headers, Extensions, Protocols) -> %% Send ourselves the remaining buffer, if any. _ = case Buffer of <<>> -> @@ -465,4 +465,4 @@ ws_handshake_end(Buffer, #http_state{owner=Owner, socket=Socket, transport=Trans {OK, _, _} = Transport:messages(), self() ! {OK, Socket, Buffer} end, - gun_ws:init(Owner, Socket, Transport, Extensions, Protocols). + gun_ws:init(Owner, Socket, Transport, Headers, Extensions, Protocols). diff --git a/src/gun_ws.erl b/src/gun_ws.erl index 66d0fa2..a8154d6 100644 --- a/src/gun_ws.erl +++ b/src/gun_ws.erl @@ -16,7 +16,7 @@ -export([check_options/1]). -export([name/0]). --export([init/5]). +-export([init/6]). -export([handle/2]). -export([send/2]). -export([down/1]). @@ -56,8 +56,8 @@ do_check_options([Opt|_]) -> name() -> ws. %% @todo Protocols -init(Owner, Socket, Transport, Extensions, _Protocols) -> - Owner ! {gun_ws_upgrade, self(), ok}, +init(Owner, Socket, Transport, Headers, Extensions, _Protocols) -> + Owner ! {gun_ws_upgrade, self(), ok, Headers}, {upgrade, ?MODULE, #ws_state{owner=Owner, socket=Socket, transport=Transport, extensions=Extensions}}. %% Do not handle anything if we received a close frame. |