diff options
author | Loïc Hoguin <[email protected]> | 2019-09-23 13:46:32 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2019-09-23 13:46:32 +0200 |
commit | 2709f328b9976c937d417f9d03b6d8b90ca2d1c5 (patch) | |
tree | b2c44fe4002c7f6d21c04f078f995247688e2240 /src/gun_http.erl | |
parent | cd6d550398fceafbcd47ff22534666bf21e9d8f1 (diff) | |
download | gun-2709f328b9976c937d417f9d03b6d8b90ca2d1c5.tar.gz gun-2709f328b9976c937d417f9d03b6d8b90ca2d1c5.tar.bz2 gun-2709f328b9976c937d417f9d03b6d8b90ca2d1c5.zip |
Properly error out on HTTP/1.0 Websocket upgrade attempts
Diffstat (limited to 'src/gun_http.erl')
-rw-r--r-- | src/gun_http.erl | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gun_http.erl b/src/gun_http.erl index 780dc04..59f4fe7 100644 --- a/src/gun_http.erl +++ b/src/gun_http.erl @@ -777,9 +777,10 @@ end_stream(State=#http_state{streams=[_|Tail]}) -> %% Websocket upgrade. -%% Ensure version is 1.1. -ws_upgrade(#http_state{version='HTTP/1.0'}, _, _, _, _, _, _, _, _) -> - error; %% @todo Probably don't error out here, have a protocol function/command. +ws_upgrade(#http_state{owner=ReplyTo, version='HTTP/1.0'}, StreamRef, _, _, _, _, _, _, EvHandlerState) -> + ReplyTo ! {gun_error, self(), StreamRef, {badstate, + "Websocket cannot be used over an HTTP/1.0 connection."}}, + {[], EvHandlerState}; ws_upgrade(State=#http_state{owner=ReplyTo, out=head}, StreamRef, Host, Port, Path, Headers0, WsOpts, EvHandler, EvHandlerState0) -> |