Thread: Unreal3.2.8 released
Status: Beta
Brought to you by:
wildchild
From: Bram M. (Syzop) <sy...@un...> - 2009-03-01 21:13:03
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 It has been 1.5yrs since last release, and quite some things have changed. Stskeeps has left the UnrealIRCd project [1], and Unreal4 (and it's based-on-InspIRCd idea) is dead. The story of Unreal3.2, however, continues (at a slow pace): we bring you a new UnrealIRCd version, 3.2.8, in which we have added a few new features, some innovative like watch away notification, and have fixed some major bugs / added some important workarounds such as slow spamfilter detection(&removal) and detection of time shifts. In total this release consists of over 70 changes. See the Release Notes below for more information. Unreal3.2.8 Release Notes ========================== ==[ GENERAL INFORMATION ]== - If you are upgrading on *NIX, make sure you run 'make clean' and './Config' first, before doing 'make' - The official UnrealIRCd documentation is doc/unreal32docs.html online version at: http://www.vulnscan.org/UnrealIRCd/unreal32docs.html FAQ: http://www.vulnscan.org/UnrealIRCd/faq/ Read them before asking for help. - Report bugs at http://bugs.unrealircd.org/ - When upgrading a network, we assume you are upgrading from the previous version (3.2.7). Upgrading from 3.2.6 or 3.2.5 should also be no problem. However, if you have a network running with servers that are several versions behind (eg: 3.2.1) then you might experience small (desynch) problems. Please also minimize the time you have multiple versions running, a few days or one week is generally not a problem, but having mixed versions on a network for several weeks or months is not recommended. - The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a SUMMARY of the changes in this release. There have been 70+ changes, and trying to mention them all would be useless, see the Changelog for the full list of changes. ==[ NEW ]== - set::level-on-join: this defines which privileges a user receives when creating a channel, default is 'chanop', the only other available setting is 'none' (opless). - Away notification through WATCH: This allows clients to receive a notification when someone goes away or comes back, along with a reason, a bit like IM's. There's probably no current client supporting this but it would be a nice feature in notify lists. Client developers: see Changes file for full protocol details. This feature can be disabled by setting set::watch-away-notification to 'no'. - Spamfilter: Slow spamfilter detection: For each spamfilter, Unreal will check, each time it executes, how long it takes to execute. When a certain threshold is reached the IRCd will warn or even remove the spamfilter. This could prevent a spamfilter from completely stalling the IRCd. Warning is configured through set::spamfilter::slowdetect-warn (default: 250ms) and automatic deletion is configured by set::spamfilter::slowdetect-fatal (default: 500ms). You can set both settings to 0 (zero) to disable slow spamfilter detection. This feature is currently not available on Windows. - SSL: set::ssl::server-cipher-list can be used to limit the allowed ciphers - SSL: To specify when an SSL session key should be renegotiated you can use set::ssl::renegotiate-bytes <bytes> and set::ssl::renegotiate-timeout <seconds>. - UHNAMES support: This sends the full nick!ident@host in NAMES which can be used by clients for their IAL. mIRC, Klient, etc support this. - There have also been some behavior changes, which can be considered NEW, see next section (CHANGED). ==[ CHANGED ]== - IPv6: On IPv6 servers you no longer have to use ::ffff:1.2.3.4 IP's for IPv4 in the config file, you can use the simple 1.2.3.4 form, as they are converted automatically. - When someone is banned and /PARTs, the part reason (comment) is no longer shown - ChanMode +S/+c: now strips/blocks 'reverse' as well - Smart banning is now disabled by default because it was too annoying, this means that f.e. if there's a ban on *!*@*.com then you can still add a ban on *!*@*.aol.com - except ban { } now also protects against ZLINEs and ban ip { } - Modules: user modes and channel modes without parameters (eg: +X) no longer have to be PERManent, this means they can be upgraded/reloaded/unloaded on-the-fly. ==[ MAJOR BUGS FIXED ]== - Zip links issue (Overflowed unzipbuf) - Crash issue with 3rd party modules that introduce new channel modes w/parameters - Mac OS X: Various issues which prevented the IRCd from booting up - Remote includes (constant) crash with new curl/c-ares versions - A few rare crash issues, including a crash when linking to another server - In case of clock adjustments, the IRCd will no longer freeze when the time is adjusted backwards, nor will it incorrectly throttle clients when adjusted forward. However, because clock adjustments (time shifts) of more than xx seconds are so dangerous (and will still cause a number of issues), big warnings are now printed when they happen. Morale: synchronize your system clock, or use the built-in timesync feature. ==[ MINOR BUGS FIXED ]== - CGI:IRC: Several IPv6 issues, both on IPv6 IRCd's and CGI:IRC gateways - IP masks in oper::from::userhost sometimes didn't match when they should - (G)ZLINE's on IPv6 users were sometimes rejected - CHROOTDIR works again - OperOverride fixes - Throttling is now more accurate - And more... see Changelog ==[ KNOWN ISSUES ]== - Regexes: Be careful with backreferences (\1, etc), certain regexes can slow the IRCd down considerably and even bring it to a near-halt. In the spamfilter user target it's usually safe though. Slow spamfilter detection can help prevent the slowdown/freeze, but might not work in worst-case scenario's. - Regexes: Possessive quantifiers such as, for example, "++" (not to be confused with "+") are not safe to use, they can easily freeze the IRCd. - Suse 10.3 in 64 bit mode (amd64, x64) is known to crash UnrealIRCd on-boot, this is likely to be a Suse 10.3 bug as over 3 people reported it with that exact OS / arch. ==[ CHANGELOG ]== - Fix aquanight's email - #0003351 reported by Mareo regarding m_addmotd.so and m_svslusers.so not being created - Fixed bug in SJOIN, possibly causing things like odd bans showing up in some circumstances. Reported by Hurga, patch provided by fbi. - Now allowing '1.2.3.4' ips again in IPv6 mode as well (instead of enforcing '::ffff:1.2.3.4' ips in the conf, they are now auto-converted to that). Based on patch from tabrisnet. - Fixed issue where the cgiirc block did not work with IPv6, reported by djGrrr, fixed by previous change. - Fixed CHROOTDIR, which was broken in 3.2.7: IRC_USER/IRC_GROUP did not work properly when CHROOTDIR was in use (#0003454). - Fixed oper block bug where ip masks in oper::from::userhost did not always work succesfully (ex: 192.168.* worked, but 192.168.*.* didn't). Issue was introduced in 3.2.7, reported by tabrisnet (#0003494). - CGI:IRC + IPv6: Fixed cgiirc block hostname never matching ipv4 cgiirc gateway properly (..again..), this was previously reported by pv2b. - CGI:IRC + IPv6: Fixed issue where all cgiirc ipv4 clients were rejected with the message 'Invalid IP address', reported by stskeeps (#0003311), nate (#0003533) and others. - Document CHROOTDIR in unreal32docs, reported by Beastie (#0002446). - Fixed Mac OS X issue where "access denied" errors were encountered when trying to read unrealircd.conf. All due to strange chmod() behavior. We now no longer try to set permissions on Mac OS X. Patch provided by Tibby (#3489). - Hopefully fixed 'Overflowed unzipbuf increase UNZIP_BUFFER_SIZE' issue, reported by Monk (#0003453). It should be large enough now. Also changed the way we deal with this when it happens (if it ever happens again..): we now close the server connection, instead of trying to continue, because continueing is too dangerous. - Remove part reason when user is banned, suggested by vonitsanet (#0003354). - Fixed set::modes-on-join: could crash or disfunction with certain parameter mode combinations. - Minor source cleanup in src/modules/m_map.c, suggested by fez (#0003540). - Usermode modules now no longer have to be permanent (#3174), this was simply a bug that was introduced when adding remote includes support years ago. - Channelmode modules without parameters (like: +X, but not: +X 1) no longer have to be permanent. Channelmodes with parameters still have to be PERM however, and there are currently no plans to change it. - Fixed bug (in all Unreal versions) with parameter channelmodes, any 3rd party module which adds an extra parameter chanmode could cause crashes. - Added set::level-on-join: which level should the user get when (s)he's is the first to enter a channel. Currently only 'none' and 'op' are supported. - unreal32docs.html: doubt it will help much but at least this makes it a little bit more clear (#3548), chatops vs globops. - ChanMode +S/+c: reverse is now stripped/blocked as well, because it's similar to color, and is just as annoying (..if not worse). - So called 'smart' banning is now disabled by default, this means you can now set a ban on *!*@*h.com and then later add one on *!*@*blah.com without any trouble. Previously the second one was rejected due to the former already matching it. To change it back edit the include/config.h setting SOCALLEDSMARTBANNING. - Fixed (G)ZLINE check.. it was incorrectly rejecting many IPv6 bans. Reported by guigui (#0003572). - Backport from 3.3 away notification from Oct 2006, this is v0, a further patch will follow soon and the numerics will be changed. - Ok, finished away notification in WATCH. It now shows the away reasons too. This new feature (away notify) is announced in 005 (ISUPPORT) as: WATCHOPTS=A Format is: WATCH A +UserOne +UserTwo New numerics to cope with away notification in WATCH are: RPL_NOWISAWAY: to indicate the user is away _when adding_ it to WATCH list RPL_GONEAWAY: user was not away, but is now RPL_NOTAWAY: user was away, but is no longer away RPL_NOWISAWAY: user was away, and still is, but the reason changed Example: WATCH A +Target Request to add user 'Target' to the watch list with away notification :maintest.test.net 609 MySelf Target ~blih test.testnet 1204309588 :not here atm Reply to watch add: user is online and away, reason is provided :maintest.test.net 599 MySelf Target ~blih test.testnet 1204309588 :is no longer away User is back (no longer away) :maintest.test.net 598 MySelf Target ~blih test.testnet 1204309722 :lunch State change: user is now away, reason is provided :maintest.test.net 597 MySelf Target ~blih test.testnet 1204309738 :shopping, bbl User is still away, but reason changed. The syntax for each numeric is: <nickname> <username> <hostname> <awaysince> :<away reason> In case of 599 (RPL_NOTAWAY) it is: <nickname> <username> <hostname> <awaysince> :is no longer away For the record, this is all based on a draft from codemastr from 2004, which was implemented in Unreal3.3 (devel branch) in 2006. Today, in 2008 it was updated with away reason support and backported to Unreal3.2. Because away notification hasn't been used until now (due to it only being in Unreal3.3) we felt it was safe to break some numerics. - Upgraded c-ares to 1.5.1, thanks to aegis for the partial patch (#0003671). This also fixed a curl compile/run issue, reported by static-x (#0003545). - Added slow spamfilter detection. For each spamfilter, Unreal will check, each time it executes, how LONG it takes to execute. When a certain threshold is reached the IRCd will warn or even remove the spamfilter. This will prevent a spamfilter (regex) from slowing down the IRCd too much, though it's still not a guarantee that it will never go to a halt (eg: in case it takes several minutes to execute a regex or loops forever). Warning can be configured via set::spamfilter::slowdetect-warn (default: 250 milliseconds) and automatic deletion of spamfilters if it takes too long is set through set::spamfilter::slowdetect-fatal (default: 500 ms). NOTE: slow spamfilter detection is currently not available on Windows. NOTE 2: to disable slow detection you can set the warn and fatal settings to 0 (zero). OR to really disable all code, remove SPAMFILTER_DETECTSLOW from include/config.h and recompile. - Added another Mac OS X hack, such as one that should help against 'error setting max fd's to 9223372036854775807' which prevents the ircd from booting up. Reported by btcentral and Bock. This hack might not be totally correct though ;). - Limit watch status requests to one per time, more will often flood you off and is stupid/useless. Reported by ash11. - The OS version output is now taken from uname() at runtime instead of 'uname -a' at compile time. This fixes bug #1438 and #3320 reported by Mouse and Monk, where because of previous behavior the IRCd sometimes would not compile in certain environments. - configure script is now generated by autoconf 2.61 (was: 2.59), hopefully that won't cause any issues, perhaps it even helps to fix some bugs... - #0001740 reported by Trocotronic, making the IRCd send ERROR : to all links with possible reason for RESTART; like /die does it. [Backport, sts] - Added set::ssl::server-cipher-list, #002368 requested by Beastie [Backport, sts] - Added set::ssl::renegotiate-bytes, set::ssl:renegotiate-timeout, #0002971 suggested by tabrisnet. Gets activated when >0. Please set sane values. [Backport, sts] - #0002475 reported by aquanight on detecting \'s in module filenames on win32 and not do ./module for it [Backport] - #0002172 reported by Stealth, patched by WolfSage, fixing if you have an admin block, and forget a semicolon on a line, Unreal will proceed to use the block with no error, but the information will be incorrect/incomplete. [Backport, WolfSage] - #0002833 reported and patched by tabrisnet, implementing UHNAMES [Backport, only slightly modified for speed] - #0001924 - requested by syzop: Added ./unreal gencloak, which generates random keys 10 ~ 20 characters in length (*NIX only). [Backport, aquanight] - #0003313 reported by Stealth, regarding not erroring/warning when me::name is bigger than HOSTLEN, from now it will error on config read. [Backport, sts] - /REHASH -all not case sensitive - Win32 makefile: removed /MAPINFO:LINES, since visual studio 2005 and up don't support this and will fail to compile UnrealIRCd. This fixes #3680, reported by therock247uk. - Upgraded c-ares to 1.6.0 (also now using pkg-config). If you get a "undefined reference to `clock_gettime'" error, then you might consider installing 'pkg-config' on your system, and then simply re-run ./Config and make, should fix things. TODO: testing! testing! i'd like to be sure this c-ares is stable! - Win32 compile fixes. - Upgraded c-ares on windows to 1.6.0 as well. - Win32: build w/manifest. Looks like Unreal@Win32 now actually works again :). - except ban { } is now also effective against Z:lines. It already protected when the user was connected, but not once he/she tried to reconnect, this is now fixed. Reported several times, last by Stealth in #0003377. - Fix crash if settime/expirytime is out of range in TKL, set by another server. Should never happen except when using faulty services or when something else got horrible wrong (like a date which is 40 years ahead). Reported by Darth Android (#0003738). - Fix NAMES with UHNAMES support, screwed it up at 'Win32 compile fixes' a few lines up... - Fix OOB read caused by UHNAMES support. - Added some countermeasures against crash-on-boot, #0003725 and #0003653, reported by Ablom2008 and mist26. - Win32: rebuild TRE for Vstudio 2008 (and ditch C++ / MSVCP... dependency). - Added release notes (not finished yet). - Added set::watch-away-notification which can be set to 'no' to disable WATCH away notification. The default is 'yes' (=enabled). - Fixed crash which could happen when rehashing while linking to a server, this could be #0003689 reported by Monk. - New HOOKTYPE_LOCAL_NICKPASS: the 2 parameters are: sptr (client) and nsptr (NickServ client, NULL if not present). You can return 1 (HOOK_DENY) to make the IRCd not send IDENTIFY to NickServ. Suggested by tabrisnet (#0003739). - A notice is now sent when listing spamfilters through /SPAMFILTER just like /stats f. Bug #0003752 reported by Strawberry_Kittens, similar to #0002533. ** 3.2.8-rc1 release ** - Added documentation for set::spamfilter::slowdetect-warn, set::spamfilter::slowdetect-fatal, set::ssl::server-cipher-list, set::ssl::renegotiate-bytes, set::ssl::renegotiate-timeout, set::watch-away-notification and ./unreal gencloak. Reported by Bock (#0003764). - set::ssl::renegotiate-bytes: fix when specifying a value such as 10m. - './unreal gencloak' now actually works - Fix typo in user mode q notice, reported by Strawberry_Kittens and others (#0003761). Patch provided by Stealth. - Fix for Mac OS X compile problem (in setpgrp), reported by Bock / Jckf (#0003767). - Possible fix for MAC OS X compile problem - Bump docdate.. - Fixed OperOverride bug: if you are halfop you couldn't -q/-a, reported by Strawberry_Kittens (#0003758). - Added note to release notes regarding Suse 10.3 on amd64 causing a crash on-boot. #0003725, #0003653, #0003791. - Updated regex documentation in unreal32docs, it had some incorrect statements regarding wildcards. Reported by james2vegas (#0003800). - Added some big warnings regarding big timeshifts. In the IRCd world correct time is very important. This means that time should be correct when the IRCd is booted, either by running ntpd/ntpdate on the system or some other synchronization software, or by using the built-in timesync feature. Whenever the clock is adjusted for more than a few seconds AFTER the IRCd has booted, it can lead to dangerous effects ranging from unfair timestamps for nicks and channels (and hence the possibility to takeover channels), to even completely stalling the IRCd (negative timeshift) or making it so nobody can connect anymore due to throttling (positive timeshift). We now try to 'fix' the worst effects such as the IRCd freeze and throttling. This does not fix the whole problem, so I've added some big warnings when the clock is adjusted, including an annoying one every 5 minutes if the clock was set backwards, until the time is OK again (catches up with the original time). This fixes #0003230 reported by Stealth, and #0002521 reported by durrie. - Throttling time is now more accurate, especially with larger time values such as 3 connections per 60 seconds. Previously that -could- result in 3 per 90 seconds due to timer inaccuracy (which was max <time>*1.5), now it would be max 65 seconds (max 5s inaccuracy, lower with lower times). - Smallll fix for time shift protection ** 3.2.8-rc2 release ** - Some text fixes regarding time shift feature - Fix for compile problem on FreeBSD (and possibly other OS's): - When pkg-config is present but does not recognize --static, use default c-ares library options. - Set default c-ares library options to -lcares on FreeBSD and others. Set to -lcares -lrt on Linux (previously was -lcares -lrt for all). Thanks to goldenwolf for the bugreport (#0003803) and providing a test- shell to trace this issue down. ** 3.2.8-rc2 *NIX downloads replaced ** - 'link xx with SSL option enabled on non-SSL compile' was incorrectly printed out as a warning, when in fact it's an error (and was treated as such). Same for ZIP on non-zip compile. Reported by Stealth (#0003833). - Fixed harmless (but silly) message which happened on every IRCd boot (time jump message). - Updated credits (donations) ** 3.2.8 release ** As usual, you can download UnrealIRCd from http://www.unrealircd.com/ MD5 checksums: 53dd20a7581670997400a74fa0bb674a Unreal3.2.8.tar.gz 3bc329c9892959df8f40ebc7359110fc Unreal3.2.8.exe 5246701fcf90bcb8b1bf1c3f18575807 Unreal3.2.8-SSL.exe SHA1 checksums: 4b03254d5e19b827f0653a083c0b7f895914b8be Unreal3.2.8.tar.gz a6c6002b161b623df4e44e2f070b2e80bf2af78c Unreal3.2.8.exe 26ff2e3aad0dd6638009483696b44fe7c198c355 Unreal3.2.8-SSL.exe Thanks go to: * Stskeeps for his work on the UnrealIRCd project over the past 10 years * All people who reported bugs and contributed by supplying patches * Everyone who has helped with testing the 3.2.8-RC's Thanks also to our users (3.2.7 had a new download record of over 200,000), for keeping UnrealIRCd the #1! Syzop / The UnrealIRCd Team. [1] http://forums.unrealircd.com/viewtopic.php?t=5701 {Stskeeps says goodbye} - -- Bram Matthys Software developer/IT consultant sy...@vu... PGP key: www.vulnscan.org/pubkey.asc PGP fp: 8DD4 437E 9BA8 09AA 0A8D 1811 E1C3 D65F E6ED 2AA2 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (MingW32) iD8DBQFJqvLX46ioc5305a8RArurAJ9MX840hCFBMjImxEeTN/X5xZDscACfZE6s 0N2zIGD4oYzg6oUHtZpPhyk= =67Rx -----END PGP SIGNATURE----- |