-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.txt
359 lines (301 loc) · 25.2 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
mIRCd[0.10(Rev.2)][2021-2023] - 31/08/2023
--------------------------------------------------
1. Added /BLOCK which works like /ACCEPT and /SILENCE. Unlike /ACCEPT, this doesn't require any specific user modes
being set before using it. You just /BLOCK the nick or n!u@h from being able to message you.
And unlike /SILENCE, you will still see their channel message(s).
mIRCd[0.09hf17(Rev.2)][2021-2023] - 25/08/2023
--------------------------------------------------
1. Discovered /SETHOST has an UNDO command, so added that in.
2. Fixed a bug with /SETHOST and /mode <you> +h where you could continually set your host with the same host.
Now it'll check to see if the host is different. (Allowing for changes in capitalization of course.)
3. NOTICE, PRIVMSG, WALLCHOPS, WALLHOPS, WALLOPS, WALLUSERS and WALLVOICES now conform to "Input line too long."
4. GLINE, KILL, ZLINE, etc. now truncate the removal message to conform with the maximum length of QUIT messages.
5. SHUN also truncates the reason to the maximum length of a TOPIC.
6. DNS/Ident now tells the connecting user if it failed to obtain that information.
7. INFO now returns "INFO is missing" if the INFO file is missing. (My own non-standard numeric reply.)
8. Fixed a bunch of mIRCd.raws messages.
9. Other cosmetic/minor change(s).
mIRCd[0.09hf16(Rev.2)][2021-2023] - 12/08/2023
--------------------------------------------------
I would like to point out that I have started work on Rev.3, but totally underestimated just how difficult it would be.
At most - for test purposes - I've managed to get a Python C:line jupe server to connect to me, and then another server
to me/me to another server (yes, both ways work) so they both acknowledge they and the users exist. (Screenshot on page.)
Don't expect it to be completed any time in the next year (or two), but I am determined to do this.
Anyway, there were bugs...
1. Sort of changed the way that invite works due to the fact that an invite would be outstanding if the channel was destroyed,
meaning that a user could join the channel when they weren't supposed to (new ownership).
It's roughly the same, but there's now a separate list for a channel. When the channel is destroyed, it cycles through the
list and expunges it from the socket hash table.
2. Fixed a few bugs with /INVITE. A numeric reply if the channel doesn't exist (duh!), used mIRCd.raw instead of mIRCd.sraw for one reply, and
+X users can now invite a user to a channel if the channel doesn't exist by forcing it through. (This doesn't appear in the /INVITE list though.)
3. Fixed a bug in /NAMES where the reply wouldn't show up if the channel didn't exist.
mIRCd[0.09hf15(Rev.2)][2021-2023] - 01/08/2023
--------------------------------------------------
1. You can now specify DEFAULT_OPERMODES in mIRCd.ini to be set by a user whenever they succesfully /OPER by adding
DEFAULT_OPERMODES=modestring to [Mechanics] in mIRCd.ini. (Defaults to hardcoded +gsw.)
2. Although this is not a bug (but was changed by UnderNet), you can now hide the /SILENCE list from other users (excluding IRC operators)
by adding HIDE_SILENCE_LIST=TRUE or HIDE_SILENCE_LIST=FALSE to [Mechanics] in mIRCd.ini. (Defaults to FALSE.)
3. The same applies to /ACCEPT list, but by adding HIDE_ACCEPT_LIST=TRUE or HIDE_ACCEPT_LIST=FALSE to [Mechanics] in mIRCd.ini. (Defaults to FALSE.)
If you wish to hide both of them at the same time, you can simply abridge this to HIDE_CLIENT_LISTS=TRUE or HIDE_CLIENT_LISTS=FALSE
to [Mechanics] in mIRCd.ini. (Defaults to FALSE).
4. WALLCHOPS, WALLHOPS and WALLVOICES now count towards time last active. (Assuming a message was successfully sent.)
5. You can now specify if you want those on localhost/LAN to have immunity from restrictions upon connection (see order in notes for hf14)
by adding LOCAL_IMMUNITY=TRUE or LOCAL_IMMUNITY=FALSE to [Mechanics] in mIRCd.ini. (Defaults to FALSE.)
6. Fixed a bug *with* local immunity. (Used the wrong boolean operator.)
7. localhost (127.0.0.1) isn't subjected to DENY_EXTERNAL_CONNECTIONS=TRUE if LOCAL_IMMUNITY=FALSE, but LAN will be since you
might be wanting to restrict LAN users from connecting.
8. Other cosmetic/minor change(s).
mIRCd[0.09hf14(Rev.2)][2021-2023] - 30/07/2023
--------------------------------------------------
1. Can now allow opers to join (G|K)-lined channels by adding OPER_BYPASS_BADCHAN=TRUE or OPER_BYPASS_BADCHAN=FALSE to
[Features] in mIRCd.ini. Defaults to FALSE.
This also extends to /SVSJOIN.
2. mIRCd_confCheck.mrc now checks to see if PING_TIMEOUT_DURATION is at least five seconds higher than PING_DURATION.
3. /WHO now conforms to the amount of replies it should send if include fields are specified. (Which is still a lot even for this IRCd.)
(2048 / (NUMBER_OF_INCLUDE_FIELDS + 4))
4. You can now limit the amount of users from the same ip address by adding MAXCLONES=<number> to [Mechanics] in mIRCd.ini.
LAN and localhost user(s) are not subject to this restriction.
The order is: [NETWORK BANS] -> *local immunity* -> [PASS] -> [NO EXTERNAL CONNECTIONS] -> [MAXCLONES] -> [MAXUSERS]
5. Added pretty rudimentary "Excess flood" support. This can be enabled by adding EXCESS_FLOOD=TRUE or EXCESS_FLOOD=FALSE to
[Mechanics] in mIRCd.ini.
6. Can specify the FLOOD_LIMIT=<bytes> for use with EXCESS_FLOOD under [Mechanics] in mIRCd.ini. (Needs to be >=1024 bytes.)
Currently 8192, which should be more than adequate.
7. Fixed a visual bug in /mIRCd.modeTell which involved +k containing ¦. E.g. +k test¦key where the line showing the new modes
would truncate the key (just the key) to +k test. (The key itself would still be test¦key.)
Solved by replacing ¦ with a , since keys aren't allowed/supposed to contain commas due to /JOIN.
8. Other cosmetic/minor change(s).
mIRCd[0.09hf13(Rev.2)][2021-2023] - 28/07/2023
--------------------------------------------------
1. Fixed an (accidentally discovered) issue where the IRCd would respond to Telnet clients constantly with "Register first"
or "Unknown command" due to the fact that Telnet sends blank/empty lines to the IRCd when you're inputting commands.
2. As usermode +h (SETHOST) is a hidden mode, it should not have been visible in the usermodes sent in raw 004 or raw 005
USERMODES=... reply.
3. AUTOJOIN_CHANS creation now ignores channels which are K-lined or G-lined. (Though nobody could join them anyway.)
4. /OPER now informs the user what their default snoMask is if they set +s prior to being an oper.
This isn't a bug, but it was annoying the hell out of me due to the fact I wasn't seeing HACK(*) notices and forgetting why.
5. I discovered on bircd (another ircu IRCd) that there doesn't seem to be a limit on the NETWORK_NAME length?
So I've imposed a restriction of 200 characters. (Which should be adequate enough.)
If there is a limit (which is probably 512 characters?), let me know by making an issue.
6. NETWORK_NAME now conforms to naming rules, which the nearest I can gather after testing is the same as ident rules.
7. NETWORK_INFO is now truncated to the same length as a "real name" as it should have been. (50 characters.)
8. Fixed a bug in /SVSJOIN where trying to join channels that didn't exist wouldn't work.
This was actually being caused by $is_on. Now if the first argument of $is_on(<id>,...) is $null, it'll default to $false.
It was either this or ternary if every single instance of $getChanID(), so this might have unforseen consequences...
9. Fixed a bug where you could join a K-lined/G-lined channel assuming it still existed because I was operating on the assumption
that the channel wouldn't exist after banning it. E.g. /MODE #chan +P -> /GLINE #chan -> /JOIN #chan -> "Now talking in..."
The channel will still remain if +P is set, you just can't join it anymore.
10. The same applies to /SVSJOIN as well. You could /SVSJOIN users into banned channels assuming they still existed because of +P.
11. Changed it so /JOIN #chan1,#chan2,... key1,key2,... now requires the exact key and number of keys for each specific channel
instead of the half-assed hack I did.
My mentality for this change 2y later is because if #chan1 had the same key as #chan2, a user would be able to join both
channels even though they're probably not supposed to join #chan2.
Though the chances of a channel having the exact same key are pretty small...
12. Other cosmetic/minor change(s).
mIRCd[0.09hf12(Rev.2)][2021-2023] - 22/07/2023
--------------------------------------------------
1. /SVSPART now issues a generic part message to indicate that a user has been forcefully removed.
2. Opers are no longer subjected to WHO_THROTTLE.
3. Opers are no longer subjected to CONNECTED_LIST_THROTTLE.
4. Can now /LIST based on last activity (in minutes) in a channel. E.g. /LIST M>5
As I don't know what classifies as activity, I've covered (for now): CLEARMODE, (SVS)JOIN, KICK, KNOCK, (OP)MODE, NOTICE,
(SVS)PART, PRIVMSG and TOPIC
NICK and QUIT are not specific to channels and thus not included.
5. Other minor changes.
mIRCd[0.09hf11(Rev.2)][2021-2023] - 19/07/2023
--------------------------------------------------
1. /STATS m now counts the data length received.
2. Fixed a bug with +g where users could bypass the gag if they weren't on the channel and +n wasn't set.
3. Fixed a bug where OPLESS_CHANS=1 would still op opers even though it wasn't supposed to.
4. Can now prevent users from having ops in persistant channels if they join and there are no other users by adding
NOOP_PERSIST=1 or NOOP_PERSIST=2 to [Mechanics] in mIRCd.ini. Meaning: 0 = Disabled, 1 = Everybody, 2 = Non-opers.
This can work in conjunction with OPLESS_CHANS.
5. Fixed a bug in /WHO where a user wouldn't appear if they themselves are +i under certain conditions.
6. Given the recent "SUPERBOWL" related spam and based on a discussion with an oper on another ircu based (Nefarious) IRC
network, we were quite surprised to learn that there isn't a way to use /WHO to return users who've been connected to
the IRCd for a certain duration of time, so I decided to add this in just for test purposes.
Since /WHO is a powerful tool, and it would be useful to deal with annoying spambots, hopefully it'll become part of WHOX
"standard" one day.
Using the j (joined) flag, you can return users - via !=, <, <=, =, >=, > - who've been connected for N seconds. E.g.
/WHO >3600 j
/WHO * j%n :<=60
I've indicated this code with: *** OWN IDEA *** ... *** END ***
7. I've decided to classify this as a bug. If a channel is +H, the modes don't appear in /LIST... however, someone could
still get the modes by doing /MODE #chan. So now the modes aren't returned if the user isn't on the channel and does
/MODE #chan. (Excluding opers.)
8. /LIST now works the way it should on other IRCds. (E.g. /LIST >0,C<5,T>0,!*exclude*, etc.)
mIRCd[0.09hf10(Rev.2)][2021-2023] - 26/05/2023
--------------------------------------------------
1. Forgot a /return in $mIRCd.makeDefaultModes in mIRCd_modeHandle.mrc.
2. Commands in /STATS m will not be displayed if the times used is zero. (Like ircu IRCds.)
mIRCd[0.09hf9(Rev.2)][2021-2023] - 14/02/2023
--------------------------------------------------
1. Sending a /MSG or /NOTICE to nick@server should now work the way it should on an actual IRCd.
2. Fixed a bug where /CTCP wasn't being blocked by +C, and /action would have been blocked by +C if the former had actually worked.
3. As I felt this was a bug, ops and hops can no longer bypass channel mode +C (no /CTCP) or +T (no /amsg, etc.).
The order is now: [OPER +X PASS] -> +n -> +T -> +C -> [OP/HOP PASS] -> +N -> [VOICE PASS] -> +b -> +m -> +g -> +c -> +S
4. Possible bug. Usermode +X now bypasses +d(eaf) users, being silenced, stripping colors via PM, and chan mode +B.
5. Fixed a bug with /CLOSE.
6. Unloading mIRCd should now correctly deal with terminating the IRCd and cleanup operations.
7. Fixed a reply bug in /INVITE.
8. Fixed a bug in /NAMES.
9. NAMESX and UHNAMES are now set for the user upon connection. (Defaults to 1.)
10. Joining the channel automatically upon connection is now done after modes being parsed due to a bug involving +x, not
to mention now has a slightly longer delay.
11. A few other fixes and some optimization.
mIRCd[0.09hf8(Rev.2)][2021-2023] - 04/02/2023
--------------------------------------------------
1. The check for channel mode -d now occurs after the KICK command has parsed, rather than after each nick specified.
2. Commands are now finally stored in separate hash tables rather than a long, comma separated list in mIRCd.mrc.
3. G-lines and Shuns should now check against nick!user@ip.
4. Can now add local Shuns and Z-lines in the same manner as K-lines. (mIRCd.shuns and mIRCd.zlines respectively.)
5. Active, matching shuns of users who have just successfully registered with the IRCd are now announced. (SNOMASK=512)
6. Can now password the server by adding CONNECTION_PASS=<encrypted password with mkpasswd>.
Those connecting via localhost (127.*) and LAN (192.168.*) are not subject to this restriction.
7. Added the PASS command. This must be sent by users *BEFORE* NICK and USER.
8. Added channel mode +B <N>. This will avoid parsing messages to users in channels who have been idle on the server
for >=N seconds. (Bandwidth saving mode.)
This can be enabled by adding BANDWIDTH_MODE=TRUE or BANDWIDTH_MODE=FALSE to [Features] in mIRCd.ini. Defaults to FALSE.
9. You can now specify channels to have users automatically JOIN on connection. This can be done by adding:
AUTOJOIN_CHANS=#comma,#separated,#channels to [Features] in the mIRCd.ini.
This still falls in the limits of TARGMAX_JOIN, MAXCHANNELS and MAXCHANNELLEN.
10. The true address of connecting/disconnecting users is now shown instead of the obfuscated address.
11. Corrected a possible bug in setting SNOMASK.
12. PROTOCTL is now hidden from /HELP. (It's still usable, just hidden.)
13. Added S:line support. (Aka. User mode +h or /SETHOST.)
Doing either /SETHOST <S:line> <password> or /mode <you> +h <S:line> <password> will change your @host into the
specified S:line, assuming it is part of mIRCd.slines. Doing /MODE <you> -h will restore your host to the original host.
This can be enabled by adding SLINE_SUPPORT=TRUE or SLINE_SUPPORT=FALSE to [Features] in mIRCd.ini. Defaults to FALSE.
14. Code for /GNOTICE (now deprecated) removed and placed into it's own separate file. (mIRCd_gnotice.mrc)
15. Failed SVSJOINs into banned channels now sends a server wallops. (Cannot be disabled in order to prevent abuse.)
16. Users attempting to join banned channels now sends a server wallops. This can be enabled by adding WALLOPS_BAD_JOINS=TRUE
or WALLOPS_BAD_JOINS=FALSE to [Mechanics] in mIRCd.ini. Defaults to FALSE.
17. /NAMES now takes settings for PROTOCTL NAMESX and UHNAMES into consideration. The user can override these any time by
sending a boolean value as part of the command. (Which isn't protocol, but...) E.g. /PROTOCTL NAMESX 0
18. Can now deny channels from being made except by IRC operators by adding DENY_CHANNEL_CREATION=TRUE or DENY_CHANNEL_CREATION=FALSE
to [Mechanics] in mIRCd.ini. Defaults to FALSE.
19. Can now prevent new channels from having ops by adding OPLESS_CHANS=1 or OPLESS_CHANS=2 to [Mechanics] in mIRCd.ini.
Meaning: 0 = Disabled, 1 = Everybody, 2 = Non-opers.
20. Other changes.
mIRCd[0.09hf7(Rev.2)][2021-2023] - 02/02/2023
--------------------------------------------------
1. DEFAULT_CHANMODES and DEFAULT_USERMODES are now parsed after making sure specific modes have been enabled.
2. Certain Menu items are now grayed out depending on if the IRCd is running or not.
3. Although there was absolutely no reason for me to do so, added usermode +B (bot). It does absolutely nothing.
4. Can specify if you want bot support (even though it does nothing) enabled by adding BOT_SUPPORT=TRUE or BOT_SUPPORT=FALSE
to [Features] in mIRCd.ini. Defaults to FALSE.
5. Added usermode +m which prevents users from messaging you if they aren't on your /ACCEPT list.
6. Added /ACCEPT. It works in the same manner as /SILENCE.
7. More extended silence wildcard masks (E.g. *!*@* vs. *!*@127.0.0.1) now trump older masks. (Same also applies to /ACCEPT.)
8. Fixed a possible bug that existed within /SILENCE when removing a mask.
9. Made it so that DNS/Ident don't update their respective values if the user is already connected to the IRCd as it is
too late by then.
10. RPL_ISUPPORT (005) now includes USERMODES=<modes>.
11. Added channel mode +D (+d). Anyone who joins a channel when +D will not be shown unless the user changes the topic,
gets kicked, receives hop/op/voice, or speaks.
If you try to set -D when there are hidden users still in the channel, +d will be set automatically as polarity.
Only the server can remove +d, which will be done when there are no hidden users left. (Though setting +D removes it too.)
12. Can specify if you want Auditorium mode support enabled by adding AUDITORIUM_MODE=TRUE or AUDITORIUM_MODE=FALSE to
[Features] in mIRCd.ini. Defaults to FALSE.
13. Fixed a bug in /MODE. Doing +hov <nick> will now use the users actual nick rather than the token the user specified
due to a NAMES glitch when using Auditorium mode. (They would show up like jIGSy, rather than Jigsy until refreshed.)
14. Fixed a bug where users who are +i wouldn't show in /NAMES to opers.
15. Fixed a bug in usermode +x where the "Changing host" quit message was being truncated to just "host."
16. Changed LOOSE_OBFUSCATION to use a randomly generated 32 character string rather than a timestamp.
17. Can now specify if you want /WHOIS paranoia enabled (+W) by adding WHOIS_PARANOIA=TRUE or WHOIS_PARANOIA=FALSE to
[Features] in mIRCd.ini. Defaults to FALSE.
18. Ping timeout now displays the amount of second(s).
19. Can now MKPASSWD via the Menubar and /mIRCd.gui. This will still output into mkpasswd.txt rather than echo in the window.
20. WHO_THROTTLE is now under [Features], not [Mechanics]. (Though this won't make any difference either way.)
21. Other minor changes. (mIRCd, mIRCd.ini, etc.)
mIRCd[0.09hf6(Rev.2)][2021-2023] - 28/01/2023
--------------------------------------------------
1. /WHO should now work correctly. Though I'm still unsure if it functions correctly like it should on other ircu IRCds.
2. Corrected two-year-old bugs in GLINE and SHUN.
3. Added !RrealName support to K-line, GLINE and SHUN.
However, due to $ being a somewhat special case when it comes to mIRC, I've had to use !R instead of $R.
4. Fixed a bug where /STATS s would not display the shun item, and /SHUN (no args) would not list any shuns because
I specified the wrong hash table.
5. Can now specify a DEFAULT_OPER_SNOMASK by adding DEFAULT_OPER_SNOMASK=<number> under the [Mechanics] in the mIRCd.ini.
Defaults to 17157.
6. Fixed a possible bug where SNOMASK was being overridden by doing /OPER if +s wasn't in the modes being added because
it had been set prior. (The user will now need to manually change their SNOMASK, basically.)
7. SNOMASK changes are now noted, when opering up for the first time or doing -s.
8. Can now specify the default modes for channels when they're created by adding DEFAULT_CHANMODES=<modes> to [Mechanics]
in mIRCd.ini. This only applies to modes without args, and defaults to +nt if not specified.
9. Can now specify the default modes for users when they connect to the IRCd by adding DEFAULT_USERMODES=<modes> to
[Mechanics] in the mIRCd.ini. (With some exceptions, like +o or +X.)
10. /CLEARMODE now removes +c.
11. Updated mIRCd_modeParse.mrc to tell the user if a channel mode doesn't exist. (Already existed for user modes.)
This should allow users to remove modes they don't want parsing from $mIRCd.chanModes and $mIRCd.userModes.
12. Can now specify if you want Halfop (%) support enabled by adding HALFOP=TRUE or HALFOP=FALSE to [Features] in the mIRCd.ini.
Defaults to FALSE.
13. Can now specify if you want Persistant Channel support (+P) by adding PERSISTANT_CHANNELS=TRUE or PERSISTANT_CHANNELS=FALSE
to [Features] in mIRCd.ini. Defaults to FALSE.
14. Can now specify if you want Oper Override support enabled (+X) by adding OPER_OVERRIDE=TRUE or OPER_OVERRIDE=FALSE to
[Features] in mIRCd.ini. Defaults to FALSE.
15. Added an option to allow loose obfuscation of hosts when a user +x. What this means that whenever people on the same
ip addresses do +x, each of their hosts will be different rather than the same.
This can be enabled by adding LOOSE_OBFUSCATION=TRUE to [Features] in the mIRCd.ini.
16. Added channel mode +u to hide part/quit messages from other users.
17. Added chan mode +j <N>. This prevents users who have been connected to the IRCd for less than N second(s) from joining.
18. Added in /PRIVMSG $* and /NOTICE $* support, however, this is not without its issues due to mIRC and $ being a
special case.
On an ircu IRCd, you can /msg $*,$*.tld,$nameOfSer*,nick and it will message all of those.
However, with this, it only does the first, everything after the $* will be dropped.
E.g. $*,nick will only message $* and completely skip the nick.
This isn't an issue when you're not an oper though, it'll still process normally.
19. This means that GNOTICE has been deprecated. However, it has been retained in the codebase as a backup. (Though not callable.)
20. Updated the code that the connection goes through a little faster if DNS/Ident is finished with.
21. Can now call the information window (@mIRCd) from the Menubar.
22. Updated WHO.help and WHO_FLAGS.help to explain what flags are.
23. Other minor changes. (debugUser.mrc, example K-lines, other help files, etc.)
mIRCd[0.09hf5(Rev.2)][2021-2023] - 27/01/2023
--------------------------------------------------
1. You can now limit the amount of users on the IRCd by using MAX_USERS=<number> under [Server] in the mIRCd.ini.
Those connecting via localhost (127.*) and LAN (192.168.*) are not subject to this restriction.
2. You can now deny external connections to the IRCd by using DENY_EXTERNAL_CONNECTIONS=TRUE under [Mechanics] in the mIRCd.ini.
Those connecting via localhost (127.*) and LAN (192.168.*) are not subject to this restriction.
3. Fixed bugs regarding oper override:
* Opers can now /INVITE, /KICK, change /MODEs and the /TOPIC when not on the channel.
* Since I apparently forgot to code it in two years ago, opers can now walk past +i, +k, etc.
4. Oper override now trumps +K and +Y. (Though since they could just walk past the modes, why would they need to use /KNOCK?)
5. Fixed a bug in KNOCK where I specified %this.nick instead of %this.knock, meaning the channel name didn't show.
6. Users should now at least see the server notice when DIE and RESTART are issued.
7. WHOWAS cache cleaning will start on the next hour from when you started the IRCd.
E.g. If, for example, you start the IRCd at 21:47, the cleaning timer will start at 22:00.
8. Added /WHO. (WHOX)
I'm not going to lie, there are a couple of bugs with it. For example, a channel that's not +s and a user who is +i,
the user who is +i is on the channel and you do /WHO #chan,user. You will get no results even though you should for the nick.
But if you do /WHO user,#chan you'll see the user. (You can /WHO on +i users if you know their nick.)
This is my own fault with the way I've coded it. But rather than chase down even more bugs - I've spent two
solid days on this already - I've decided to just okay it for now and I'll eventually try and redo it at some point
in time.
Other than that, everything else works as it should. /WHO #chan,nick, /WHO * r :*, /WHO * %nr, etc.
9. You can throttle the use of WHO by adding WHO_THROTTLE=<number> under [Mechanics] in the mIRCd.
10. Other major and minor bug fixes/tweaks.
mIRCd[0.09hf4(Rev.2)][2021-2023] - 15/01/2023:
--------------------------------------------------
1. Updated debugUser.mrc to use /debugUser.raw instead of: sockwrite -nt $sockname
2. I decided to add the mode to block colors (+c) on channels. Bold, underline, etc. will still work.
Just like the polarity of +p/+s, this cannot be set in conjunction with +S.
3. Ditto, but for usermode.
4. Added a channel mode to hide the modes set on a channel from appearing in /LIST. (+H)
5. Updated CHANMODES.help and USERMODES.help to clarify a few things better.
6. Added /WHOWAS.
7. Other minor changes.
mIRCd[0.09hf3(Rev.2)][2021] - 11/01/2023:
---------------------------------------------
1. /LIST STOP cannot be used if connected on the IRCd for < CONNECTED_LIST_THROTTLE.
2. Minor string correction(s).
mIRCd[0.09hf2(Rev.2)][2021] - 30/07/2022:
---------------------------------------------
1. Fixed a typo in mIRCd.mrc.
2. Corrected the final line in SNOMASK.help.
3. Added root to nicks.403.
4. Corrected (not -i or -k) to (not set as +i or +k) in KNOCK.help.
5. Updated example K-lines.
6. Updated CHANMODES.help and USERMODES.help to clarify a couple of things better.
7. Removed some unused code from mIRCd_connHandle.mrc.
mIRCd[0.09(Rev.2)][2021] - 19/07/2021:
---------------------------------------------
1. Initial release.