Skip to content
Snippets Groups Projects
Commit f35a4b85 authored by Joshua Colp's avatar Joshua Colp
Browse files

res/res_http_websocket: Don't send HTTP response fragmented.

This change makes it so that when accepting a WebSocket
connection the HTTP response is sent as one packet instead of
fragmented. Browsers don't like it when you send it fragmented.

ASTERISK-25103

Change-Id: I9b82c4ec2949b0bce692ad0bf6f7cea9709e7f69
parent 2c17515f
Branches
Tags
No related merge requests found
...@@ -781,13 +781,6 @@ int AST_OPTIONAL_API_NAME(ast_websocket_uri_cb)(struct ast_tcptls_session_instan ...@@ -781,13 +781,6 @@ int AST_OPTIONAL_API_NAME(ast_websocket_uri_cb)(struct ast_tcptls_session_instan
return 0; return 0;
} }
fprintf(ser->f, "HTTP/1.1 101 Switching Protocols\r\n"
"Upgrade: %s\r\n"
"Connection: Upgrade\r\n"
"Sec-WebSocket-Accept: %s\r\n",
upgrade,
websocket_combine_key(key, base64, sizeof(base64)));
/* RFC 6455, Section 4.1: /* RFC 6455, Section 4.1:
* *
* 6. If the response includes a |Sec-WebSocket-Protocol| header * 6. If the response includes a |Sec-WebSocket-Protocol| header
...@@ -798,11 +791,23 @@ int AST_OPTIONAL_API_NAME(ast_websocket_uri_cb)(struct ast_tcptls_session_instan ...@@ -798,11 +791,23 @@ int AST_OPTIONAL_API_NAME(ast_websocket_uri_cb)(struct ast_tcptls_session_instan
* Connection_. * Connection_.
*/ */
if (protocol) { if (protocol) {
fprintf(ser->f, "Sec-WebSocket-Protocol: %s\r\n", fprintf(ser->f, "HTTP/1.1 101 Switching Protocols\r\n"
"Upgrade: %s\r\n"
"Connection: Upgrade\r\n"
"Sec-WebSocket-Accept: %s\r\n"
"Sec-WebSocket-Protocol: %s\r\n\r\n",
upgrade,
websocket_combine_key(key, base64, sizeof(base64)),
protocol); protocol);
} else {
fprintf(ser->f, "HTTP/1.1 101 Switching Protocols\r\n"
"Upgrade: %s\r\n"
"Connection: Upgrade\r\n"
"Sec-WebSocket-Accept: %s\r\n\r\n",
upgrade,
websocket_combine_key(key, base64, sizeof(base64)));
} }
fprintf(ser->f, "\r\n");
fflush(ser->f); fflush(ser->f);
} else { } else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment