From 0fc41645422114978366de8b9535ce5a0fd68254 Mon Sep 17 00:00:00 2001 From: Randy Sommerfeld <cyan@synchro.net> Date: Sun, 19 Nov 2023 08:51:07 +0700 Subject: [PATCH] Move things around for the UIFC config editor --- exec/load/ircd/config.js | 87 +++++++++++++++++++++++++++++++++++++--- exec/load/ircd/core.js | 75 ---------------------------------- 2 files changed, 82 insertions(+), 80 deletions(-) diff --git a/exec/load/ircd/config.js b/exec/load/ircd/config.js index a1f43ad2ec..d3acfac0a7 100644 --- a/exec/load/ircd/config.js +++ b/exec/load/ircd/config.js @@ -45,6 +45,81 @@ const OLINE_CHECK_SYSPASSWD =(1<<20); /* S */ const OLINE_CAN_EVAL =(1<<21); /* x */ const OLINE_IS_GOPER =(1<<22); /* "big O" */ +function Epoch() { + return parseInt(new Date().getTime()/1000); +} + +function true_array_len(my_array) { + var i; + var counter = 0; + for (i in my_array) { + counter++; + } + return counter; +} + +function create_ban_mask(str,kline) { + var tmp_banstr = new Array; + tmp_banstr[0] = ""; + tmp_banstr[1] = ""; + tmp_banstr[2] = ""; + var i; + var bchar_counter = 0; + var part_counter = 0; // BAN: 0!1@2 KLINE: 0@1 + var regexp="[A-Za-z\{\}\`\^\_\|\\]\\[\\\\0-9\-.*?\~:]"; + var finalstr; + for (i in str) { + if (str[i].match(regexp)) { + tmp_banstr[part_counter] += str[i]; + bchar_counter++; + } else if ((str[i] == "!") && (part_counter == 0) && + !kline) { + part_counter = 1; + bchar_counter = 0; + } else if ((str[i] == "@") && (part_counter == 1) && + !kline) { + part_counter = 2; + bchar_counter = 0; + } else if ((str[i] == "@") && (part_counter == 0)) { + if (kline) { + part_counter = 1; + } else { + tmp_banstr[1] = tmp_banstr[0]; + tmp_banstr[0] = "*"; + part_counter = 2; + } + bchar_counter = 0; + } + } + if (!tmp_banstr[0] && !tmp_banstr[1] && !tmp_banstr[2]) + return 0; + if (tmp_banstr[0].match(/[.]/) && !tmp_banstr[1] && !tmp_banstr[2]) { + if (kline) + tmp_banstr[1] = tmp_banstr[0]; + else + tmp_banstr[2] = tmp_banstr[0]; + tmp_banstr[0] = ""; + } + if (!tmp_banstr[0]) + tmp_banstr[0] = "*"; + if (!tmp_banstr[1]) + tmp_banstr[1] = "*"; + if (!tmp_banstr[2] && !kline) + tmp_banstr[2] = "*"; + if (kline) + finalstr = tmp_banstr[0].slice(0,10) + "@" + tmp_banstr[1].slice(0,80); + else + finalstr = format("%s!%s@%s", + tmp_banstr[0].slice(0,MAX_NICKLEN), + tmp_banstr[1].slice(0,10), + tmp_banstr[2].slice(0,80) + ); + while (finalstr.match(/[*][*]/)) { + finalstr=finalstr.replace(/[*][*]/g,"*"); + } + return finalstr; +} + function parse_nline_flags(flags) { var i; var nline_flags = 0; @@ -230,14 +305,16 @@ function Read_Config_File() { log(LOG_WARNING, "!WARNING Nobody appears to be allowed to connect - configure in [Allow]"); Time_Config_Read = Epoch(); - Scan_For_Banned_Clients(); YLines[0] = new YLine(120,600,100,1000000); /* Hardcoded class for fallback */ - for (i in CLines) { - c = CLines[i]; - if ((YLines[c.ircclass].connfreq > 0) && c.port && !Servers[c.servername.toLowerCase()]) - Reset_Autoconnect(c, 1 /* connect immediately */); + if (!IRCDCFG) { + Scan_For_Banned_Clients(); + for (i in CLines) { + c = CLines[i]; + if ((YLines[c.ircclass].connfreq > 0) && c.port && !Servers[c.servername.toLowerCase()]) + Reset_Autoconnect(c, 1 /* connect immediately */); + } } } diff --git a/exec/load/ircd/core.js b/exec/load/ircd/core.js index 81c5cf6754..f717c3fa65 100644 --- a/exec/load/ircd/core.js +++ b/exec/load/ircd/core.js @@ -19,15 +19,6 @@ */ -function true_array_len(my_array) { - var i; - var counter = 0; - for (i in my_array) { - counter++; - } - return counter; -} - function terminate_everything(str, error) { var i; var sendstr; @@ -115,68 +106,6 @@ function umode_notice(bit,ntype,nmessage) { } -function create_ban_mask(str,kline) { - var tmp_banstr = new Array; - tmp_banstr[0] = ""; - tmp_banstr[1] = ""; - tmp_banstr[2] = ""; - var i; - var bchar_counter = 0; - var part_counter = 0; // BAN: 0!1@2 KLINE: 0@1 - var regexp="[A-Za-z\{\}\`\^\_\|\\]\\[\\\\0-9\-.*?\~:]"; - var finalstr; - for (i in str) { - if (str[i].match(regexp)) { - tmp_banstr[part_counter] += str[i]; - bchar_counter++; - } else if ((str[i] == "!") && (part_counter == 0) && - !kline) { - part_counter = 1; - bchar_counter = 0; - } else if ((str[i] == "@") && (part_counter == 1) && - !kline) { - part_counter = 2; - bchar_counter = 0; - } else if ((str[i] == "@") && (part_counter == 0)) { - if (kline) { - part_counter = 1; - } else { - tmp_banstr[1] = tmp_banstr[0]; - tmp_banstr[0] = "*"; - part_counter = 2; - } - bchar_counter = 0; - } - } - if (!tmp_banstr[0] && !tmp_banstr[1] && !tmp_banstr[2]) - return 0; - if (tmp_banstr[0].match(/[.]/) && !tmp_banstr[1] && !tmp_banstr[2]) { - if (kline) - tmp_banstr[1] = tmp_banstr[0]; - else - tmp_banstr[2] = tmp_banstr[0]; - tmp_banstr[0] = ""; - } - if (!tmp_banstr[0]) - tmp_banstr[0] = "*"; - if (!tmp_banstr[1]) - tmp_banstr[1] = "*"; - if (!tmp_banstr[2] && !kline) - tmp_banstr[2] = "*"; - if (kline) - finalstr = tmp_banstr[0].slice(0,10) + "@" + tmp_banstr[1].slice(0,80); - else - finalstr = format("%s!%s@%s", - tmp_banstr[0].slice(0,MAX_NICKLEN), - tmp_banstr[1].slice(0,10), - tmp_banstr[2].slice(0,80) - ); - while (finalstr.match(/[*][*]/)) { - finalstr=finalstr.replace(/[*][*]/g,"*"); - } - return finalstr; -} - function isklined(kl_str) { var i; @@ -2997,10 +2926,6 @@ function Uptime_String() { ); } -function Epoch() { - return parseInt(new Date().getTime()/1000); -} - function YLine_Decrement(yline) { if (typeof yline !== 'object') throw "YLine_Decrement() called without yline object."; -- GitLab