Skip to content

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
kt3k committed Sep 26, 2024
1 parent 9c1b39b commit 2f9cdaa
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
17 changes: 12 additions & 5 deletions ext/node/polyfills/http.ts
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,14 @@ class ClientRequest extends OutgoingMessage {
_writeHeader() {
const url = this._createUrlStrFromOptions();

const headers = [];
for (const key in this[kOutHeaders]) {
if (Object.hasOwn(this[kOutHeaders], key)) {
const entry = this[kOutHeaders][key];
this._processHeader(headers, entry[0], entry[1], false);
}
}

if (
this.method === "POST" || this.method === "PATCH" || this.method === "PUT"
) {
Expand Down Expand Up @@ -447,6 +455,10 @@ class ClientRequest extends OutgoingMessage {
await op_node_http_wait_for_connection(connRid);
this.emit("requestReady");
const res = await op_node_http_await_response(rid);
if (this._timeout) {
this._timeout.removeEventListener("abort", this._timeoutCb);
webClearTimeout(this._timeout[timerId]);
}
const incoming = new IncomingMessageForClient(this.socket);
incoming.req = this;
this.res = incoming;
Expand Down Expand Up @@ -659,11 +671,6 @@ class ClientRequest extends OutgoingMessage {
}
this.destroyed = true;

const rid = this._client?.[internalRidSymbol];
if (rid) {
core.tryClose(rid);
}

// Request might be closed before we actually made it
if (this._req !== undefined && this._req.cancelHandleRid !== null) {
core.tryClose(this._req.cancelHandleRid);
Expand Down
6 changes: 4 additions & 2 deletions tests/unit_node/http_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,8 @@ Deno.test("[node/http] send request with chunked body", async () => {
};
const abortController = new AbortController();
const servePromise = Deno.serve({
hostname,
// TODO(kt3k): Enable this line for better compatibility with Node.js
// hostname,
port,
signal: abortController.signal,
onListen: undefined,
Expand Down Expand Up @@ -571,7 +572,8 @@ Deno.test("[node/http] send request with chunked body as default", async () => {
};
const abortController = new AbortController();
const servePromise = Deno.serve({
hostname,
// TODO(kt3k): Enable this line for better compatibility with Node.js
// hostname,
port,
signal: abortController.signal,
onListen: undefined,
Expand Down

0 comments on commit 2f9cdaa

Please sign in to comment.