Compare commits

..

1 Commits

Author SHA1 Message Date
Ashcon Partovi
3802e38605 fix: test-http-correct-hostname.js 2025-03-21 14:39:55 -07:00
3 changed files with 25 additions and 55 deletions

View File

@@ -61,7 +61,6 @@ const kInternalSocketData = Symbol.for("::bunternal::");
const serverSymbol = Symbol.for("::bunternal::");
const kPendingCallbacks = Symbol("pendingCallbacks");
const kRequest = Symbol("request");
const kTrailers = Symbol("kTrailers");
const kEmptyObject = Object.freeze(Object.create(null));
@@ -1233,7 +1232,6 @@ function IncomingMessage(req, defaultIncomingOpts) {
this._dumped = false;
this.complete = false;
this._closed = false;
this[kTrailers] = null;
// (url, method, headers, rawHeaders, handle, hasBody)
if (req === kHandle) {
@@ -1498,34 +1496,10 @@ const IncomingMessagePrototype = {
// noop
},
get trailers() {
if (!this[kTrailers]) {
this[kTrailers] = Object.create(null);
}
return this[kTrailers];
return kEmptyObject;
},
set trailers(value) {
this[kTrailers] = value;
},
_addHeaderLines(headers, n) {
if (headers?.length) {
let dest;
if (this.complete) {
dest = this.trailers;
} else {
dest = this.headers;
}
if (dest) {
for (let i = 0; i < n; i += 2) {
this._addHeaderLine(headers[i], headers[i + 1], dest);
}
}
}
},
_addHeaderLine(field, value, dest) {
if (dest[field] === undefined) {
dest[field] = value;
}
// noop
},
setTimeout(msecs, callback) {
this.take;

View File

@@ -0,0 +1,23 @@
/* eslint-disable node-core/crypto-check */
// Flags: --expose-internals
'use strict';
const common = require('../common');
const assert = require('assert');
const http = require('http');
const modules = { http };
if (common.hasCrypto) {
const https = require('https');
modules.https = https;
}
Object.keys(modules).forEach((module) => {
const doNotCall = common.mustNotCall(
`${module}.request should not connect to ${module}://example.com%60x.example.com`
);
const req = modules[module].request(`${module}://example.com%60x.example.com`, doNotCall);
assert.equal(req.headers.host, 'example.com`x.example.com');
req.abort();
});

View File

@@ -1,27 +0,0 @@
'use strict';
require('../common');
const { IncomingMessage } = require('http');
const assert = require('assert');
// Headers setter function set a header correctly
{
const im = new IncomingMessage();
im.headers = { key: 'value' };
assert.deepStrictEqual(im.headers, { key: 'value' });
}
// Trailers setter function set a header correctly
{
const im = new IncomingMessage();
im.trailers = { key: 'value' };
assert.deepStrictEqual(im.trailers, { key: 'value' });
}
// _addHeaderLines function set a header correctly
{
const im = new IncomingMessage();
im.headers = { key1: 'value1' };
im._addHeaderLines(['key2', 'value2'], 2);
assert.deepStrictEqual(im.headers, { key1: 'value1', key2: 'value2' });
}