Unreal3.2.5 Release Notes
==========================

If you are upgrading, please take a minute to read these release notes.
*NIX Users: PREFIX_AQ is now enabled by default. See under 'CHANGED' below.

If you are a coder and want to help out with Unreal3.3* development, then check out
http://dev.unrealircd.com/ and http://dev.unrealircd.com/wiki/Coders_Contest

==[ 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.4). Upgrading from 3.2.3 is ok as well.
  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.

==[ NEW ]==
- CGI:IRC Host spoofing support. This means you can mark certain CGI:IRC gateways
  as trusted, and then the IRCd will show the real IP/host everywhere for those
  users, instead of the IP/host of the CGI:IRC gateway. See docs section 4.36.
- Time synchronization support. This is enabled by default and will synch the IRCd
  clock when Unreal is started. This should get rid of most time differences, though
  the clock can still be off 1-3 seconds. If for some reason no reply from the time
  servers is received within 3 seconds, then the IRCd will continue to boot as usual.
  Several set::timesynch::* settings have been added, including set::timesynch::enabled
  which you can set to 'no' to disable time synching (eg: because you already run ntpd).
- NAMESX support. This (mostly) fixes a long-standing IRC protocol bug. If, for
  example, a user was +vo and then deops (-o), other clients could not always
  know the user was then still +v, now they can. Supported by XChat and newest mIRC.
- Chained SSL certificates support
- Russian doc/example.ru.conf and Turkish doc/unreal32docs.tk.html

==[ CHANGED ]==
- PREFIX_AQ (the ~ and & symbols for +q and +a) are now ENABLED BY DEFAULT on *NIX.
  They have always been enabled on Windows, so it made sense to do the same for *NIX.
  Pretty much all major clients support it now (mIRC, xchat, irssi, epic, PJIRC,
  CGI:IRC, etc).
- If DNS info (*NIX: /etc/resolv.conf, Win: registry) is updated, a '/REHASH -dns'
  now rereads this info, no restart needed anymore.
- me::numeric can now be changed without a restart, if no servers are linked.
- Improved windows crash info: we now create minidumps, this should aid debugging.
- '/quote dns i' (as an oper) now shows nameserver info again
- Local oper may now use /TRACE
- If channel is +m but -t, you now need at least voice (+v) to change the topic.
- When checking if someone is banned, we now always verify bans against the cloaked host,
  even if the user has a vhost and the cloaked host is not visible / unused.
- Extra binary compatibility checks: (gcc) compiler version
- Allow /*LINE'ing of literalident@* (eg: gline clones@*). Things like *clones@* are
  still denied though, and this will not be changed. Use services AKILL instead.
- Command aliases: made empty parameters work if the alias allows it (eg, the alias
  uses .* as a regex and not .+)
- Moved another 2K lines from core to modules, this means 31K lines are now in modules
  and can be upgraded on the fly.
- Real Command Aliases: This makes it possible to, for example, alias '/GLINEBOT' to
  'GLINE <param> 2d Bots are not permitted on this network, etcetc'. For more information,
  see the docs on the alias block and/or search for "glinebot" in doc/example.conf.
- /etc/hosts is no longer checked (it never did before 3.2.3 either)

==[ MAJOR BUGS FIXED ]==
- Spamfilter was not always working properly
- MS Visual studio 2005 (8.x) was unable to compile Unreal and/or caused crashes
- Certain IPv6 listen blocks could crash the ircd on-boot/on-rehash

==[ MINOR BUGS FIXED ]==
- "Looking up your hostname" message was missing if set::options::show-connect-notice
  was enabled (other messages, like "looking up ident" were shown, however)
- It was sometimes impossible to update a link { } block: all old settings would still
  be used, this happened if connfreq was low. This might also have caused crashes.
- Netsynch problem, which could cause the wrong modes to be applied to a channel in
  some rare cases.
- Setting set::maxdccallow to 0 (or lower) still allowed one entry to be added
- Spamfilter oversized-checking is no longer done when removing a spamfilter
- Operator count bug (there might still be others...)
- Some chinese-* charsets could not be selected individually
- No longer requiring a C++ compiler (was caused by resolver in 3.2.4)
- Added workaround for "make: Permission denied" bug in some FreeBSD's

==[ REMOVED ]==
- MS Visual Studio 6 support, but this did not work anymore anyway...

==[ KNOWN ISSUES ]==
- Windows 2003: Crashes directly on-boot have been reported, while other W2003 servers
  work perfectly fine (including the one we used for testing). No pattern in this has
  been found yet, but the bug is somewhere in the resolver (c-ares).
- 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.
- Regexes: Possessive quantifiers such as, for example, "++" (not to be confused with "+")
  are not safe to use, they can easily freeze the IRCd.
- Windows: The /RESTART command will work, but the second time you do a /RESTART the
  IRCd will "crash" with a dialogbox.

==[ ADDITIONAL INFO ]==
* See Changelog for more details
