aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_http_websocket.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/cowboy_http_websocket.erl')
-rw-r--r--src/cowboy_http_websocket.erl18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/cowboy_http_websocket.erl b/src/cowboy_http_websocket.erl
index 4cd24dc..0150a6f 100644
--- a/src/cowboy_http_websocket.erl
+++ b/src/cowboy_http_websocket.erl
@@ -81,9 +81,9 @@ upgrade_error(Req=#http_req{socket=Socket, transport=Transport}) ->
-spec websocket_handshake(State::#state{}, Req::#http_req{},
HandlerState::term()) -> ok.
websocket_handshake(State=#state{origin=Origin, challenge=Challenge},
- Req=#http_req{transport=Transport, raw_host=Host, raw_path=Path},
- HandlerState) ->
- Location = websocket_location(Transport:name(), Host, Path),
+ Req=#http_req{transport=Transport, raw_host=Host, port=Port,
+ raw_path=Path}, HandlerState) ->
+ Location = websocket_location(Transport:name(), Host, Port, Path),
{ok, Req2} = cowboy_http_req:reply(
"101 WebSocket Protocol Handshake",
[{"Connection", "Upgrade"},
@@ -94,12 +94,12 @@ websocket_handshake(State=#state{origin=Origin, challenge=Challenge},
handler_loop(State#state{messages=Transport:messages()},
Req2, HandlerState, <<>>).
--spec websocket_location(TransName::atom(), Host::string(), Path::string())
- -> string().
-websocket_location(ssl, Host, Path) ->
- "wss://" ++ Host ++ Path;
-websocket_location(_Any, Host, Path) ->
- "ws://" ++ Host ++ Path.
+-spec websocket_location(TransName::atom(), Host::string(),
+ Port::ip_port(), Path::string()) -> string().
+websocket_location(ssl, Host, Port, Path) ->
+ "wss://" ++ Host ++ ":" ++ integer_to_list(Port) ++ Path;
+websocket_location(_Any, Host, Port, Path) ->
+ "ws://" ++ Host ++ ":" ++ integer_to_list(Port) ++ Path.
-spec handler_loop(State::#state{}, Req::#http_req{},
HandlerState::term(), SoFar::binary()) -> ok.