some fixes
This commit is contained in:
@@ -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`);
|
||||||
socket.write(`:${this.servername} 252 ${nickname} ${operClients.length} :operator(s) online\r\n`);
|
if (operClients.length > 0) {
|
||||||
socket.write(`:${this.servername} 253 ${nickname} ${this.channels.size} :channels formed\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} 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 = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user