From 5f76b24e5ee440b7c2d2bdc74a9bb94374df9f2a Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Wed, 6 Jan 2016 17:00:27 -0500 Subject: http: overridable `clientError` Make default `clientError` behavior (close socket immediately) overridable. With this APIs it is possible to write a custom error handler, and to send, for example, a 400 HTTP response. http.createServer(...).on('clientError', function(err, socket) { socket.end('HTTP/1.1 400 Bad Request\r\n\r\n'); socket.destroy(); }); Fix: #4543 PR-URL: https://github.com/nodejs/node/pull/4557 Reviewed-By: Brian White --- lib/https.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/https.js') diff --git a/lib/https.js b/lib/https.js index 8e79d295bf..7008a79131 100644 --- a/lib/https.js +++ b/lib/https.js @@ -29,8 +29,9 @@ function Server(opts, requestListener) { this.addListener('request', requestListener); } - this.addListener('clientError', function(err, conn) { - conn.destroy(); + this.addListener('tlsClientError', function(err, conn) { + if (!this.emit('clientError', err, conn)) + conn.destroy(err); }); this.timeout = 2 * 60 * 1000; -- cgit v1.2.3