Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F9916980
test_node_http_upgrade_max_header_size.cjs
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
test_node_http_upgrade_max_header_size.cjs
View Options
const assert = require('node:assert');
const http = require('node:http');
const net = require('node:net');
let serverSocketClosed = false;
let sawClientError = false;
function finish() {
if (!sawClientError || !serverSocketClosed) return;
clearTimeout(timeout);
server.close(() => {
console.log('node-http:upgrade-max-header-size:ok');
});
}
const server = net.createServer((socket) => {
socket.on('close', () => {
serverSocketClosed = true;
finish();
});
socket.once('data', () => {
socket.write(
'HTTP/1.1 101 Switching Protocols\r\n' +
`X-Fill: ${'a'.repeat(http.maxHeaderSize)}\r\n` +
'\r\n'
);
});
});
const timeout = setTimeout(() => {
server.close(() => {
throw new Error('timed out waiting for oversized upgrade header failure');
});
}, 2000);
server.listen(0, '127.0.0.1', () => {
const { port } = server.address();
const req = http.request({
host: '127.0.0.1',
port,
path: '/',
headers: {
Connection: 'Upgrade',
Upgrade: 'test',
},
});
req.on('upgrade', () => {
throw new Error('unexpected upgrade for oversized response header');
});
req.on('error', (error) => {
assert.match(error.message, /maxHeaderSize|header/i);
sawClientError = true;
finish();
});
req.end();
});
File Metadata
Details
Attached
Mime Type
application/javascript
Expires
Sat, Aug 1, 8:09 PM (11 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
603692
Default Alt Text
test_node_http_upgrade_max_header_size.cjs (1 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment