some fixes

This commit is contained in:
zefie
2025-06-17 19:09:46 -04:00
parent f83af2eca5
commit 280ea5b63e

View File

@@ -93,6 +93,8 @@ class WTVIRC {
this.kick_insecure_users_on_secure = this.irc_config.kick_insecure_on_z || true; // If true, users without SSL connections will be kicked from a channel when +Z is applied this.kick_insecure_users_on_secure = this.irc_config.kick_insecure_on_z || true; // If true, users without SSL connections will be kicked from a channel when +Z is applied
this.clientpeak = 0; this.clientpeak = 0;
this.globalpeak = 0; this.globalpeak = 0;
this.socketpeak = 0;
this.totalConnections = 0;
this.supported_channel_modes = "Ibe,k,l,NOQRSTVZcimnprt"; this.supported_channel_modes = "Ibe,k,l,NOQRSTVZcimnprt";
this.supported_user_modes = "BZciorswxz"; this.supported_user_modes = "BZciorswxz";
this.supported_prefixes = ["ohv", "@%+"]; this.supported_prefixes = ["ohv", "@%+"];
@@ -120,6 +122,7 @@ class WTVIRC {
this.server = net.createServer((socket) => { this.server = net.createServer((socket) => {
// Detect SSL handshake and wrap socket if needed // Detect SSL handshake and wrap socket if needed
socket.once('data', (firstChunk) => { socket.once('data', (firstChunk) => {
this.totalConnections++;
socket.removeAllListeners('data'); socket.removeAllListeners('data');
socket.pause(); socket.pause();
socket.on('error', (err) => { socket.on('error', (err) => {
@@ -298,6 +301,8 @@ class WTVIRC {
} }
socket.write(`PASS ${serverObj.password}\r\n`); socket.write(`PASS ${serverObj.password}\r\n`);
socket.is_srv_authorized = true; socket.is_srv_authorized = true;
var totalSockets = this.clients.length + this.servers.size;
this.socketpeak = Math.max(this.socketpeak, totalSockets);
return; return;
} }
}); });
@@ -1887,6 +1892,8 @@ class WTVIRC {
} }
if (!socket.registered && socket.nickname && socket.username) { if (!socket.registered && socket.nickname && socket.username) {
socket.registered = true; socket.registered = true;
var totalSockets = this.clients.length + this.servers.size;
this.socketpeak = Math.max(this.socketpeak, totalSockets);
this.usertimestamps.set(socket.nickname, this.getDate()); this.usertimestamps.set(socket.nickname, this.getDate());
this.usersignontimestamps.set(new_nickname, socket.timestamp); this.usersignontimestamps.set(new_nickname, socket.timestamp);
this.doLogin(socket.nickname, socket); this.doLogin(socket.nickname, socket);
@@ -1905,6 +1912,8 @@ class WTVIRC {
this.userinfo.set(socket.nickname, socket.userinfo); this.userinfo.set(socket.nickname, socket.userinfo);
if (!socket.registered && socket.nickname && socket.username) { if (!socket.registered && socket.nickname && socket.username) {
socket.registered = true; socket.registered = true;
var totalSockets = this.clients.length + this.servers.size;
this.socketpeak = Math.max(this.socketpeak, totalSockets);
this.usernames.set(socket.nickname, socket.username); this.usernames.set(socket.nickname, socket.username);
this.usertimestamps.set(socket.nickname, this.getDate()); this.usertimestamps.set(socket.nickname, this.getDate());
this.usersignontimestamps.set(socket.nickname, socket.timestamp); this.usersignontimestamps.set(socket.nickname, socket.timestamp);
@@ -4409,13 +4418,21 @@ class WTVIRC {
}); });
const serverCount = this.servers.size + 1; // Include this server const serverCount = this.servers.size + 1; // Include this server
socket.write(`:${this.servername} 251 ${nickname} :There are ${visibleClients.length} visible users and ${invisibleClients.length} invisible users on this server\r\n`); socket.write(`:${this.servername} 251 ${nickname} :There are ${visibleClients.length} visible users and ${invisibleClients.length} invisible users on this server\r\n`);
if (operClients.length > 0) {
socket.write(`:${this.servername} 252 ${nickname} ${operClients.length} :operator(s) online\r\n`); socket.write(`:${this.servername} 252 ${nickname} ${operClients.length} :operator(s) online\r\n`);
}
if (this.channels.size > 0) {
socket.write(`:${this.servername} 253 ${nickname} ${this.channels.size} :channels formed\r\n`); socket.write(`:${this.servername} 253 ${nickname} ${this.channels.size} :channels formed\r\n`);
}
socket.write(`:${this.servername} 255 ${nickname} :I have ${this.clients.length} clients and ${serverCount} servers\r\n`); socket.write(`:${this.servername} 255 ${nickname} :I have ${this.clients.length} clients and ${serverCount} servers\r\n`);
socket.write(`:${this.servername} 265 ${nickname} :Current Local Users: ${this.clients.length} Max: ${this.clientpeak}\r\n`); socket.write(`:${this.servername} 265 ${nickname} :Current Local Users: ${this.clients.length} Max: ${this.clientpeak}\r\n`);
const globalUsers = this.countGlobalUsers(); const globalUsers = this.countGlobalUsers();
this.globalpeak = Math.max(this.globalpeak, this.countGlobalUsers()); this.globalpeak = Math.max(this.globalpeak, this.countGlobalUsers());
var totalSockets = this.clients.length + this.servers.size;
this.socketpeak = Math.max(this.socketpeak, totalSockets);
socket.write(`:${this.servername} 266 ${nickname} :Current Global Users: ${globalUsers} Max: ${this.globalpeak}\r\n`); socket.write(`:${this.servername} 266 ${nickname} :Current Global Users: ${globalUsers} Max: ${this.globalpeak}\r\n`);
socket.write(`:${this.servername} 250 ${nickname} :Highest connection count: ${this.socketpeak} (${this.clientpeak} clients) (${this.totalConnections} connections received)\r\n`);
var usermodes = this.usermodes.get(nickname); var usermodes = this.usermodes.get(nickname);
if (!usermodes || usermodes === true) { if (!usermodes || usermodes === true) {
usermodes = []; usermodes = [];