Skip to content

Commit

Permalink
perf: allow keep alive for HEAD requests
Browse files Browse the repository at this point in the history
  • Loading branch information
ronag committed Jan 16, 2023
1 parent d5af7dd commit 859357d
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 3 deletions.
6 changes: 3 additions & 3 deletions lib/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -769,7 +769,7 @@ class Parser {
}

if (request.method === 'HEAD') {
assert(socket[kReset])
assert(request.reset === false || socket[kReset])
return 1
}

Expand Down Expand Up @@ -1376,8 +1376,8 @@ function write (client, request) {
socket[kReset] = true
}

if (reset) {
socket[kReset] = true
if (reset != null) {
socket[kReset] = reset
}

if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {
Expand Down
42 changes: 42 additions & 0 deletions test/client-head-reset-override.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
'use strict'

const { createServer } = require('http')
const { test } = require('tap')
const { Client } = require('..')

test('override HEAD reset', (t) => {
const server = createServer((req, res) => {
res.setHeader('connection', 'keep-alive')
res.end()
})
t.teardown(server.close.bind(server))

server.listen(0, () => {
const client = new Client(`http://localhost:${server.address().port}`)
t.teardown(client.close.bind(client))

client.on('disconnect', () => {
t.fail()
})

client.request({
path: '/',
method: 'HEAD',
reset: false
}, (err, res) => {
t.error(err)
res.body.resume()
})

client.request({
path: '/',
method: 'HEAD',
reset: false
}, (err, res) => {
t.error(err)
res.body.resume()
console.error("ASD")
t.end()
})
})
})

0 comments on commit 859357d

Please sign in to comment.