diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2023-12-13 19:51:34 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-13 14:21:34 +0000 |
commit | 461ef6bdd80347caa12934c2c16337bc8d40d9a4 (patch) | |
tree | d87c365ec1e4bf35e977f13fb0ad0e8675500be9 /ext | |
parent | 346d8127095f46bd5c58667f860521690ddd9cd7 (diff) |
fix(websockets): server socket field initialization (#21433)
Diffstat (limited to 'ext')
-rw-r--r-- | ext/http/01_http.js | 4 | ||||
-rw-r--r-- | ext/websocket/01_websocket.js | 15 |
2 files changed, 17 insertions, 2 deletions
diff --git a/ext/http/01_http.js b/ext/http/01_http.js index acaea5e7c..309e44ee4 100644 --- a/ext/http/01_http.js +++ b/ext/http/01_http.js @@ -3,7 +3,6 @@ import { core, internals, primordials } from "ext:core/mod.js"; const { BadResourcePrototype, InterruptedPrototype, ops } = core; const { op_http_write } = Deno.core.ensureFastOps(); -import * as webidl from "ext:deno_webidl/00_webidl.js"; import { InnerBody } from "ext:deno_fetch/22_body.js"; import { Event, setEventTargetData } from "ext:deno_web/02_event.js"; import { BlobPrototype } from "ext:deno_web/09_file.js"; @@ -29,6 +28,7 @@ import { _role, _server, _serverHandleIdleTimeout, + createWebSocketBranded, SERVER, WebSocket, } from "ext:deno_websocket/01_websocket.js"; @@ -472,7 +472,7 @@ function upgradeWebSocket(request, options = {}) { } } - const socket = webidl.createBranded(WebSocket); + const socket = createWebSocketBranded(WebSocket); setEventTargetData(socket); socket[_server] = true; socket[_idleTimeoutDuration] = options.idleTimeout ?? 120; diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js index 477f93b93..2aea08071 100644 --- a/ext/websocket/01_websocket.js +++ b/ext/websocket/01_websocket.js @@ -582,6 +582,20 @@ defineEventHandler(WebSocket.prototype, "open"); webidl.configureInterface(WebSocket); const WebSocketPrototype = WebSocket.prototype; +function createWebSocketBranded() { + const socket = webidl.createBranded(WebSocket); + socket[_rid] = undefined; + socket[_role] = undefined; + socket[_readyState] = CONNECTING; + socket[_extensions] = ""; + socket[_protocol] = ""; + socket[_url] = ""; + socket[_binaryType] = "blob"; + socket[_idleTimeoutDuration] = 0; + socket[_idleTimeoutTimeout] = undefined; + return socket; +} + export { _eventLoop, _idleTimeoutDuration, @@ -592,6 +606,7 @@ export { _role, _server, _serverHandleIdleTimeout, + createWebSocketBranded, SERVER, WebSocket, }; |