diff options
Diffstat (limited to 'src/cowboy_http_req.erl')
-rw-r--r-- | src/cowboy_http_req.erl | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/cowboy_http_req.erl b/src/cowboy_http_req.erl index da7c16f..06f1e6b 100644 --- a/src/cowboy_http_req.erl +++ b/src/cowboy_http_req.erl @@ -38,7 +38,8 @@ -export([ reply/2, reply/3, reply/4, - chunked_reply/2, chunked_reply/3, chunk/2 + chunked_reply/2, chunked_reply/3, chunk/2, + upgrade_reply/3 ]). %% Response API. -export([ @@ -374,6 +375,17 @@ chunk(Data, #http_req{socket=Socket, transport=Transport, resp_state=chunks}) -> Transport:send(Socket, [integer_to_list(iolist_size(Data), 16), <<"\r\n">>, Data, <<"\r\n">>]). +%% @doc Send an upgrade reply. +-spec upgrade_reply(http_status(), http_headers(), #http_req{}) + -> {ok, #http_req{}}. +upgrade_reply(Status, Headers, Req=#http_req{socket=Socket, transport=Transport, + resp_state=waiting}) -> + Head = response_head(Status, Headers, [ + {<<"Connection">>, <<"Upgrade">>} + ]), + Transport:send(Socket, Head), + {ok, Req#http_req{resp_state=done}}. + %% Misc API. %% @doc Compact the request data by removing all non-system information. |