update
This commit is contained in:
parent
72898c67b7
commit
f065a9c952
@ -307,6 +307,18 @@ export class CommandHandler implements ICommandHandler {
|
||||
* @param response - Response to send
|
||||
*/
|
||||
public sendResponse(socket: plugins.net.Socket | plugins.tls.TLSSocket, response: string): void {
|
||||
// Check if socket is still writable before attempting to write
|
||||
if (socket.destroyed || socket.readyState !== 'open' || !socket.writable) {
|
||||
SmtpLogger.debug(`Skipping response to closed/destroyed socket: ${response}`, {
|
||||
remoteAddress: socket.remoteAddress,
|
||||
remotePort: socket.remotePort,
|
||||
destroyed: socket.destroyed,
|
||||
readyState: socket.readyState,
|
||||
writable: socket.writable
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
socket.write(`${response}${SMTP_DEFAULTS.CRLF}`);
|
||||
adaptiveLogger.logResponse(response, socket);
|
||||
|
@ -952,6 +952,18 @@ export class ConnectionManager implements IConnectionManager {
|
||||
* @param response - Response to send
|
||||
*/
|
||||
private sendResponse(socket: plugins.net.Socket | plugins.tls.TLSSocket, response: string): void {
|
||||
// Check if socket is still writable before attempting to write
|
||||
if (socket.destroyed || socket.readyState !== 'open' || !socket.writable) {
|
||||
SmtpLogger.debug(`Skipping response to closed/destroyed socket: ${response}`, {
|
||||
remoteAddress: socket.remoteAddress,
|
||||
remotePort: socket.remotePort,
|
||||
destroyed: socket.destroyed,
|
||||
readyState: socket.readyState,
|
||||
writable: socket.writable
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
socket.write(`${response}${SMTP_DEFAULTS.CRLF}`);
|
||||
adaptiveLogger.logResponse(response, socket);
|
||||
|
@ -1139,6 +1139,18 @@ SmtpLogger.debug(`Parsed email subject: ${subject}`, { subject });
|
||||
* @param response - Response message
|
||||
*/
|
||||
private sendResponse(socket: plugins.net.Socket | plugins.tls.TLSSocket, response: string): void {
|
||||
// Check if socket is still writable before attempting to write
|
||||
if (socket.destroyed || socket.readyState !== 'open' || !socket.writable) {
|
||||
SmtpLogger.debug(`Skipping response to closed/destroyed socket: ${response}`, {
|
||||
remoteAddress: socket.remoteAddress,
|
||||
remotePort: socket.remotePort,
|
||||
destroyed: socket.destroyed,
|
||||
readyState: socket.readyState,
|
||||
writable: socket.writable
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
socket.write(`${response}${SMTP_DEFAULTS.CRLF}`);
|
||||
SmtpLogger.logResponse(response, socket);
|
||||
|
@ -300,6 +300,18 @@ export class TlsHandler implements ITlsHandler {
|
||||
* @param response - Response message
|
||||
*/
|
||||
private sendResponse(socket: plugins.net.Socket | plugins.tls.TLSSocket, response: string): void {
|
||||
// Check if socket is still writable before attempting to write
|
||||
if (socket.destroyed || socket.readyState !== 'open' || !socket.writable) {
|
||||
SmtpLogger.debug(`Skipping response to closed/destroyed socket: ${response}`, {
|
||||
remoteAddress: socket.remoteAddress,
|
||||
remotePort: socket.remotePort,
|
||||
destroyed: socket.destroyed,
|
||||
readyState: socket.readyState,
|
||||
writable: socket.writable
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
socket.write(`${response}\r\n`);
|
||||
SmtpLogger.logResponse(response, socket);
|
||||
|
Loading…
x
Reference in New Issue
Block a user