fix(routing): unify route based architecture
This commit is contained in:
33
ts/core/models/socket-augmentation.ts
Normal file
33
ts/core/models/socket-augmentation.ts
Normal file
@ -0,0 +1,33 @@
|
||||
import * as plugins from '../../plugins.js';
|
||||
|
||||
// Augment the Node.js Socket type to include TLS-related properties
|
||||
// This helps TypeScript understand properties that are dynamically added by Node.js
|
||||
declare module 'net' {
|
||||
interface Socket {
|
||||
// TLS-related properties
|
||||
encrypted?: boolean; // Indicates if the socket is encrypted (TLS/SSL)
|
||||
authorizationError?: Error; // Authentication error if TLS handshake failed
|
||||
|
||||
// TLS-related methods
|
||||
getTLSVersion?(): string; // Returns the TLS version (e.g., 'TLSv1.2', 'TLSv1.3')
|
||||
getPeerCertificate?(detailed?: boolean): any; // Returns the peer's certificate
|
||||
getSession?(): Buffer; // Returns the TLS session data
|
||||
}
|
||||
}
|
||||
|
||||
// Export a utility function to check if a socket is a TLS socket
|
||||
export function isTLSSocket(socket: plugins.net.Socket): boolean {
|
||||
return 'encrypted' in socket && !!socket.encrypted;
|
||||
}
|
||||
|
||||
// Export a utility function to safely get the TLS version
|
||||
export function getTLSVersion(socket: plugins.net.Socket): string | null {
|
||||
if (socket.getTLSVersion) {
|
||||
try {
|
||||
return socket.getTLSVersion();
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
Reference in New Issue
Block a user