Show socket local/remote address in case of ECONNRESET (#1555)
* Show socket local/remote address in case of ECONNRESET * Fallback if socket or properties are not defined
This commit is contained in:
committed by
GitHub
parent
f28c93fe13
commit
3feda5d9f6
@ -113,7 +113,14 @@ class Connection {
|
|||||||
const onError = err => {
|
const onError = err => {
|
||||||
cleanListeners()
|
cleanListeners()
|
||||||
this._openRequests--
|
this._openRequests--
|
||||||
callback(new ConnectionError(err.message), null)
|
let message = err.message
|
||||||
|
if (err.code === 'ECONNRESET') {
|
||||||
|
/* istanbul ignore next */
|
||||||
|
const socket = request.socket || {}
|
||||||
|
/* istanbul ignore next */
|
||||||
|
message += ` - Local: ${socket.localAddress || 'unknown'}:${socket.localPort || 'unknown'}, Remote: ${socket.remoteAddress || 'unknown'}:${socket.remotePort || 'unknown'}`
|
||||||
|
}
|
||||||
|
callback(new ConnectionError(message), null)
|
||||||
}
|
}
|
||||||
|
|
||||||
const onAbort = () => {
|
const onAbort = () => {
|
||||||
|
|||||||
@ -1084,3 +1084,25 @@ test('getIssuerCertificate detects invalid/malformed certificates', t => {
|
|||||||
}
|
}
|
||||||
t.equal(getIssuerCertificate(socket), null)
|
t.equal(getIssuerCertificate(socket), null)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('Should show local/remote socket address in case of ECONNRESET', t => {
|
||||||
|
t.plan(2)
|
||||||
|
|
||||||
|
function handler (req, res) {
|
||||||
|
res.destroy()
|
||||||
|
}
|
||||||
|
|
||||||
|
buildServer(handler, ({ port }, server) => {
|
||||||
|
const connection = new Connection({
|
||||||
|
url: new URL(`http://localhost:${port}`)
|
||||||
|
})
|
||||||
|
connection.request({
|
||||||
|
path: '/hello',
|
||||||
|
method: 'GET'
|
||||||
|
}, (err, res) => {
|
||||||
|
t.ok(err instanceof ConnectionError)
|
||||||
|
t.match(err.message, /socket\shang\sup\s-\sLocal:\s127.0.0.1:\d+,\sRemote:\s127.0.0.1:\d+/)
|
||||||
|
server.stop()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user