refactor(socket-utils): replace direct socket cleanup with centralized cleanupSocket utility across connection management
This commit is contained in:
@ -9,7 +9,7 @@ import { TlsManager } from './tls-manager.js';
|
||||
import { HttpProxyBridge } from './http-proxy-bridge.js';
|
||||
import { TimeoutManager } from './timeout-manager.js';
|
||||
import { RouteManager } from './route-manager.js';
|
||||
import type { ForwardingHandler } from '../../forwarding/handlers/base-handler.js';
|
||||
import { cleanupSocket } from '../../core/utils/socket-utils.js';
|
||||
|
||||
/**
|
||||
* Handles new connection processing and setup logic with support for route-based configuration
|
||||
@ -84,8 +84,7 @@ export class RouteConnectionHandler {
|
||||
const ipValidation = this.securityManager.validateIP(remoteIP);
|
||||
if (!ipValidation.allowed) {
|
||||
logger.log('warn', `Connection rejected`, { remoteIP, reason: ipValidation.reason, component: 'route-handler' });
|
||||
socket.end();
|
||||
socket.destroy();
|
||||
cleanupSocket(socket, `rejected-${ipValidation.reason}`);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -825,16 +824,16 @@ export class RouteConnectionHandler {
|
||||
// Track event listeners added by the handler so we can clean them up
|
||||
const originalOn = socket.on.bind(socket);
|
||||
const originalOnce = socket.once.bind(socket);
|
||||
const trackedListeners: Array<{event: string; listener: Function}> = [];
|
||||
const trackedListeners: Array<{event: string; listener: (...args: any[]) => void}> = [];
|
||||
|
||||
// Override socket.on to track listeners
|
||||
socket.on = function(event: string, listener: Function) {
|
||||
socket.on = function(event: string, listener: (...args: any[]) => void) {
|
||||
trackedListeners.push({event, listener});
|
||||
return originalOn(event, listener);
|
||||
} as any;
|
||||
|
||||
// Override socket.once to track listeners
|
||||
socket.once = function(event: string, listener: Function) {
|
||||
socket.once = function(event: string, listener: (...args: any[]) => void) {
|
||||
trackedListeners.push({event, listener});
|
||||
return originalOnce(event, listener);
|
||||
} as any;
|
||||
@ -1265,7 +1264,7 @@ export class RouteConnectionHandler {
|
||||
connectionId,
|
||||
serverName,
|
||||
connInfo,
|
||||
(connectionId, reason) => this.connectionManager.initiateCleanupOnce(record, reason)
|
||||
(_connectionId, reason) => this.connectionManager.initiateCleanupOnce(record, reason)
|
||||
);
|
||||
|
||||
// Store the handler in the connection record so we can remove it during cleanup
|
||||
|
Reference in New Issue
Block a user