-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
1766 lines (1753 loc) · 116 KB
/
Changes
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
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
* UnrealIRCd Changes File - (C) Carsten Munk 1999-2005 &
* The UnrealIRCd Team
*
* $Id: Changes,v 1.1.1.1.2.163 2008/04/23 18:43:31 Trocotronic Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
[Unreal 3.2.1]
- Replaced tre.dll/tre.lib, previous versions caused a crash (eg: if you included
spamfilter.conf).
- Fixed a problem when compiling with GUEST enabled. Reported by dvzion (#0001758)
- Fixed a documentation typo reported by Konc
- Fixed a little problem in ./unreal to move ircd.pid.bak to ircd.pid of starting failed.
Fixed by fez (#0001739)
- Made it so chg* command usage is not logged from U:lines. Reported by diskman1 (#0001718)
- Changed int_to_base64() warning so it has less false positives (#0001797).
- Fixed a bug where if set::ssl::options was empty, a crash could occur. Reported by
spider312 (#0001799)
- Include openssl/md5.h and openssl/ripemd.h if compiled w/SSL, this seems how it
should be done and also makes unreal w/SSL able to compile on OpenBSD (3.5).
- Added module support for Windows!
To module coders:
-Building your module on Windows is almost exactly the same as on *nix
nmake -f makefile.win32 custommodule MODULEFILE=thefile
-Also, as I'm sure most module developers will begin distributing .dll files for their
modules, it is important to note that just like the modules on *nix, the dlls will need
to be recompiled each time a new version of Unreal is released. This is simply due to
the potential for binary incompatibility which at this point can not be avoided.
-Most modules already do this, but it is now a requirement for Windows support. At the
very minimum, the Mod_Test function must have the DLLFUNC specifier in order to work
Unreal will automatically add DLLFUNC to the other functions, but it does not hurt if
you use it for all of them.
NOTE: It is expected that there will probably be a few bugs to work out with this, so
please consider testing it! And module coders, please report any problems you experience!
- Modulized cloaking:
- Currently there are 2 cloaking modules: 'cloak' and 'oldcloak'.
- You MUST load at least 1 of them (like: loadmodule "src/modules/cloak.so";).
- 'oldcloak' is just the <=3.2 cloaking algorithm.
- 'cloak' is the new, recommended, and much more secure cloaking algorithm that uses
md5 internally and requires 3 keys of 5-100 characters (10-20 is fine) consisting of
mixed lowcase (a-z), upcase (A-Z) and digits (0-9) [eg: "AopAS6WQH2Os6hfosh4SFJHs"].
- Note that 'oldcloak' is only ment for use during the upgrade process (it will give
a warning if you use it), you should switch to the much more secure 'cloak' module
as soon as all your servers are upgraded.
- Module coders can code 3rd party cloak modules that use other algorithms or cloak
in a different way (have a look at src/modules/cloak.c).
- spamfilter: Added Bloodhound.Exploit.6 sig
- Compile fixes for win32 modules with ssl/zip/curl
- Changed 'Services operator' in /whois (back) to 'Services administrator', this was
requested by many people and seems to be the best after all (#0001634).
- Local opers can now also join +O (operonly) channels (#0001694).
- Changed the way MSG/NOTICE <prefix>#chan works:
- It now goes to <prefix> and higher, so '/notice +#chan hi!' goes to +vhoaq
- You need at least voice in order to be able to msg/notice +#chan, %#chan or @#chan
- You need at least ops in order to be able to msg/notice &#chan or ~#chan
- Any multi-prefix targets will be converted automatically (eg: ~&@#chan to @#chan).
- internal: use of the CHANOPPFX macro is now deprecated.
All of this was done to make it a bit more 'safe' and userfriendly (#0001812).
- Fixed a remote include bug that would cause unnecessary blocking
- Fixed a /credits typo
- Imported TRE 0.6.7 for win32
- Imported TRE 0.6.7 for *nix and made use of tre_version to report the version of TRE
in use at startup
- Fixed a Win32 module bug
- Added set::spamfilter::virus-help-channel-deny. This allows you to block any
normal joins to the virus-help-channel. This way you could prevent users into
accidental (or tricked) joining of the virus-help-channel and becomming infected.
This feature is disabled by default. Requested by bleepy (#0001811).
- German doc updates (week 20).
- Added optional parameter to SVSJOIN to deal with channel keys. Reported by
DukePyrolator (#0001822).
- Added zlib+SSL version check on boot to make sure the runtime version is the same
as the 'compiled for' (header) version. If they mismatch, UnrealIRCd could crash,
so a big warning is posted if it happends.
- Improved the above: made it work on windows and also added a check for curl.
- spamfilter.conf: Added yet another sig for a site that causes Backdoor.Delf.lq
infection (reported by nexus), also changed LOI trojan and Bloodhound.Exploit.6
action to gline.
- Fixed a win32 module bug that broke strcasecmp/stricmp
- German doc updates (week 21)
- Fixed a permanent modules bug: custom allow/except/ban/deny types were lost
after /rehash. Reported by AngryWolf (#0001837).
- Fixed a problem with NICK collisions not using NICKv2 (#0001773) reported by thilo
- Added NICKIP (#0000605 & #0001376)
- Compile warning cleanups
- Added release notes (no, we won't release 3.2.1 anytime soon.. just updating ;p).
- Added various extra messages to make it a bit more easier for people who are
upgrading (win32 commands.dll, cloaking mod).
- Made win32 ssl<->non-ssl modules binary compatible.
- Added ssl/non-ssl check in Mod_Version on *NIX.
- Added set::options::flat-map: This makes all servers look like they are linked
directly to the server you are on (/map, /links), thus you cannot see which server
is linked to which ("hopcount"). This can make it a bit harder for kiddies to find
any 'weak spots' (which server to attack/[D]DoS). Obviously opers will always
see the real map.
- unreal32docs.html: added flat-map and set::restrict-usermodes "s"; security tips.
- Fixed a compile error regarding AF_MAX (#0001839) reported by Rocko
- Imported TRE 0.6.8 for *nix
- Added NICKIP to doc/technical/protoctl.txt
- Imported TRE 0.6.8 for windows
- Redid the win32 version to use a dynamically linked libc. This solves memory issues
arising from the fact that dlls do not share the same heap as the exe. As a side effect,
however, there is now a dependency on msvcr70d.dll. This DLL does not come with any
versions of Windows except 2003. It also comes with any .NET application and the .NET
framework. Unreal will automatically download th DLL if it is needed. Reported by Bugz
(#0001833)
- Fixed some other win32 crashes due to modulizing: WHOWAS, STATS [some], SVSMOTD.
All caused by missing "MODVAR"s. Reported by Troco (#0001841).
- Fixed SSL problem caused by a fix of 2 days ago. Reported by Fury (#0001842).
- And one more.
- Made socket errors correctly reported under Win32. Thanks to Microsoft for deciding
that having a way to get a socket error string was unnecessary.
- Fixed a NICKIP bug regarding passing along IPs (#0001846) reported by Troco
- And another one, should be fixed now.
- Added snomask +S to the documentation (#0001835) reported by medice.
- Made a bunch of TKL parameters case insensitive (#0001766) reported by medice.
- Made Unreal create the tmp/ dir at startup, rather than configure (#0001824) suggested by
LinDevel
- Added /dns c to clear the DNS cache (#0001852) suggested by samson.
- Seems I forgot to del_Command() SPAMFILTER and TEMPSHUN.
- Made the win32 socket error reporting also handle regular system errors (#0001851)
reported by Troco
- Added a doc/translations.txt which describes the (current) translation process
and requirements a bit.
- Fixed a synch bug, reported by Troco (#0001857).
- Split up the /who oper and user help messages
- Added /who +i (search by IP) and /who +I (show IP), oper only.
- Made it so /who +m doesn't default to /who if a user uses modes they aren't allowed to
use (#0001858) reported by Bugz
- Added a couple donators to /credits
- Module coders: if CmdoverrideAdd() is called for an override that is already in place, it
now sets MODERR_EXISTS as errorcode and returns NULL (previously it added duplicates).
In the past module coders had many issues with PERM mods... you had to use weird tricks,
but now you can (and should!) just override on INIT and on HOOKTYPE_REHASH_COMPLETE.
- Moved register_user declaration to h.h, updated call in m_pingpong.c (due new 'ip' field).
- Usermode +v ('receive dcc send rejection notices') is oper-only now for privacy reasons.
- Added dcc allow { }, which allows one to make exceptions over deny dcc { }.
- Added deny dcc::soft and allow dcc::soft item, if set to 'yes' it allows someone
to explicitly override it per-person via /DCCALLOW (see next).
- Added DCCALLOW system, taken directly from bahamut.
With this system you can block certain (or all) DCC SENDs and then allow the user to
'override' this limit for every user he/she trusts via '/DCCALLOW +User'.
This is an attempt to stop (or at least limit) the spreading of viruses/etc.
See '/DCCALLOW HELP' for more info.
- Added example dccallow.conf which filters everything except some known
'safe types' (jpg, jpeg, png, gif, etc). Note that the purpose of this file
is NOT to get a complete list, rather to limit it to a few 'known safe' entries.
- Added set::maxdccallow: max number of entries of the DCCALLOW list (default: 10).
- Various (non-critical) fixes for dccallow reported by Rocko (incorrect nick in deny msg,
added set::maxdccallow in docs, added bmp/vob/log/ to dccallow.conf).
- Made extbans desynchs a bit more friendly: if a bantype is unknown for the server
it will just accept it if it's from a remote server, and also ops/etc will be allowed
to REMOVE any unknown extbans (but not add new unknown ones).
- Added extended ban type ~n (nickchange ban), if a user matches this (s)he can not
change nicks (eg: +b ~n:*!*@*.aol.com) unless (s)he has voice or higher.
This can be useful as an overall measure for some +m chans (+b ~n:!*@*) or against
specific 'good' people that are just nickflooding due to a wrongly configured script.
- Added set::restrict-extendedbans by which you can disallow normal users to use
any extendedbans ("*") or disallow only certain ones (eg: "qc").
- Made the negative TS message a bit more annoying if time is off more than 10 seconds.
- Minor doc tweakers, reported by AngryWolf (#0001871).
- Win32: Readded /J compiler flag (was accidentally lost in December). This could cause
some weird issues. Reported by Troco (#0001877).
- Fixed compile problem with debugmode + ipv6
- Added CIDR support (#0001296) suggested by many people.
- Imported the latest CIDR functions from Hybrid 7.0.1 (and fixed numerous bugs)
- Implemented CIDR support for ban ip, ban user, allow, except ban/tkl/throttle, and TKL
- Note: This needs testing
- To be able to use /ADDLINE you now need the (new) 'can_addline' operflag (oper::flags),
reason for this is that it's such a powerful/dangerous command.
- Fixed find_qline crashes regarding except tkl 'type qline', reported by Gilou (#0001882).
- Fixed some CIDR bugs causing things not to match.
- Fixed a CIDR bug when compiled without IPv6 support
- Fixed an SVSNICK bug that could lead to duplicate users in very rare circumstances
(#0001874) reported by Jiuka.
- internal: Added GetIP() which we will now use instead of all the Inet_ia2p() stuff
because it's slightly faster (already replaced all of them in src/s_kline.c).
GetIP(acptr) will return the ip for local users and remote users that support NICKIP,
it returns NULL for remote users that are on non-NICKIP servers (or have non-NICKIP
servers along their path).
- internal: tkl_add_line now returns aTKline *
- Added some more hooks:
- HOOKTYPE_TKL_ADD [aClient *cptr, aClient *sptr, aTKline *tk]
- HOOKTYPE_TKL_DEL [aClient *cptr, aClient *sptr, aTKline *tk]
NOTE: 'NULL, NULL, tk' is used for *lines that are removed due to expiring
- HOOKTYPE_LOCAL_KILL [aClient *sptr, aClient *target, char *comment]
- Added support for the ELIST 005 token with MNUCT options
- Made Mod_Version required (this should be no problem since it's done automatically).
- Added HOOKTYPE_LOG [int type, char *timebuf, char *logbuf]
- Updated the release notes.
- Fixed a CIDR bug reported by poisoner (#0001892)
- Documented numerics in use by other IRCds
- Converted several notices to numerics (#0001599) suggested by olene
- Added a donator to /credits
- Fixed '/stats P' negative usercount bug (#0001691).
- Made IPv6 bans work the way they should again, reported by al5001 (#0001876).
- Added new logtype 'spamfilter' to log spamfilter matches
- Updated example.conf: added all new flags we added in the example block, removed
old confusing comment on SEGV logging, config.h: ripped out lPATH since that define
isn't anywhere used and is only confusing.
- Made the new numerics use nicknames (#0001896) suggested by Dukat.
- Fixed a problem where the tmp directory was created in the current directory rather than
the correct path (#0001898) reported by AngryWolf
- Updated HOOKTYPE_TKL_ADD/HOOKTYPE_TKL_DEL to cptr, sptr, tk, parc, parv, else it was
impossible to tell *who* removed a *line. Again, parc/parv are 0/NULL for expires.
- Fixed "quickly-rehashing + autoconnect linkblocks = crash"-bug. This involved fixing
multiple reference count bugs, one related to sptr->serv->conf, and another one related
to sptr->serv->class. Both caused problems when someone did a /rehash when a server
was in the process of connecting (so it might also happen when connfreq was hit and you
did a /rehash). Original bug was reported by sh0 (#0001872).
- spamfilter.conf: Added sig for a mIRC decode worm, submitted by nexus.
- Some release notes updates.
- Changed version to 3.2.1-pre1 and updated protocol # to 2304.
- Updated wircd.def
** internal 3.2.1-pre1 release **
- Various (>15) small fixes for unreal32docs.html, reported by AngryWolf (#0001906).
- Added spanish docs, translated by Trocotronic.
- Fixed serious crashbug due to quick-rehashing bugfix! Basically if you did a /REHASH and
the clientcount for a class reached 0 (due to quits) it would crash.
** internal 3.2.1-pre2 release **
- Added hungarian docs, translated by AngryWolf.
- Fixed a problem with the win32 installer as a result of MSVCR70D.DLL, reported by
aquanight
- Updated /Credits and added a donator.
- Made release notes a bit more scary + some minor english-only doc updates
- Changed version to 3.2.1
- Moved the 3.2 changes to Changes.old
** 3.2.1 release **
- Fixed a win32 module problem where file not found errors would display random characters,
reported by STING
- Fixed a bug where the allow-userhost-change force-rejoin setting was not applied to users
who /oper and receive an oper-host (#0001901) reported by hypnetric.
- Removed the /hs alias pointing to HelpServ for Anope since this conflicts with HostServ
(#0001709) reported by DukePyrolator
- Fixed ban bug: halfops were also prevented from doing nickchanges if banned, plus..
+b ~n:*!*@* also made nickchanges impossible for voiced(&halfop'ed) people (so like half
of the purpose of it was defeated @$#&@#). Reported by Rocko.
- Fixed a bug where an ident in a vhost {} was never sent out to other servers and added
user@host support for set::hosts (#0001834) reported/suggested by bleepy.
- Fixed defizzer module. Reported by Rocko and netrixtardis.
- Removed the * and ^ flags from /whois if PREFIX_AQ is not enabled (requested by many people)
- Updated the /who docs to use correct English
- Added documentation for the /who and /whois flags (#0001881) reported by AngryWolf and Bugz.
- Added src/win32/win32.c for generic win32 helper functions
- Renamed src/win32/win32gui.c to src/win32/gui.c
- Reorganized much of the Windows code
- Fixed a whois bug when PREFIX_AQ is undefined, reported by Shaun
- Moved the RTF win32 code to a seperate file
- More win32 code cleanups
- Added src/win32/editor.c (woops), (#0001932) reported by Troco
- Fixed a problem with /who incorrectly showing the ? flag to opers even when the user should
be visible (#0001888) reported by Bugz and aquanight
- Added SAPART and SVSPART reasons. Note, to fully work it requires all servers to upgrade,
and due to a bug in older versions, it could cause problems if linked to 3.2 or earlier
(#0001859) suggested by Bugz
- Fixed a minor issue where Unreal registered itself as an NT service incorrectly
(#0001950) reported by rocafella
- Possibly fixed a bug that could cause Unreal to eat 100% CPU at startup on Windows.
(#0001635) reported by eggburt. Thanks to STING for helping to debug this.
- Implemented a new modules Makefile written by fez (#0001930).
- Added oper::modes to specify modes to be set for a particular oper (overrides
set::modes-on-oper), suggested by parker182 (#0001899).
- doc/example.conf now simply refers to unreal32docs.html for oper flags (#0001973)
reported by vonitsanet and AngryWolf.
- Fixed crash-on-first-connect if SSL was enabled. This seemed to happen on Mac OS X,
Sun Solaris, Opteron@Linux and perhaps others (#1982, #1984, #2110), reported by bit,
lion and liverbugg.
- Fixed a bug if me::info was set to "".
- Added a missing error message for ModuleGetErrorStr. Additionally added error checking to
ensure NULL is returned when an invalid error code is specified (#0001986) reported by
AngryWolf.
- Applied patch from slePP for bug #0001252: if IPv6 was enabled then in some cases names
were not properly resolved. Original bug reported by kormat.
- Fixed bugs regarding HOOKTYPE_SERVER_QUIT: was sometimes called twice and could cause
crashes due read-after-free. Reported by SET (#0001988).
- Fixed possible crash if /rehash'ing and a servername was just resolving (due to
/connect or autoconnect) and was not present in the cache. Reported and traced by sh0
(#0001976).
- Fixed compile bug at *NIX caused by ModuleGetErrorStr fix.
- Improved doc/compiling_win32.txt a lot: now VC7 only, and has instructions on:
compiling modules and their (binary) compatability, zip links (zlib), ssl (OpenSSL)...
Remote includes (curl and c-ares) instructions still need to be added.
- Made 'Install as a service' unchecked by default, this should help beginners a lot.
- Updated doc/compiling_win32.txt again with curl build instructions.
Also linked to a page with an unreal dev package which contains zlib+ssl+curl
precompiled. This basically means many people no longer need to compile zlib/ssl/curl
anymore themselves (which is a pain to do and takes a lot of time).
- Windows: the 'notice' parameter in the usermsg callback was always 0 due some windows/vc
weirdness, this also affected spamfilter (so any spamfilters added only at notice
and not at msg on windows would not work). Now using the real 'notice' parameter.
- unbroke spamfilter not working for msgs/notices (oops..).
- Made zip/non-zip modules on win32 binary compatible. Since it was nowhere documented
that you should pass the ZIP_LINKS etc options to 'nmake -f makefile.win32 custommodule'
many people didn't do this which caused odd problems when reading certain clientstructs.
Module coders: in the meantime, for 3.2.1 mods, use something like:
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib"
ZLIB_LIB_DIR="c:\dev\zlib\dll32" custommodule MODULEFILE=m_mymodule
For 3.2.2+ these additional parameters will no longer be needed (but wouldn't harm either).
- Some doc/example.conf clarifications, mainly for modules @ win32.
- Made /whois show the user's modes to opers regardless of +e
- Added snomask to the /whois umode output
- Added a patch by rocafella to fix a crash when installing Unreal on Win2003 (#0001949).
- Moved the Command API functions to a separate file.
- Redesigned the 005 token:
- Now renamed to RPL_ISUPPORT.
- Replaced KNOCK and MAP tokens with new CMDS token (see doc/technical/005.txt)
- Implemented most tokens from the isupport draft (STATUSMSG, EXCEPTS, CHANLIMIT,
CHANNELLEN, MAXLIST).
- Removed MAXBANS.
- Made the isupport system dynamic and provide an API for modules to add tokens, may need
testing.
- Added an M_ANNOUNCE flag for CommandAdd to add the command to the CMDS token, may need
testing.
- Fixed some compile warnings.
- Fixed a bug where bans were not matched against IPs in all circumstances (#0002045)
reported by heper.
- Fixed a bug with IP based except tkl {} lines did not validate the ident portion of the mask
(#0002049) reported by Rocko.
- Fixed a problem where a local TKL could be sent to remote servers when it is being changed
(#0002048) reported by AngryWolf.
- Added documentation for link::ciphers to unreal32docs.html (#0002019) reported by Bugz.
- Updated documentation to reflect that cmode +M allows voiced users to talk, not just
registered users (#0002020) reported by crazy.
- Made it so WATCH will not respond with an erroneous reply if the parameter was simply + or -
(#0002017) reported by GouraudShading.
- SVSO now removes +v (#0002023) reported by w00t and aquanight.
- Exported the isupport functions for use in Windows modules.
- Added a new snomask, +o to show oper-up notices (oper only), (#0001965) suggested by
vonitsanet.
- Added a /userip command that works just like ircu's.
- Fixed a typo in the *nix Makefile reported by Troco (#0002059)
- Added french docs, translated by Kolibot & Babass.
- Changed some stuff to use the release version of MS libraries.
- Updated installer for msvcr70.dll
- Fixed prefix bug caused by previous 'fix'/behavior change. Reported by aquanight (#0002067).
- Updated doc/technical/token.txt and resolved 2 token conflicts. SVSWATCH is now Sw and
SVSJOIN is now BX (#0002073) reported by trystanscott.
- Fixed a bug regarding chanmode +mu where the <IRC> messages were not properly relayed
to all servers. Reported by Aenox (#0002079).
- Added salted passwords. Salts are useful because it "protects" against stored-plaintext
attacks (eg: rainbow) and prevents cracking of several passwords at once.
This change means /MKPASSWD will now just generate a different string than before.
Do note however, that the old syntax/encrypted passwords will still work and _will continue
to work_ in the future, for at least the whole 3.2* series.
If you are concerned with security and have some time, then converting your passwords
is probably a good idea... Just in case your configuration file gets stolen one day ;).
- MD5 password encryption is now always available on *NIX, even if SSL is disabled.
- Temporary fix for ircsprintf %lu 1..6 issue.
- Fixed a problem with +u for some clients that have a strict interpretation of the RFC.
- Added TRE 0.7.0, fixes #0001952 reported by Praetorian
- Fixed an (unimportant) cloak typo / made it a few nanosec faster. Reported by Martin Brulisauer.
- Fixed resolver not working in FreeBSD jail, reported & patch provided by urkel (#0002097).
- Added a %n specifier to command aliases that is replaced by the user's nickname,
requested by many people.
- Added the ability for an alias {} to send to a channel (#0001686) requested by JasonTik
- As a result, alias[::format]::nick is now called alias[::format]::target to avoid
confusion. ::nick is maintained for backwards compatibility.
- Fixed a problem where IsupportAdd did not return a value.
- Module coders: Added HOOKTYPE_REMOTE_JOIN, HOOKTYPE_REMOTE_PART, HOOKTYPE_REMOTE_KICK (all
work just the same as the HOOKTYPE_LOCAL_* variants).
- Module coders: HOOKTYPE_REMOTE_CONNECT is now also called during net-merge. You can use
IsSynched(sptr->srvptr) to find out if it's called due to a net merge (0) or a connect (1).
- Added spamfiler 'user' (u) target. This regex is checked against nick!user@host:realname
when a user connects. This makes it easy to ban drones with simple patterns.
For example: '/spamfilter add u gzline 86400 Drone[0-9]+!.+@.+:Drone[0-9]'
would kill any drones that have both a nick and realname with 'Drone' followed by digits.
- If a nick is qlined, the user is now lagged up to limit qline floods a bit (#0001335).
- Made docs a bit more clear on spamfilter targettypes.
- Fix for too broad regex in badword::word causing the IRCd to hang, reported by Flop
(#0002101).
- IPv6: Fixed hostnames in link::hostname not working, reported by Jasmin (#0001990).
- Fixed OOB read/write on user quit (did no harm on Linux&FreeBSD).
- Fixed some tiny memory leaks (~100 bytes) on rehash.
- Updated chinese&japanese GBK nick code, fix supplied by Xuefer (#0002051).
- Added release notes (unfinished).
- Added file: include/macros.h and a new macro, ARRAY_SIZEOF.
- Added the ability to specify multiple types in a tkl except, suggested by Bugz (#0002085).
- Added spamfilter 'away' ('a') target (#0002057).
- Fixed a qline duplicate msg bug I think
- Windows version can now hold ~4096 connections instead of ~1024
- help.conf: clarified MKPASSWD documentation, reported by hypnetric (#0001926).
- Some modeskip handling for future versions
- Fixed serious heap corruption bug if remote users were using qlined nicks, thanks to
Gilou and Trankill for making me able to trace this issue down (#0002032).
- Fixed qline notices again: now gives msg #1 for local qlined-nick attempts, and
another msg in case of a remote client (eg: oper) using a qlined nick.
- Added some future SJOIN skip stuff.
- Updated version to 3.2.2-pre1 already.
** internal 3.2.2-pre1 release **
- Fixed some doc & release notes typos. Reported by Rocko, HiT.
- French doc updates, hopefully synched now.
- (revert of badsyntax fix)
- Forgot to mention away spamfilter target in helpop, reported by Rocko.
- Changed version to 3.2.2
** 3.2.2 release **
- Fixed a typo in the makefile for USERIP
- Made the WATCH command work for WebTV users (#0002121) suggested by White_Magic.
- Some text updates... docs: now 3.2.2-CVS, also got rid of double version to avoid
confusion. credits: fixed typo.
- Added updated auspice.conf from Rocko since previous one was outdated (#0002147).
- Recoded the config parsing code
- The new system is much faster, for the programmers out there, the
old system averaged O(MN) where N was the number of sub-directives for a block, and
M was the number of sub-directives actually contained in the block in the config file.
The new system averages O(N), so the number of sub-directives no longer has a significant
impact on performance.
- Added duplicate config entry detection (#0002126) suggested by brain2
- May have a few bugs (easily fixed)
- Corrected numerous -Wall warnings
- Fixed a bug with /rehash and classes due to the config parser rewrite
- Modified the module symbol dependency code to do more accurate searching for the module
that contains the necessary symbol (#0002123) suggested by Xuefer.
- Unreal will now prepend the pathname to the module and append the appropriate extension
(.so or .dll) to the end)
- The new module system version is "3.2.3" to allow for backwards compatibility
- Documented the default behavior of snomasks when /mode nick +s is used (#0002141) suggested
by Bugz.
- Added "const" to the functions in match.c, (#0002116) suggested by Xuefer.
- Made ./Config better handle command line arguments
- Removed NAZIISH_CHBAN_HANDLING as it didn't do anything
- Added -advanced flag to ./Config to configure advanced options (#0002145) suggested by
Bugz. As a result, some config.h options are now in ./Config -advanced.
- Small fix for above
- Added the ability to specify a botmotd and opermotd in a tld {} (#0000176) suggested by
swissSolaris.
- Fixed crashbug on /rehash due to config rewrite, also made DEBUGMODE working again.
- Removed an excess space from the SAMODE notice when a mode without a parameter was set
(#0002134) reported by Bugz.
- Fixed small memory leak on /rehash (post-3.2.2).
- Fixed botmotd crash due to last change (post-3.2.2).
- Updated the Donation file
- Added a 'B' flag to /who output for bots, and allowed normal users to /who +m B
(#0002096) suggested by White_Magic
- Added support for using \\ in the config file to indicate a \ (#0002178) reported by
TimeFX
- Added documentation for set::options::fail-oper-warn (#0002166) reported by Snake
- Removed an extra ) in the Throttle disconnect message (#0002165) reported by Snake
- Fixed a bug where the "looking up your hostname" message could still be displayed even
if hostname resolving was disabled (#0002161) reported by Xuefer
- Made typing /kline, /shun, /zline, and /gzline correctly report the correct /stats flag,
and these commands now produce the same output as the respective /stats flag they emulate
(#0002149) reported by Snake
- Renamed some calls from report_error() to report_baderror() since otherwise the errors are
hardly ever seen (unless you have +s +j set). For example a bad link::bind-ip only caused
"Couldn't connect to xxxxxx" without any meaningful error message. Additionally, errors
sent to report_baderror() are now logged.
- Win32 installer: Apparently 'install as a service' was still not the default, reported
by fez (#0002191, #0002189).
- Fixed the crule parser to treat - and : as valid 'word' characters rather than separators
(#0002188) reported by diskman1.
- Fixed bug in remote version reply, reported by DukePyrolator (#0002180).
- Added set::dns::bind-ip (rarely ever needed, but might be useful for paranoid people).
- Some unreal32docs->security section improvements.
- Fixed a minor bug in the new config system when displaying link {} and set::hosts errors
(#0002194) reported by AngryWolf.
- Renamed RPL_INVITELIST/RPL_ENDOFINVITELIST to RPL_INVEXLIST/RPL_ENDOFINVEXLIST
- Using /invite with no parameters now lists the channels you are invited to but have not
yet joined (#0002190) suggested by sac.
- Added some missing operflags to /stats O and SVSO (#0002193) reported by Bugz.
- If a user is +b on a channel, and set::allow-userhost-change force-rejoin is used, a
part/join is not sent in order to prevent flooding (#0001933) suggested by Z3l3zT.
- Rewrote some of the previous change to deal with some strange issues found by aquanight
- Introduced two new macros DYN_LOCAL and DYN_FREE to allow creation/deletion of dynamically
sized arrays in the most efficient manner (C99 variable length, alloca, or malloc)
- Changed the +z cannot join message to be a bit more descriptive (#0002148) suggested by cust.
- Added a config.h options, IPV6_COMPRESSED to make Unreal use compressed IPv6 addresses where
possible (#0002107) suggested by Neo-Vortex.
- Fixed alloca warning @ Linux (post-3.2.2)
- Numeric audit: 15 small changes (int/long mismatches etc). This might have fixed some
bugs on architectures where 'long' and 'int' have different sizes (eg: opteron).
- Added a set::gline-address which works like set::kline-address (#0001298) suggested by
Bugz.
- Added missing documentation for spamfilter away target (#0002205) reported by Dukat.
- Fixed dcc spamfilter problem reported by TimeFX and Deadalus (#2177, #2204).
- Fixed Oper Override not giving a 'special join notice' if +z is set along with another mode
(eg: +i/+k), reported by tabrisnet (#0001487).
- help.conf: Fixed a typo, updated *CMDS indexes a bit, reported crazy (#0002208),
added long flags to OFLAGS.
- OperOverride INVITE notices are now also global (if you have the eyes snomask set) (#2212).
- Module coders: New function: sendto_snomask_global().
- Speedup sendto_snomask/sendto_connectnotice/sendto_fconnectnotice code.
- spamfilter.conf: fixed mIRC exploit sigs
- Fixed all spamfilters in configfile not working due to configrewrite (post-3.2.2).
- Module coders: sendto_snomask* now only sends to opers, sendto_snomask_normal* can be used
to send to normal users w/the snomask set.
- Fixed dcc filtering a bit more.
- Made usermode 'g' operonly since it didn't do much, reported by DukePyrolator (#0002024).
- Fixed tkl except { } not working (post-3.2.2).
- Fixed bug where servers behind ulines were not ulined, causing for example juped servers to
show up if flat-map was enabled, reported by GSF19 (#0002230).
- Some doc/ updates: removed: Unreal31_to_32.html & example.settings, updated: Authors &
translations.txt.
- Added a basic regex tutorial to unreal32docs.html (#0000920)
- Updated wircd.def
- Made CIDR no longer accept bitmasks with less than 16bits for /*line commands (#0002240)
reported by aquanight.
- Made the (?) kill message not show IP addresses (#0002227) reported by neothematrix.
- Added some error checking to /sapart (#0002253) suggested by Troco.
- Imported TRE 0.7.2 for Windows
- Imported TRE 0.7.2 for *nix
- Got rid of wma/wmv in dccallow.conf, better to require an explicit select here due to
recent DRM exploits (spyware etc).
- Fixed /restart reasons, reported by SouL-FoRTuNe.
- Partial (incomplete!) fix for alloca warnings during compile (especially w/SSL).
- Fixed serious crashbug that can be triggered by users, released a hotfix and a seperate
version called 3.2.2b (which is just 3.2.2+patch+version change to '3.2.2b',
nothing else).
- Fixed 'make install' error due to example.settings remove.
- Fixed a minor typo in the "now an oper" announcement (#0002284) reported by Rocko.
- Made SVSMODE -b and -e remove bans/excepts placed on IPs (#0002270) reported by Snake.
- Fixed a couple of problems introduced with the ./Config -advanced changed (#0002239).
- Made the win32 installer include the dccallow.conf (#0002269) reported by Ron2K.
- Made the win32 installer work with the latest version of Inno Setup (5.0.6).
- Made /sajoin support multiple channels and using 0 (#0002231) suggested by acemi.
- Fixed a problem where doing ./unreal restart multiple times would not actually restart
the ircd (#0002120) reported by SineSwiper.
- Made it so +f notices are sent to %#chan, not @%#chan (#0002248) reported by aquanight.
- Hopefully fixed the last of the alloca warnings (#0002202) reported by Stoebi.
- Fixed a problem with set::htm::incoming-rate being interpreted incorrectly (#0002266)
reported by tabrisnet.
- Fixed a resolver cache bug regarding CNAME's. Thanks to insiderZ.DE for tracing down
this issue.
- Fixed a bug related to the sajoin recode regarding notices displayed (#0002293) reported
by Troco.
- Reworded a cloak-key error message to make it clearer (#0002297) reported by Bugz.
- Fixed a bug where /whois notices were not sent to users who are +R if the sender is -r
and on a remote server (#0002288) reported by Freadon.
- Made /stats E include tkl except stats as well (#0001524) suggested by Cnils.
- Added an options member to the ExtbanInfo structure. This currently supports one flag,
EXTBOPT_CHSVSMODE. When set, this extban will be removed when an SVSMODE -b [nick] is
executed (#0002222) suggested by Snake.
- Fixed a bug where specifying a reason to SVSPART would cause it to fail (#0002210) reported
by tabrisnet.
- Moved channel mode +G to extcmode to make room for invex.
- Added debug code to trace proto-check bugs in DEBUGMODE [IsToken() etc]
- [Module coders] Added new function: do_cmd(cptr, sptr, cmd, parc, parv) which is an
uniform method to call any other commands. For more info, see description in src/packet.c.
This will be used for any further modulization of commands that need to call other
commands, like NICK (will be done soon).
- Added invite exceptions (+I). This prevents users from needing a /invite in for a +i
channel (#0002044) suggested by medice.
- Updated help.conf's +f documentation for the new syntax
- Fixed some problems with the /stats help and documentation (#0002299) reported by Rocko.
- Corrected the help.conf documentation for /invite (#0002306) reported by White_Magic.
- Fixed a documentation inconsistency with me::numeric (#0002290) reported by Bugz.
- Fixed a problem when compiling Unreal with GUEST support (#0001758) dvzion.
- Fixed a win32 GUI problem where the tray menu's config submenu was not updated when new
files were loaded or files were unloaded (#0002084) reported by Troco.
- Made m_template.c use CommandAdd() and CMD_FUNC()
- Modulized a lot of commands and related subfunctions: NICK (750 lines), USER (200),
MODE (2300), WATCH (250), JOIN (600), PART (250), MOTD (100), OPERMOTD (100),
BOTMOTD (100), LUSERS (100). More will follow soon (probably including more subfunctions
related to existing commands).
- Various (important) fixes to above, also made win32 compile work again.
- And some more.
- Made unreal_copyfile try hardlinking first, if that fails.. it will try to copy
(perhaps this should be a different function?). Anyway, this means less diskspace
is needed (~1.5mb or more), and it also makes it a bit easier for RBAC (#2300).
- Made a new function DoMD5() which is ssl/non-ssl independent. Also made the cloaking
module and the auth functions use it. Hopefully I didn't break anything ;). Suggested
by Bugz (#2298).
- Fixed mode #chan +O set by locop causing a desynch, reported by Unim4trix0 (#0001946).
- Added spamfilter topic support ('t' in /spamfilter, or 'topic' in conf), suggested
by Z3l3zT (#0001929).
- Updated makefile to fix compile problem, reported by vonitsanet (#0002317) [?].
Also made loading m_*.so work again.
- Added unreal_copyfileex() which works just like unreal_copyfile() but has an additional
param to try hardlinks first.
- Win32 crash fixes due to modulizing
- Made channel mode +c block RGB color codes.
- Fixed a bug with channel alias{}'s where using the format syntax caused a crash (#0002323)
reported by Snake.
- Made channel mode +S strip RGB color codes.
- Added channelmode +j (jointhrottle), syntax: /mode #chan +j X:Y, and then it will
throttle the number of joins per-user to X in Y seconds. Idea from Angrywolf (who
wrote a module that did this before). This needs testing :).
It's enabled by default but can be #undef'ed in include/config.h (line 449).
- Added a feature to +b ~c, ~c:[prefix]<#channel>, prefix can be +/%/@/&/~ and will
check if the user is voiced/halfoped/etc.. Especially useful for +e ~c. Idea from
Bugz (#0002198). Obviously all servers need to be upgraded to make this work.
- Fixed SVSNOOP bug where remote servers still thought the opers had privileges, reported
by Zell (#0002185)
- Docs: log { } from 'optional' -> 'recomended'
- If no log { } block is present a warning will be printed out and we will fallback
to a default of logging errors to ircd.log. Suggested by w00t (#0002327).
- Fixed shuns not working as target in spamfilter and ban version { }, reported by Bugz
(#0002223).
- Fixed a bug where shuns placed on IP's did not take effect to currently connected users.
- Fixed a small doc bug regarding shun in spamfilter, reported by KnuX (#0002338).
- Added greek docs, translator: GSF.
- Some help.conf/005.txt updates, reported by Ron2K (#0002354).
- No longer cutoff nick upon illegal character -- just reject the whole nick. The nick is
still cutoff if the nick is too long. Basically this is the same way as Hybrid does it
so it should work ok :).
- Added nick character system. This allows you to choose which (additional) characters
to allow in nicks via set::allowed-nickchars. See unreal32docs.html -> section 3.16
for a list of available languages and more info on how to use it.
Current list: dutch, french, german, italian, spanish, euro-west, chinese-trad,
chinese-simp, chinese-ja, chinese.
If you wonder why your language is not yet included or why a certain mistake is present,
then please understand that we are most likely not experienced (at all) in your language.
If you are a native of your language (or know the language well), and your language
is not included yet or you have some corrections, then contact [email protected] or
report it as a bug on http://bugs.unrealircd.org/
- Added swedish support for nicks, supplied by Tank.
- Various updates to unreal32docs from Ron2K (#0002354).
- set::allowed-nickchars:
- Renamed 'euro-west' to 'latin1' since that's more descriptive/fair ;)
- Added 'hungarian' [supplied by AngryWolf]
- Added category 'latin2': just Hungarian for now
- Added 'catalan' [supplied by Trocotronic]
- Added 'greek' [supplied by GSF]
- Added category 'latin7': alias for 'greek'
- Added category 'gbk': alias for 'chinese'
- Removed 2 unneeded characters from 'catalan'.
- Added NICKCHARS= in PROTOCTL. This indicates which languages are accepted in nicks.
If 2 servers try to link and the allowed nick characters do not fully match, then
the link will be rejected. Note that this will not prevent you from 3.2.2<->3.2.3/CVS
charsets mistakes, but only with linking CVS/3.2.3+ servers. Suggested by Troco (#0002360)
This might need some additional testing, but initial results are positive :).
- NickChars:
- Got rid of 'latin7', tiny mistake ;)
- Removed e' accent from German (used in borrow-words only), reported by Dukat.
- Added 'swiss-german', which is just German without es-zett, reported by Dukat.
- Added 'turkish', supplied by Ayberk Yancatoral.
- Build in some additional checks (especially for Chinese).
- Fixed a bug in chinese character range (affecting 3.2*)
- Relaxed nick character checking from remote servers (rely on NICKCHARS= PROTOCTL
to deal with problems). This is useful to prevent any kills in case we slightly
change the characters that are allowed in a language.
- Added 'polish' (latin2), supplied by k4be.
- Added 'hebrew' (iso8859-8I / windows-1255), supplied by PHANTOm.
- Added French example.fr.conf and help.fr.conf, translated/maintained by Babass.
- Fixed a doc typo, reported by SDF_of_BC.
- NickChars: Updated polish a bit, and added polish-w1250 which is unfortunately more
common than real latin2 (iso-8859-2), supplied by k4be as well.
- NickChars: Added 'icelandic', supplied by Saevar.
- Updated wircd.def
- Fixed a bug where USERIP would say USERHOST in the not-enough-parameters numeric
(#0002366) reported by vonitsanet.
- Fixed a bug causing SVSNICK not to send out a snomask +n notice (#0002359) reported by
Rob_.
- Fixed a bug where SAJOIN would list channels multiple times in the notices (#0002325)
reported by vonitsanet.
- Fixed a bug in mode-skipping (eg '+qk a b' if not +q) and error msgs, reported by brain2
(#0002372).
- Fixed bug where chanmode +f #t (per-user text kick[ban]) was also affecting halfops,
reported by seneces (#0002333).
- Fixed doc bug reported by Dukat (#0002374). Also fixed 2 error msgs related to
the nickchars system printing out incorrect set:: directives.
- spamfilter.conf and dccallow.conf are now also copied upon make install, reported by
TommyTheKid (#0002313).
- Made CHGIDENT, CHGHOST and CHGNAME use more numerics (where possible) (#0002358).
- Fixed halfop trying to set chanmode +G/+T/+j not getting an error message, reported
by Ron2K (#Ron2K).
- Module coders: using extcmode_default_requirechop is now depricated, check src/extcmodes.c
ctrl+f extcmode_default_requirechop for more details (solution: copy+paste & fill in modechar).
- Nicks with ~ are now also not cutoff anymore but rejected like any other illegal char (#0002074).
- Fixed bug in +G where with not-really-matching-words color was needlessly stripped,
reported by SpeedFire (#0002375).
- Changed the 'is a Secure Connection' msg/numeric in /whois from RPL_WHOISSPECIAL to
a slightly changed RPL_WHOISSECURE, namely: ':%s 671 %s %s :is using a Secure connection',
I'm sure some client coders will bitch at this, but the current way is brok in 2 ways:
- RPL_WHOISSPECIAL is meant for 1 line of additional whois info, usually an IRCOp title or
description. Having a dedicated numeric for it allows for client-side interpretations
and/or translations.
- The 'is a Secure Connection' was incorrect English, this has been reported numerous times.
The PRO's of this change are clear, the only CON is that in-window-/whois's are now
likely not to show this line properly in-window but rather in the status window, until client
coders implement this numeric.
If you wonder why we didn't use RPL_USINGSSL, that's because this numeric collides with
RPL_STATSDLINE (which we are already using for >5 years).
If you wonder why we didn't use the RPL_WHOISSECURE numeric as-is (even though I haven't
seen it in use anywhere), then that's because we wanted to minimize display problems in
the transition period and the extra parameter would not be used by us anyway.
- If a locop now has can_override/can_gkline/can_gzline we will print out a warning and
convert it to globops. This is also what we always did for can_globalroute/can_gkill
(well, except the warning). Giving such NETWORK (GLOBAL) privileges to a LOCAL operator
does not make any sense and is therefore no longer allowed.
- NickChars:
- Added 'russian-w1251', supplied by Roman Parkin. There are like 7 standards
in Russia (and like 2-3 main ones), so I didn't dare to call this one 'russian' ;).
- Added 'czech-w1250' and 'slovak-w1250' (both might miss a few characters).
- Added 'windows-1250' group which contains czech-w1250, slovak-w1250, polish-w1250
and hungarian.
- Hungarian characters show both fine in w1250 and latin2, hence hungarian is included
both in 'windows-1250' and 'latin2'.
- Fixed bug: polish was not included in latin2
- Fixed various OperOverride issues:
- Opers with can_override can now +qa/-qa even if they are not netadmins,
and they can also (un)set L/u.
- Fixed several SAMODE bugs, such as not completely working for non-netadmins and
not working if you were halfop'ed, etc.
Bugs reported by pak, aquanight, niphler, Bugz, and more.
If there are still any bugs left, please report them on http://bugs.unrealircd.org/
NOTE: some of these enhancements will produce desynchs if your net is not 100%
on current CVS / Unreal3.2.3 and an oper tries to use these 'new features'.
So use with care on mixed-version nets.
- Fixed /(G)ZLINE [nick] placing the *line on *@host instead of *@IP, reported by
Snake (#0002246).
- A warning is now sent to the oper if (s)he tries to add a (G)ZLINE on *@host.
(G)ZLINES should have an ipmask, not a hostmask, because they are processed BEFORE
any dns lookups are done. Therefore any (g)zlines placed will probably work
(but not necessarily) for like an hour (or whatever TTL), but after that the
(ab)user can get in again so this is usually not what you want ;).
I suppose I'll add a FAQ entry about this.
- Made badwords (+G) now work with hardcoded word boundaries. Also made the fastbadwords
system accept more characters. Basically what this means is that the (fast) badwords
system can now be used to properly block words with accents and things like that, just
the way you block English words. Bug reported by MJ12Helios (#0002311).
- Fixed 'russian-w1251', was not working ok at all.
- Made it so halfops can -h themselves, and chanadmins can -a themselves, reported
by fez (#0001503).
- Made spamfilter 'u' also check nickchanges, reported by Gilou (#0002251).
- Updated doc/technical/token.txt, reported by webfox (#0002373).
- NickChars: Added 'romanian', supplied by crazytoon.
- Added 3.2.3 release notes (expected to be changed later on).
- Updated russian-w1251 (added 2 chars).
- Made the (G)ZLINE warning only happen on add, as it should. Reported by crazy.
- Made some (incorrect) -Wall warnings dissapear.
- Renamed version to 3.2.3-pre1, for Thursday. I'll keep the doc version numbers
at 3.2.2-CVS to avoid confusion with the online semi-realtime docs ;).
** internal 3.2.3-pre1 release **
- Fixed a bug with /invite with no parameters (accidentily broken when +I was added)
(#0002383) reported by trystanscott.
- Fixed a bug where /SAJOIN user 0 caused a desynch, reported by trystanscott (#0002384).
- Merged NICKCHARS= in PROTOCTL for now, since a seperate one is not (yet!) needed,
reported by SolutechUK and psadi (#0002386).
- Fixed various (major) problems that the '-h yourself' caused, reported by Trocotronic
(#0002387).
- Fix for above, also reported by Trocotronic.
** internal 3.2.3-pre2 release **
- Fixed a couple of typos in doc/example.conf (#0002393) reported by AngryWolf.
- Added documentation about channel mode +j (#0002392) suggested by Dukat.
- Added doc/help.de.conf and doc/example.hu.conf
- Fixed +s/+p and +c/+S desynch issue during netmerge, reported by Ron2K (#0002391).
- Fixed a bug where an unknown operflag would cause a crash.
- Windows versions will now be compiled with zlib 1.2.2 and curl 7.13.1.
- Made windows installer also install doc\technical\*
- Removed oldcloak cloaking module, everyone should be using the new cloak one by now.
- Updated release notes (translated docs, zlib, doc\technical, sp/cS desynch).
- Made +g get removed when an oper sets -o (#0002399) reported by Ron2K.
- Made it so the win32 version shows channel modes in /list (#0002397) reported by Ron2K.
- Fixed /SAMODE with no can_override not always working with +G/+j/+T (extcmodes), reported
by Ron2K (#0002398).
- Added doc/example.de.conf
** internal 3.2.3-pre3 release **
- Some spelling fixes in unreal32docs.html, reported by alex323 (#2412).
- Updated the list of donators
- /SAMODE could cause 'fishy timestamp' if digit parameters were used (eg: SAMODE #chan +l 5),
this has now be fixed by sending an explicit TS 0.
- Fixed an important channelmode +j memory corruption bug that would cause crashes, reported
by Bergee (#0002416).
- Some clarifications on /RESTART, remote restarts were well never supported, so the docs
are now updated on that (no code changes).
** internal 3.2.3-pre4 release **
- Corrected small doc typo in unreal32docs, reported by arbiter.
** 3.2.3 release **
- Fixed incorrect badword { } in conf causing a crash (should give an error).
- spamfilter.conf Gaggle worm sigs were broken causing odd things to match, this is because
\\ now needs to be escaped as \\\\ due to the 3.2.3 conf change... didn't think of updating sigs.
- Clarified some nickchar stuff in the docs
- Added 'danish' nickchars, supplied by klaus (#0002436).
- Module coders: Added HOOKTYPE_LOCAL_SPAMFILTER: catches (local) spamfilter matches.
- Fixed chanmode G showing up twice in 005, reported by Snake (#0002466).
- Fixed a TKL crash on incorrect *line, reported by nanookles1234 (#0002524).
- Redid include dependencies in Makefile, this makes things safer because on any .h change it
would force a recompile of all files, but it could mean things will be a bit slower for us
coders unless we tweak it later on.
- Changed whois a bit to print less useless results.
- Added several indicators to the "detect binary incompatible modules"-system such as detecting
of a ziplinks module on non-ziplinks (on windows this is ok however), nospoof module on a
a server without nospoof server, etc. Hopefully this will help some people preventing odd
crashes because they did not recompile or (re)install modules properly.
- Added './unreal backtrace', so far this has only been tested on Linux and FreeBSD.
- Fixed a bug making ./Config not load the previously stored settings on Solaris 10 and
probably other Unixes, reported by lion-o (#0002474).
- Cosmetic bug in set::modes-on-join: now rejecting +I in it. Reported by Ron2K (#0002508).
- Moved all TKL code and register_user to modules (using efuncs), that means 20 functions
and 2000 lines total that can be hotfixed if needed ;). The effort involved in moving all
this sucks a lot though :/. This might need some more testing to make sure it doesn't break
anything.
- Updated support OS list in documentation.
- Fixed various major bugs due to TKL move from 13h ago.
- Fixed 2 problems caused by TKL move: 1 windows crash, 1 problem with loading m_*.so,
reported by Trocotronic (#0002553, #0002554).
- Added some TSCTL logging (this reminds me we need to add new log levels for 3.3 ;p).
- Attempt to fix bug #2431: 3.2.3 broke CNAME delegation for reverse dns. I'm sorry it took
so long, but this stuff just plain sucks...
- Made '?*' work correctly in wildcard matches ('1 or more characters'), reported by
Bugz (#2585).
- Added -fno-strict-aliasing.. this might well be temporary, but we get tons of strict-
aliasing warnings, so it sounds good to disable this type of optimization for now.
- Fixed problem with crash-on-link if compiled with GCC 4, reported by jonneyboy (#2573)
and PHANTOm (#2590).
- IPv6: Added configure check for in6addr_any to fix Fedora Core 4 compile problem,
reported by wheatie80 (#2594).
- Added -Wno-pointer-sign (if available) to get rid of those stupid warnings that are
enabled by default even without -Wall (!?) on GCC4.
- Fixed a bug where allow channel::channel generated a warning when specified multiple times
(#0002427) reported by matridom.
- Fixed ~c not working properly with * and ?'s in channel names.. Now you just need to
escape them like in all bans (eg: to ban #* you need to +b ~c:#\*). As an additional
bonus, real wildcards are now accepted and processed (eg: +b ~c:#*sex*, just don't
forget to specify the #). Reported by PhantasyX (#2605).
- Sidenote on above: ~c:*chan* is not supported (use ~c:#*chan* instead) because it would
cause "hidden bans", therefore it now prints a message (which is useful anyway), but
does accept such remote bans. In 3.2.5 or so we could enable support for it, it's
not that important though... ;)
- Added ifdefs for mass closing of file descriptors on start, can now be disabled by
adding -DNOCLOSEFD as a compile option. Useful for valgrind w/--db-attach=yes, mpatrol,
and some other debugging tools (not useful for anyone normally running a server).
- Fixed a read-after-free: sptr->serv->aconf was freed but not NULL'ed in exit_client,
causing close_connection to read from it (when deciding on doing a quick reconnect).
Could have caused a crash, although nobody ever reported one...
- Removed useless strncpyzt with dest==src.
- Temporary workaround for spamfilter bug: action 'viruschan' in combination with the
'u' (user) target can cause severe problems (crashes, etc). For now, we have disabled
'viruschan' in combination with 'u'. A real fix will require quite some work, sorry.
- Fixed crash with invalid set::network-name (eg: high ascii), reported by galahad
(#0002584), now printing an error instead (the network name is limited by the 005 spec).
- Added Bulgarian example.bg.conf, translated by Peace.
- Spamfilter: regexes (and reasons) are now more limited in size, this is to combat "I set
a spamfilter, but cannot remove it" problems. In practice this means - depending on the
length of your spamfilter reason - regexes will be max ~300 characters.
Spamfilters set in the .conf can be slightly longer (which still causes them to be
truncated in '/stats f', but they don't have to be removed anyway so it's kinda
acceptable if it's really needed). This should fix bug #2083, reported by White_Magic.
- Fixed a bug where an invalid /*line could cause a crash, reported by Gilou (#2629).
- (5 minutes later..) Small update for above, fix was incorrect for ipv6.
- CMDLINE_CONFIG behavior change: command line configuration is now still permitted
if #undef'ed (which is the default) if uid==euid && gid==egid, since it doesn't make
any sense to disable it then and is in fact just plain annoying.
- Added FAKELAG_CONFIGURABLE option in include/config.h, this enables an option called
class::options::nofakelag, which disables "fake lag" for a certain class (that is:
the artificial delay introduced by the ircd to prevent flooding is turned off,
allowing the user to flood at full speed).
IT'S USE IS DISCOURAGED UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.
Sorry, option is not in ./Config -advanced since I don't get autoconf working, but it's
such a scary option that this might as well be a good idea to keep in config.h anyway.
This feature has been suggested for several years (and refused), but the final
suggestion (with implementation specific hints) came from Gilou in bug #0002207.
- Fixed win32 makefile, now compiles fine.
- Fixed (important?) reference count bug regarding sptr->serv->conf. I don't know what
effects this caused (memory corruption?), but it didn't look good ;).
- Fixed an invalid badword block in the conf causing a crash, reported by Monk (#2639).
- [Internal] Code cleanup for spamfilter target/bantype routines
- Added 'warn' target which is basically the same as 'block' except it does not block ;).
It also sends a numeric to the user saying the command has been processed, but a copy
has been sent to ircops. I feel this is a good idea for privacy reasons (anti-spy),
though I don't know how users will react to this. If you are using this on your network
and get users bothering you about it (or before that ;p), it's probably a good idea
to explain it somewhere on your site or FAQ :).
Example usage:
/spamfilter add p warn - Testing_mirc_decode_filter \$decode\(.*\)
[WARNING] The numeric text is likely to change in the next few weeks (early-cvs-commit).
- If a class block was removed and any other blocks would be referencing the class block
(such as: allow::class, oper::class, link::class), then this would cause a crash.
Reported by Mike_ (#0002646).
- Changed the way we build most of the .so's: the .o files of individual modules that were
generated (for linkage by commands.so), are now used to generate the .so files of the
individual modules as well (eg: m_setname.o -link-> m_setname.so). This reduces compile
time ('make') on my machine by 33%, so it's quite noticable ;).
- Added doc/technical/serverprotocol.html created by aquanight (updates will follow soon).
- Documented set::channel-command-prefix a bit more, and also changed the default from
"`" to "`!." which seems much more reasonable / widespread :).
- Some m_restart cleanups, suggested by w00t (#2652).
- Removed all old resolver code and switched over to c-ares (+our caching routines).
This should get rid of some annoying untracable (and usually rare) crashbugs in the
old resolver. Besides that, it makes things look more clean and understandable.
This should be the fix for the following bugids (all the same issue): #2499, #2551, #2558,
#2559, #2603, #2642, #2502, #2501, #2618, #2616.
Feedback and testing is very much welcomed ([email protected]).
- Fixed SSL + new resolver problem, would cause an "interesting flood" of messages / 100% CPU.
Reported by Trocotronic (#0002659).
- Fixed a problem with entries in the hosts file (such as, usually, localhost), this would
cause an unresolved host and a 30s delay for the user, even though resolving succeeded.
- When OPEROVERRIDE_VERIFY is enabled, we now allow opers to still join any channels listed
in set::auto-join or set::oper-auto-join, even if they are +s/+p. Suggested by ultrotter
(#0002644).
- Added 4 UNREAL_VERSION_* macro's that can be useful for 3rd party modules to find out the
unreal version that the user is using. I presume this can be helpful (although nobody ever
suggested it ;p). The macros (#define's) are:
UNREAL_VERSION_GENERATION The generation version number eg: 3 for 3.2.4
UNREAL_VERSION_MAJOR The major version number eg: 2 for 3.2.4
UNREAL_VERSION_MINOR The minor version number eg: 4 for 3.2.4
This can be negative for unstable,
alpha and beta versions.
UNREAL_VERSION_TIME Year + week of the day (starting eg: 200541
on Monday), this is updated on
the CVS server every week.
The first 3 are for nicely identifiying the version, the 4th can be useful in case
you want to support CVS and/or want some more control.
- Fixed crash bug (due to new resolver) if not using 1 general *@* / *@* allow block,
reported by Daniel.
- Fixed issue that could cause an alias to be added that would override a command.
- Fixed OpenBSD crash on /REHASH. Thanks to Peter Laur (OpenBSD.se) for providing us
a shell account to trace this issue down.
- Couple of source code cleanups (svsnick, a *line msg, kill, and some useless l_commands
code), suggested by Nazzy and Requi3m.
- Fixed extbans no longer working properly in CVS, fix provided by Nazzy (#0002681).
- Made it so you no longer can change your nick to a banned one in a channel, suggested
by vonitsanet (#0002388), partial patch provided by Nazzy.
This option can be turned off by setting set::check-target-nick-bans to 'no'.
- Removed useless (unused) WATCH code that was still present in the core.
- Made it so coadmins can use /ADCHAT (makes sense, since they already *received*
adchats). Reported by RandomNumber (#0002557).
- Fixed serious flood of notices to opers if link::options::dnscache was present.
Reported by firstof9.
- Added proper "not enough parameters" message for /SETNAME and cleaned up some whitespace
in the function, reported by Robby22 (#0002696).
- Fixed set::static-part set to 'no' not working properly. Reported by Robby22 (#0002698).
- Fixed crash in new resolver, reported by firstof9.
- [CVS Only] Refixed name<->ip mapping check in new resolver, reported by Darko.
- Reverting "Changed the way we build most of the .so's" feature, this caused m_*.so
to be build incorrectly. So now back at normal compile speed :p.
- Added option to apply spamfilters to aliases as well (such as /MS, etc). To do so,
you have to put 'spamfilter yes;' in every alias block you want to get filtered.
This is so you can have for example /MS filtered (due to heavy spam), while keeping
/NS and /CS unfiltered. Reported by Homer (#0002496).
- The memoserv aliases (/MS and /MEMOSERV) now have spamfiltering enabled by default.
- Made the "strict aliasing"-warning-disabler use $CC instead of gcc.
- Made ./Config better react to errors (no longer print a "everything is a big success"
kind of message when in fact everything went wrong).
- Made ./Config (configure) exit on openssl or zlib not found errors, instead of
silently continueing and then causing trouble later on. Also now printing _a bit_
more helpful error message.
- Made the link::options::quarantine actually do something... People that get global
oper privileges on quarantined servers will be instantly killed. Bit ugly perhaps, but
then it actually does what it should (prevent opers on quarantine from getting GLOBAL
oper privileges). This "fixes" #2510, #2163 and #1968.
- Fixes for an amd64 crash problem, reported by Peter Laur (OpenBSD.se).
- Redid some net synching code to make it more efficient (#2716).
- Fixed spamfilter crash problem: the action 'viruschan' is now no longer incompatible
with target 'user'. Reported by Monk (#0002570).
- Fixed invalid servername in quarantine kill, reported by pinstrate (#0002743).
- Fixed bug in chinese-* charset implementation that would cause crashes, reported
and patch supplied by Xuefer (#0002744).
- Added new charsys languages: belarussian-w1251 and ukrainian-w1251. Patch provided
by Bock (#0002724).
- Fixed memory leak in new resolver.
- Made the charsys mismatch during linking a warning instead of an error (temp. fix,
until a good solution is implemented without false positives).
- Crashbug fix for above
- Fixed some more memleaks, thanks to valgrind.
- Updated the list of donators.
- Fixed (well, workaround) win32 /RESTART bug that caused it to popup a window instead
of actually restarting the server properly (#0002734).
- If you now use /(G)ZLINE usermask@something instead of /(G)ZLINE *@something you get
an error, since specifying usermask should not be done and is useless, since a (G)ZLINE
takes place BEFORE ident lookups.
- Did the same for /(G)ZLINE *@hostmask (should be *@ipmask), this already was a warning
in 3.2.3, and is an error now in 3.2.4.
- Little /STATS v tweak: should display 'v' in output, not 'V'. Reported by Robby22 (#2700).
- Fixed complex command aliases not working properly, patch from Nazzy (#2722).
- Made it so banned users cannot change the topic, suggested by aquanight and Stealth (#2233).
- Made the "max bans per channel" setting dynamic. This can be changed by setting
set::maxbans in the configfile, note that you probably also want to enlarge set::maxbanlength
as well (see docs) or else you will hit that limit first.
- Changed the default maxbanlength from 1K to 2K, which means people can set more bans because
in pracitce the 60 (maxbans) limit was never met because the maxbanlimit was set so low.
- Empty (but existing) include files no longer cause an error. Reported by w00t (#0002460).
- Nick Character System: Silently not advertising danish if using latin1, circumventing link
problems if using latin1.
- Removed small comment from docs, which no longer applies (sorry translators ;p).
- Updated /CREDITS (forums/mainsite hosting and update of current active supporters).
- Updated makefile.win32: apparently libcurl.dll is now libcurl_imp.dll (import library)
- Updated unrealinst.iss: made it easier for me to have 2 curl versions, this is so we can
ship the SSL version of unreal with a curl that supports SSL (https, etc).
- Preperations for pre-1 (version change, etc)
- Updated wircd.def (for developers).
- Added doc/help.ru.conf, translated by Slyder.
** internal 3.2.4-pre1 release **
- set::maxbans / set::maxbanlength were reported as duplicates when they were not, reported
by Jason and trystanscott (#0002753).
- Made it so bans on normal users will prevent them from speaking with +mu, reported by Nazzy.
- Made set::maxbanlength also count the "to be set" ban in, otherwise you could exceed the
limit by (max) NICKLEN+USERNAME+HOSTNAME+2, reported by Trocotronic (#0002762).
- Switched over to an older match() routine based on hybrid, this one is a bit less optimized
but is actually understandable and has less bugs. This fixes +b ~c:#c\*t not properly
matching #c*t, reported by Jason (#0002752). Initial results look good, but this needs
some good testing ;).