aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2015-04-10 17:34:26 +0300
committerLoïc Hoguin <[email protected]>2015-04-10 17:34:26 +0300
commitf618634bf648124c9562aaf49ee460be9ef71ae7 (patch)
treea0bd678d5e053358d3662ee626db677ab6033b2e /src
parentcff0a87d3cbdcf67a9049cdc2784d459711e2867 (diff)
downloadgun-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.erl2
-rw-r--r--src/gun_http.erl8
-rw-r--r--src/gun_ws.erl6
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.