summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/http.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/polyfills/http.ts')
-rw-r--r--ext/node/polyfills/http.ts26
1 files changed, 16 insertions, 10 deletions
diff --git a/ext/node/polyfills/http.ts b/ext/node/polyfills/http.ts
index 17ab8ce31..bba11cdc1 100644
--- a/ext/node/polyfills/http.ts
+++ b/ext/node/polyfills/http.ts
@@ -278,6 +278,7 @@ class FakeSocket extends EventEmitter {
super();
this.remoteAddress = opts.hostname;
this.remotePort = opts.port;
+ this.encrypted = opts.encrypted;
}
setKeepAlive() {}
@@ -561,7 +562,7 @@ class ClientRequest extends OutgoingMessage {
this.onSocket(createConnection(optsWithoutSignal));
}
}*/
- this.onSocket(new FakeSocket());
+ this.onSocket(new FakeSocket({ encrypted: this._encrypted }));
const url = this._createUrlStrFromOptions();
@@ -1306,7 +1307,10 @@ export class ServerResponse extends NodeWritable {
return status === 101 || status === 204 || status === 205 || status === 304;
}
- constructor(resolve: (value: Response | PromiseLike<Response>) => void) {
+ constructor(
+ resolve: (value: Response | PromiseLike<Response>) => void,
+ socket: FakeSocket,
+ ) {
let controller: ReadableByteStreamController;
const readable = new ReadableStream({
start(c) {
@@ -1349,7 +1353,7 @@ export class ServerResponse extends NodeWritable {
});
this.#readable = readable;
this.#resolve = resolve;
- this.socket = new FakeSocket();
+ this.socket = socket;
}
setHeader(name: string, value: string) {
@@ -1438,7 +1442,7 @@ export class IncomingMessageForServer extends NodeReadable {
// These properties are used by `npm:forwarded` for example.
socket: { remoteAddress: string; remotePort: number };
- constructor(req: Request, remoteAddr: { hostname: string; port: number }) {
+ constructor(req: Request, socket: FakeSocket) {
// Check if no body (GET/HEAD/OPTIONS/...)
const reader = req.body?.getReader();
super({
@@ -1465,10 +1469,7 @@ export class IncomingMessageForServer extends NodeReadable {
// url: (new URL(request.url).pathname),
this.url = req.url?.slice(req.url.indexOf("/", 8));
this.method = req.method;
- this.socket = new FakeSocket({
- remoteAddress: remoteAddr.hostname,
- remotePort: remoteAddr.port,
- });
+ this.socket = socket;
this.#req = req;
}
@@ -1572,7 +1573,12 @@ export class ServerImpl extends EventEmitter {
_serve() {
const ac = new AbortController();
const handler = (request: Request, info: Deno.ServeHandlerInfo) => {
- const req = new IncomingMessageForServer(request, info.remoteAddr);
+ const socket = new FakeSocket({
+ remoteAddress: info.remoteAddr.hostname,
+ remotePort: info.remoteAddr.port,
+ encrypted: this._encrypted,
+ });
+ const req = new IncomingMessageForServer(request, socket);
if (req.upgrade && this.listenerCount("upgrade") > 0) {
const { conn, response } = upgradeHttpRaw(request);
const socket = new Socket({
@@ -1582,7 +1588,7 @@ export class ServerImpl extends EventEmitter {
return response;
} else {
return new Promise<Response>((resolve): void => {
- const res = new ServerResponse(resolve);
+ const res = new ServerResponse(resolve, socket);
this.emit("request", req, res);
});
}