diff --git a/imap-core/lib/imap-server.js b/imap-core/lib/imap-server.js index ad04be82..4bb71a76 100644 --- a/imap-core/lib/imap-server.js +++ b/imap-core/lib/imap-server.js @@ -206,9 +206,11 @@ class IMAPServer extends EventEmitter { remoteAddress }; } - if (!err) { - err = new Error('Socket closed unexpectedly'); + if (!err || !err.message) { + err = new Error('Socket closed while initiating TLS'); err.meta = { + protocol: 'imap', + stage: 'connect', remoteAddress }; } @@ -221,8 +223,7 @@ class IMAPServer extends EventEmitter { // upgrade connection let tlsSocket = new tls.TLSSocket(socket, socketOptions); - let onCloseError = () => onError(new Error('Socket closed while initiating TLS')); - tlsSocket.once('close', onCloseError); + tlsSocket.once('close', onError); tlsSocket.once('error', onError); tlsSocket.once('_tlsError', onError); tlsSocket.once('clientError', onError); @@ -230,7 +231,7 @@ class IMAPServer extends EventEmitter { tlsSocket.on('secure', () => { socket.removeListener('error', onError); - tlsSocket.removeListener('close', onCloseError); + tlsSocket.removeListener('close', onError); tlsSocket.removeListener('error', onError); tlsSocket.removeListener('_tlsError', onError); tlsSocket.removeListener('clientError', onError); diff --git a/lib/pop3/server.js b/lib/pop3/server.js index 0bac224d..c844ccc6 100644 --- a/lib/pop3/server.js +++ b/lib/pop3/server.js @@ -82,9 +82,11 @@ class POP3Server extends EventEmitter { remoteAddress }; } - if (!err) { - err = new Error('Socket closed unexpectedly'); + if (!err || !err.message) { + err = new Error('Socket closed while initiating TLS'); err.meta = { + protocol: 'pop3', + stage: 'connect', remoteAddress }; } @@ -97,8 +99,7 @@ class POP3Server extends EventEmitter { // upgrade connection let tlsSocket = new tls.TLSSocket(socket, socketOptions); - let onCloseError = () => onError(new Error('Socket closed while initiating TLS')); - tlsSocket.once('close', onCloseError); + tlsSocket.once('close', onError); tlsSocket.once('error', onError); tlsSocket.once('_tlsError', onError); tlsSocket.once('clientError', onError); @@ -106,7 +107,7 @@ class POP3Server extends EventEmitter { tlsSocket.on('secure', () => { socket.removeListener('error', onError); - tlsSocket.removeListener('close', onCloseError); + tlsSocket.removeListener('close', onError); tlsSocket.removeListener('error', onError); tlsSocket.removeListener('_tlsError', onError); tlsSocket.removeListener('clientError', onError);