Skip to content

Commit

Permalink
chore(ext/node): bring back changes to ClientRequest.onSocket (denola…
Browse files Browse the repository at this point in the history
  • Loading branch information
crowlKats authored Jun 14, 2023
1 parent 88e6e9c commit fc4e4c3
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 37 deletions.
8 changes: 6 additions & 2 deletions cli/tests/unit_node/http_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -196,11 +196,14 @@ Deno.test("[node/http] request default protocol", async () => {
// @ts-ignore IncomingMessageForClient
// deno-lint-ignore no-explicit-any
let clientRes: any;
// deno-lint-ignore no-explicit-any
let clientReq: any;
server.listen(() => {
const req = http.request(
clientReq = http.request(
// deno-lint-ignore no-explicit-any
{ host: "localhost", port: (server.address() as any).port },
(res) => {
assert(res.socket instanceof EventEmitter);
assertEquals(res.complete, false);
res.on("data", () => {});
res.on("end", () => {
Expand All @@ -211,13 +214,14 @@ Deno.test("[node/http] request default protocol", async () => {
promise2.resolve();
},
);
req.end();
clientReq.end();
});
server.on("close", () => {
promise.resolve();
});
await promise;
await promise2;
assert(clientReq.socket instanceof EventEmitter);
assertEquals(clientRes!.complete, true);
});

Expand Down
45 changes: 10 additions & 35 deletions ext/node/polyfills/http.ts
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,9 @@ const kError = Symbol("kError");

const kUniqueHeaders = Symbol("kUniqueHeaders");

class FakeSocket extends EventEmitter {
}

/** ClientRequest represents the http(s) request from the client */
class ClientRequest extends OutgoingMessage {
defaultProtocol = "http:";
Expand Down Expand Up @@ -544,6 +547,7 @@ class ClientRequest extends OutgoingMessage {
this.onSocket(createConnection(optsWithoutSignal));
}
}*/
this.onSocket(new FakeSocket());

const url = this._createUrlStrFromOptions();

Expand Down Expand Up @@ -573,41 +577,12 @@ class ClientRequest extends OutgoingMessage {
return undefined;
}

onSocket(socket, err) {
if (this.destroyed || err) {
this.destroyed = true;

// deno-lint-ignore no-inner-declarations
function _destroy(req, err) {
if (!req.aborted && !err) {
err = connResetException("socket hang up");
}
if (err) {
req.emit("error", err);
}
req._closed = true;
req.emit("close");
}

if (socket) {
if (!err && this.agent && !socket.destroyed) {
socket.emit("free");
} else {
finished(socket.destroy(err || this[kError]), (er) => {
if (er?.code === "ERR_STREAM_PREMATURE_CLOSE") {
er = null;
}
_destroy(this, er || err);
});
return;
}
}

_destroy(this, err || this[kError]);
} else {
//tickOnSocket(this, socket);
//this._flush();
}
// TODO(bartlomieju): handle error
onSocket(socket, _err) {
nextTick(() => {
this.socket = socket;
this.emit("socket", socket);
});
}

// deno-lint-ignore no-explicit-any
Expand Down

0 comments on commit fc4e4c3

Please sign in to comment.