1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-25 11:46:37 +02:00
Files
unrealircd/Changes
T

343 lines
22 KiB
Plaintext

/*
* UnrealIRCd Changes File - (C) Carsten Munk 1999-2002 &
* The UnrealIRCd Team
*
* $Id$
*
* 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, and perhaps others (#0001982, #0001984), reported by bit and lion.
- 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.