The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download | Blog | Stats
Personal tools

ChangeLog/1.1

From the makers of InspIRCd.

Jump to: navigation, search
Historical Historical Material - Information posted here may be inaccurate as a result of being obsolete. This information is kept for historical reference purposes.



1.1.20

    * Change VERSION output similar to that in 1.1, to make it better for indexing
    * Fix bug found by the atheme migration testing: +V should never affect INVITE from a remote issuer
    * nuke a compiler warning on long int %d
    * Show IP (not <unknown>) when sending error to a connection that has not yet authenticated
    * Block a huge bunch of revisions in svnmerge
    * Send link message to snomask +d only. Fixes bug #527, reported by DjMadness
    * Backport r9773, fixes bug #534 reported by irefuse. Listening sockets cannot have a close hook.
    * Add a note in here to tell the user when host resolution is disabled, so that people dont get confused and we can easily identify it
    * Fix the format of +p channels in /list (both in core /list and in m_safelist), thanks jrm
    * Remove needless and pointless extra format parameter
    * Backport socket closing fixes (stops sockets hanging sometimes)
    * Patch ReadFile() not to bork on one line files, and ensure it works ok with win32 (it does)
    * Don't allow the user to configure less than 30 descriptors
    * When searching by servername without wildcards, conceal +i users no matter what craq the spec was on
    * Removed the verbosity in 'make clean' to fix issues with OpenBSD and possibly others
    * Fix crash if /reload is not given a parameter (oper only command)
    * Apply updated helpop patch from jackmcbarn
    * Backport fix for stripcolour not stripping colour codes, reported by jackmcbarn - thanks. Also make rebasing neater, output to current console/output window of visual studio, not a new console
    * The other timedbans fix from yesterday
    * Don't memset a vector. backport of fix for possible stack corruption by a memset from 1.2 patch by GreenReaper
    * Patch to fix timedbans crash reported earlier today, thanks for the headsup wonderwal

1.1.19

    * Fix a bad return value
    * Add /MP for faster build of core parts (not modules or command handlers)
    * Add hand-crafted resource script, contains version information and icon definition
    * Fix RemoveCommands to remove all commands (this function had some really odd removal logic?)
    * Rebase modules in 1.1 too. This uses a post build event that does not involve a change to configure, however this requires an ls binary. If you don't have an ls.exe, it wont rebase the modules.
    * Extract and run the vs redistributable to $TEMP, not to install dir. saves us 2.6 megs on install space
    * Bundle vcredist_x86.exe - installer now 6.7mb
    * Backport breakpoint/crash fix in bindsocket in win32 (missing operator new[] and operator delete[]
    * More build tweaks
    * Fix debug always being used for configure
    * For some reason /GL doesnt work right. oh well, its not that important
    * Who left /RTC1 in here?
    * Remove /Wp64
    * Do /O1 /GL here too
    * Backport optimizations and fixes from trunk pioneered by GreenReaper, which decrease size by a large amount and remove the 200-odd dll limit caused by inefficient use of thread local storage by the C runtimes
    * Fix horriffic goto abuse and 4-space indents :<
    * Add note to explicitly point out to not use IOCP
    * Fix for crash when matching user with a kline on connect (userrec* sent to %s rather than userrec::nick!), Fix for bug #505 in stable, reported by nenolod
    * In visual studio, CRT crashes when strftime() is given an invalid format specifier and %F/%T are not supported!
    * Fix crash in m_stripcolor on windows when the colour code is the first item on a line
    * Hosts vector not cleared on rehash, made rehashing impossible
    * Backport r9372: m_messageflood incorrectly letting messages past the handler
    * Use the right variable through the whole loop, eh? (djGrrr, this should fix your warning)
    * More tweaks. It seems to always put namesx last, this seems to fix.
    * This seems to fix, priorities tweaked and a bit of debug added. please test, peavey
    * Make this more readable by not reusing the loop variable name inside the inner loop, this is what caused the problem in trunk
    * Backport r9285: wallops should be sent regardless of oper status
    * Fix for bug #456 so we can be rid of it
    * Fix bug - we don't free the InspSocketHook interface when unloading these modules!
    * Nothing in 1.1 uses this, nor will it ever now.. remove it to shave a few seconds off build
    * Backport r9247: server buffering improvements (don't constantly flush write buffer) QA: this needs testing of server linking and SSL, and SSL server linking
    * Patch by brain; fix crash when no parameters are given when introducing a remote client
    * Remove the timer (its unsafe on unload) and replace with OnBackgroundTimer. If i remember right this isnt needed in 1.1 as we made timers safer.
    * always ALWAYS send CAPAB before sending SERVER in any situation. This will mean that where HMAC is in use, with any luck we'll see the other sides challenge before sending our pass.
    * Backport r9219-9220 from trunk. Override on operjoin, for those cases where operchans and operoverride will not satisfy your needs.
    * Same here, i cant make this error occur without changing code so we'll just make it nicer

1.1.18

    * Default the max clients on windows to 10240
    * We also need to re-order to make sure the length comprison comes BEFORE the append: different items may have different lengths and otherwise we'd be comparing length of the LAST item not the current
    * Fix for bug #506 reported by Skip
    * Don't desync when trying to remotely set swhois on a user who already has one
    * Don't expire allows with length 0, they are permanent for the session (thx praetorian)
    * Ricer up AllModulesReportReady further. If one fails, all fail, so returning false on first fail will save subsequent reduntant calls.
    * Final tweak to AllModulesReportReady, should be there now.
    * Fix bug where if two modules claim OnCheckReady, the core permits registration when the first of the set is ready, not when all are ready
    * Allow IPv6 windows builds.
    * Remove the note about requirement for anonymous bind
    * Document binddn and bindauth
    * Allow binding to non-anonymous DN for searches (i very much doubt most people are going to hack open their ldap tree like i did to get this module to work initially, smells of security hole)
    * update svn:ignore for a few files
    * Fix deprecation
    * Now compiles, note that it seems a few functions are deprecated in the versions of openldap i have. FIXME?
    * Merge copyrights
    * Use some of unreal4's extra modules at request of a user. Original code of this module by Carsten Valdemar Munk based on m_sqlauth.
    * Recommend that users symlink, not copy the files
    * Backport update telling users to use -modupdate
    * D'oh, this repeats the 'mode enabled' line once per channel. Thanks ElementAlchemist.
    * Apply voidzero's suggestion for a better worded prompt re. ssl modules
    * Fix bug #497, when we ported back the new cull list stuff, we didnt initialize a new bool in the userrec constructor which determines if the quit server notice line is shown, so its value is , undefined, and may hide the quit snomask.
    * This took ages to process. Block all revisions in svnmerge that arent needed
    * Fix an unneeded assignment in LoopCall that stops it being used for commands which are sent out 'raw' to other servers by spanningtree
    * Merge in patch by Darom that fixes race condition when unloading m_mysql.so that may cause it to crash, fixes bug #438
    * Merge in tweaks

1.1.17

    * Fix: trying to send out all lines in one hit is different from the way we do users, etc - and also won't be too healthy for the socket buffer with lots of them. This also removes a data copy, which in theory will make it fractionally faster. Fixes bug #496 reported by Skip.
    * Manually merge patch from danieldg, thanks
    * Make select socketengine build on vs80
    * Fix oper quit messages (needed to be set to regular quit if empty) - same fix may apply to 1.2..?
    * Backport reworked culllist from 1.2: drastically improves performance when quitting a lot of users (e.g. on netsplit). I was originally not going to do this for 1.1, but it seems to perform well, and I can't break it under clone flooding - so in it goes. QA: please test this with lots of activity (connecting, disconnecting, ping timeouts, socket errors, anything you can throw at it)
    * K|G|Z|ELine fix, from 8901
    * Don't declare a dupe InspIRCd *
    * Set FD_SETSIZE to 12000, this allows 12000 users per ircd rather than 64. I doubt select can scale this high, but 64 is rediculous.
    * Commit stuff from fez that he couldnt get committed - fixes to make socketengine-select work in windows (should be more stable than iocp as the api is known to us unix devs)
    * Rewrite nick targeted bans to user@host or IP bans where necessary. I don't know why this didn't happen already.
    * Backport r8866: make K|G|Z|ELine actually work with a nickname target (code was there but not functional)
    * Backport low risk memory leak fix to m_cgiirc (r8852)
    * MODEACTION_ALLOW was being used instead of DENY, fixes bug #490
    * Probably fix a crash in randquote (it does for me)
    * Backport r8810: minor FTOPIC desync fix
    * Backport r8786 from dz: closes bug #391
    * Merge in patches to fix bug #487, submitted by dz, thanks
    * Update SAMODE
    * Apply patch from bug #484 written by John. In 1.1 this applies without modification, thanks
    * Check that exec() macros havent failed before commencing build
    * Backport: Fix for bug found by eLement, when an oper is on a notify list and the oper sets +Q, then the watch list for that user goes into an undefined state , due to the metadata not being correctly cleared from the user in m_watch OnUserQuit. Thanks 

1.1.16

    *  1.1.16+Parmesan
    * Backport <goodchan>: Explicitly allow channels denied by <badchan>
    * Backport fix for bug #464 reported by John
    * Rebind server sockets on REHASH, closes bug #478
    * Update conf (patch from bug #463, thanks John)
    * Backport r8661: don't send 421 to unregistered clients (thanks nenolod)
    * I swear I've fixed this 5 times now.. it's PERMANENT, USE A DICTIONARY
      http://dictionary.reference.com/browse/Permanent
    * Backport r8651: SHA256 consistancy fix.
    * Backport 8634, fix for bug #464 reported by John
    * Fix for bug #458: servers go missing on collision etc.
    * Manual backport of r8613: remove nuh mask from /clones output
    * Backport --disable-rpath configure option for package maintainers
    * The mysql worker thread only sleeps 50 nanosecs between cycles, this is not enough to prevent it
      chomping on the CPU on most machines., Increase to 1000, fixes bugs noticed on forum by JulianD,
      thanks 

1.1.15

    *  Cracking bit of Wensleydale, Gromit!
    * More fixes for owines bugs
    * Fix crashbugs found by owine
    * Tidy up some minor memory leaks that can result in mode handlers or some other memory items not being freed if the module throws in the constructor
    * Make AddMode the last thing the constructor does.
    * Second (not mergable) part of #441 fix
    * Mergable part of bug #441 fix
    * Merge in relaxed ssl checking from trunk
    * Merge in r8453
    * Add dz to stable too
    * Who flags now count as a wildcard for searching for privacy reasons, fixes bug #444 reported by Smartys
    * Fix for bug in windows with backslash directory seperators in config path when used with <include> tag and a relative include path, reported by daurnimator
    * the minidump stuff is only available in 5.1 dbghelp.dll which is xp and above. we must remove this to retain 2k compatibility
    * svnmerge 8340: Theres no need to check the address of a stack declared array for NULL, thanks darix
    * Backport r8310 by hand
    * Fix bug #442
    * Fix blank quits on failure to insert fd to not be blank
    * Minor tweak to avoid a storm of redundant read events.

1.1.14

    *  1.1.14+PepperJack release
    * Block 8154,8162-8163,8165,8174,8187-8189,8192-8194,8197,8200-8201,8203-8226,8229,8232-8234,8237 in prep for release
    * SHUT_WR is not defined on windows
    * Fix small memory leak (this cant theoretically happen anyway unless you remove a network interface while an ident is connecting, and then youll only leak 12 bytes)
    * Socket engine tweaks, and new m_ident
    * Change the way origins are shown in snonotice, for djGrrr
    * Merge in logging tweak from trunk
    * Move some stuff around, this will move a crash to a different place and maybe we'll catch it
    * Fix uninitialized var that may stop the ping warning from appearing, thanks djGrrr
    * This fixes a deletion error here, we were using new[] and not using delete[], but delete instead.
    * Extra sanity checks to openssl module events to check for out of range file descriptors
    * Merge in http://www.p2p-network.net/patches/blocking_fix.patch to fix random blocking on ssl sockets on some systems, provided by djGrrr and Stskeeps, thanks
    * Silent CHGIDENT for ulines to prevent noisyness from anope
    * Check is off by one, this wont break anything but will cut a character off the set ident
    * SVNMERGE BLOCK:, 8074,8079-8080,8082-8083,8088-8089,8097-8098,8101-8103,8107,8109-8112,8115-8118,8121-8127,8129-8130,8144-8145,8147
    * Fix for bug #435 and fix return codes (these cannot be localonly for add/remove as its more efficient to propogate the SILENCE to the remote server so that messages can be blocked there and not routed)
    * Fixed bug #437 (Empty userstats setting denies stats to opers too)
    * Change 'unrecognised command BLAH' to 'unrecognised or malformed command BLAH' just to make it obvious to lazy people.
    * sanity check for existing server in DoFailOver seems to have vanished!
    * Backport r8136, svshold allows nick to be taken on connect (OnUserPreNick not triggering on unregistered user)
    * Support 501 numeric (its different for user modes compared to channel modes) - thanks anmaster
    * Fixed bug #434 (cycle allows bypassing modes for users outside of the channel). Patch by dz
    * Backport the changes to CallHandler to fix an issue Andy Church and Casey are having. The code here is such a mess and a clusterfuck its probably easier to backport this nicer code from trunk.
    * Add -lunwind to libraries on openbsd to fix some compile issues (thanks nenolod)
    * Tweaks to icky icky select() engine (thanks Ersan) this MIGHT fix select problems, but nobody really uses it anyway., We've been having more than usual problems due to select() due to epoll not being detected properly and it falling back on select() which isnt as well tested.
    * Backport r8107 for brain
    * parameters[0] -> parameter.c_str()

1.1.13

    *  1.1.13+Tyramine (Toxic Cheese! http://scienceblogs.com/moleculeofth...xic_cheese.php)
    * Removed extremely verbose debugging from the SSL modules, as I believe that bug has been fixed (and we don't want this in for release anyway)
    * Correct wording of message in cmd_invite pointed out by Zaba
    * Fixed bug #404; this was caused by recieving multiple OPERTYPEs from a remote server, which eventually resulted in bad pointers inside the all_opers list
    * Fix for bug #421
    * Backport fix for bug #407
    * Backport hidekills tweak
    * Backport fix for bug #419
    * Backport: Fix for bug #424
    * Fix library lists, the instructions on the MS website dont work quite right in vista so we specify them in the project. Also finally fix auto creation of release dirs when building
    * capitalized "Bugtracker" "Forums" "Development"
    * Fixed bug #418 (incorrect numerics for part of /ADMIN and /USERS) - patch by Zaba
    * Fixed bug #417 (empty userstats allowed all stats to be viewed)
    * Fixed bug #414 (cosmetic issue with oper failure notices). Patch by dz
    * Made m_ident bind ident requests to the same IP the user is connected on, which is much more sane and should fix IPv6. Bug #406.
    * Fixed a rare infinite loop in InspSocket::FlushWriteBuffer() - this could only affect a few rarely used modules, and is difficult to trigger.
    * Made m_blockcaps' <blockcaps:minlen> parameter default to 1, not 0, since trying to block an empty line makes no sense
    * Fixed the order of signon/signoff messages in m_watch (bug #410)
    * Fix bug #408, reported and patched by Switch
    * Fixed IPv6 resolving on big-endian machines (bug #403). Patch by Stric.
    * Backport: Fixed connection messages in ModuleSpanningTree::HandleConnect.
    * Backported crash dumping system for Win32 - see 1.2 log for a full description
    * Fixed an issue that could cause empty parameters in module commands to not be sent to other servers properly
    * Blocked some misc trunk commits
    * backport: Completely rewrote m_ident; the old one was written long ago and had a history of being very buggy (and still had quite a few bugs). Needs QA.
    * backport: Fixed a double free in m_ident. Found by AnMaster
    * backport: Fixed a bug introduced in r7827 (does not affect 1.1.12) that would cause an infinite loop for some spanningtree link errors. Found by danieldg
    * Backport: Add SVSPART at request of the Anope team - You can tell if the server has SVSPART by the presence of SVSPART=1 in the CAPAB., No, we will NOT be enforcing this network-wide, its a server-origin command so it wont cause disconnects if it doesnt exist somewhere.
    * Backport tweak to NAMES reply to show the proper =, * and @ from RFC 2812
    * This deserves going into stable too - prettier INFO.
    * Backport: Fix for bug #401 reported by DarkStorm
    * Backport: Add options:maxtargets that was somehow omitted, fixes bug #400 (Reported by DarkStorm)
    * Merge in fix for invalid channels in SVSJOIN by w00t
    * backport: Proper fix for end-of-list numerics on restricted lists in bug #386, rather than a hackish nonmodular one.
    * Block SWHOIS tweak as it changes the protocol and has potential to break a network which is using SWHOIS
    * Block new oper connect tag stuff from trunk
    * Backport: Add m_commonchans.so (documented in example conf, no wiki yet) resolves bug #342 feature request by Casey
    * Document ModuleSpanningTree::RemoteMessage. Maybe useful for other stuff.
    * Fix for bug #398, when someone does /rconnect and the connection fails, more stuff is now globally broadcast using SNONOTICE and PUSH
    * backport: Implement bug #396, feature request from Bricker
    * Block 7820, configure tweaks
    * Fix for bug #397
    * Merge back fix for debug code left in configure
    * backport: slightly better regexps, pointed out by stskeeps
    * This suggestion from nenolod has caused us SO much hassle with detecting epoll.
    * Fix a compilation bug that managed to sneak past me
    * (Part manual merge) backport:, Raft of fixes so that inspircd can call Cleanup() and Exit() in less 'stable' circumstances, e.g. when half initialized, and it wont segfault., Also fix OpenLog to not always exit on error, but to return a bool instead, which is much more friendly on rehash (you don't want /REHASH dieing your server if you cant write the log!)
    * Fix segfault on 'cant open logfile' on startup, on trying to call Exit. instead just call plain exit() as we're screwed and cant log any unload messages.
    * Add some stuff to change how we process a token sepeperated stream
    * Fix for irc::sepstream for when there are multiple seperators in a row, do not drop the rest of the line, strip the seperators

1.1.12

    *  We name this release Esrom, its a danish cheese, to congratulate peavey on the new addition to the peavey household
    * Use userrec::MakeHost not userrec::GetFullRealHost, one has the nick on and we dont want it
    * Implement feature in bug #395 reported by stealth, and tidy up a bit
    * Introducing major crashy bugs to annoy Stskeeps... just kidding, backport of stability fix in r7787
    * Check for libgnugetopt, we need it in 4.x
    * Backport tidyups
    * Merge in freebsd patch (woot, our first conficted merge )
    * Merge comments back into stable, so that people can still understand stable!
    * Backport, phew, glad this one applied cleanly., The only possibility for the issue sts found is that a socket is deleted but also ends up in the socket cull list somehow., To ensure that the socket does not get deleted, remove the delete and replace with an explicit call to insert into the socket cull list., We were grappling with these issues in early 1.1 with the userrec cull list, too., NOTE for later 1.2's consider making CullList a base class which we can derive from to delete lists of other items than userrecs.
    * backport of fix for bug #382. When colliding a nick, we didnt have : before the kill reasons for the serverkill., Because of a recentish refactor of server to server kills, when killing the user, the kill handler checks for params != 2 and returns if this is true, Because 'nick collision' is two words, long, it ignores the KILL and risks a desync (basically a race condition)., Couldnt duplicate myself, but this *SHOULD* fix.
    * Backport fix for bug #389, m_nicklock desync
    * Backport fix for bug #393
    * Backport <hostchangeorts> from bug #363 (feature)
    * backport loading warning suggested by Bricker
    * BP: Pick up a few error conditions we didnt before in the config reader, and also increment line number correctly when 'real' newline is found in a value
    * Fix some /who oddities, fixes bug #383 amongst other issues. Nothing serious., Ability to see users who share a common channel with you in /who *wildmask* now.
    * Also deleted json.h from 1.1
    * Deleted m_rpc_json from 1.1, since it isn't completed yet
    * backport: Fixed a crash within the timeout for m_httpd sockets
    * backport: Added the <cloak:ipalways> and <cloak:lowercase> options. Patch by nenolod
    * Mark 7735 as backported to stable. tho this was really done reverse, and is really 7734.
    * * Fixed bug in m_banredirect where removing a ban on a channel with maxbans set would result in a "ban list full" message., * Fixed win32 compiling (forgot to backport the #pragma linker directive)
    * Someone messed up
    * backport: Fixed bug #390 (broken m_chanprotect noservices)
    * Forgot CoreExport
    * Remove a whole load of #ifdef as we can now use gettimeofday., If we add a wrapper for getrusage, then we can remove a ton more
    * Merge 7719, 7720
    * backport 7717: Fix new millisec /map to compile on windows, by ifndef gettimeofday out reverting back to seconds for latency.
    * Fix this so it works. , OBVIOUS WARNING FOR THE DUMB: Dont go overwriting .so files at random to test this, you WILL crash your ircd if you do this improprerly, this is a feature of the linux shared object loader., If you want to test this, try with: rm cmd_whatever.so && echo "TESTTEST" >cmd_whatever.so, do NOT just do the echo.
    * backport: Make the return codes correct, and allow for LoadCommand without a user pointer
    * Backport: Provide error output on failure to load a core command; to console on startup, and to user on /reload
    * Err 7676 manually backported? :S
    * Someone forgot to backport m_nickflood to the example conf
    * Backport *possible* fix for bug #374, note i am working BLIND here without a proper backtrace! This is *guesswork* but the fix makes sense. diff to see.
    * Backport r7698: users (not opers) set +i would be unable to /who themselves. Found (inadvertently) by Trblmkr.
    * Commit patch from djGrrr for libc/epoll detection on FC7
    * Merge in dns fix for bug found by djGrrr
    * Backport display glitch fix found by djGrrr, fixed by w00t
    * Fix for bug #379 reported by stealth. Trigger watch signon/signoff on +Q and -Q
    * Feature request from djGrr, allow changing of server to server ping frequency: Backport to 1.1 for deployment on certain nets
    * Backport: Check for remote and sighup rehashes here, so that it doesnt crash if there are ports that cant be bound
    * Merge in missing part of gnutls fix
    * Backport r7680: QA: Please check connect classes apply correctly before and after DNS resolution (differing sendq, etc)
    * Backport r7678
    * Backport r7676
    * This is supported in exemptchanops
    * Backport of sorts for r7665 - adding m_nickflood. I do this only because it's an entirely new module, therefore it won't break anyone's setup if it explodes, and because 1.2 is a long way away
    * Backport as fix, as old way was somewhat useless:, Change latency figures in /map to milliseconds, much more useful for lag measurement than seconds
    * Merge flushbuffer openssl fix from trunk manually (without debug), and set svnmerge props for merge -r7661-7663 also by hand.
    * Merge buffering and notification fixes from trunk. Lessons learned from chatspike.
    * Merge in epoll availability check from trunk
    * Merge in fix for hanging client socket from trunk
    * Mark r7648-7649 as merged :<
    * Merge OpenSSL fix from trunk (r7648-7649)
    * Rollback 7650, since I got svnmerge'd badly.
    * argh
    * more fixes for openssl buffering (none of this affected the superior gnutls)
    * Merge in change from trunk
    * mark 7641 as merged since w00ts svnmerge is acting up
    * Backport 7641 manually via patch file. I'm off for pleasures of the flesh, cyall.
    * mark 7637 as merged
    * mark 7635 as merged
    * Manual backport of r7637 - svnmerge is still being a prick
    * Manually merge 7635 because svnmerge is being a prick
    * Fixed a recently introduced bug in cmd_list that would cause secret channels to be shown to all users. Highly recommended that you either hotpatch the /list command or load safelist..
    * 7621,7623,7625,7627 manually merged
    * Dont show hidden channels
    * Fix some op/halfop etc counts
    * Set changed to true on load
    * Fix broken m_httpd (not receiving callbacks) from trunk commit
    * Update with warning about using \\ instead of \ (so that we don't get a repeat of bug #371)

1.1.11

    *  Do not take away mode r for nickchanges that only changes the case.
    * Merge in error check from trunk, bail if we can't chdir to our own dir on startup
    * Merge from trunk, eliminate warning when building with anal flags
    * Merge detail fix from trunk
    * Convert some ancient GlobalCulls usage into userrec::QuitUser
    * Remove redundant include for a speedup of 0.1 in compile time
    * Fix some comments to be multiline, and remove a redundant if() case caused by windows patch a while back
    * Fix crash on unload of modules with listening sockets -- some situations require that the socket cull list is purged *immediately*, provide facility for this.
    * Squish some silly error output on unloading spanningtree.
    * Add some documentation
    * Sanity check: we don't want to deal with Config being invalid while logging
    * Squash a warning reported by owine
    * Fix a bug reported downstream regarding cloaking keys
    * Remove a braindead comment ('this belongs in class InspIRCd' -- when it's already there.)
    * Tidyup a bunch of stuff that was using userrec::modes directly rather than userrec::IsModeSet. Same for chanrec.
    * Make these notices a little more helpful
    * Bit more tidying. Add some comments here, too.
    * Minor cleanup
    * A couple of tweaks that i did earlier as diffs. ISON didnt always respect invisibility state of users. socketengine iocp didnt range check fd's before passing them for array lookup
    * Fix for bug #358, by rogalek. "If there is a channel on Server1 without any ops and Server2 will link to it, first nick sent with FJOINs will be marked as op on this channel created on Server2. Every user joined this channel from Server2 will see this nick prefixed by '@'."
    * * Sockets will now always be nonblocking on win32 version of InspIRCd. There were some cases (mainly in TreeSockets) where a socket would not get restored to nonblocking mode after a connect() call, resulting in the server getting stuck on a blocking send() call causing freezeups., * configure will now compile under VC7 again.
    * Fixed windows configure in release mode in a directory with spaces.
    * Grrr
    * m_testcommand deletes its command handler manually, no modules should do this. Will cause a double free
    * Add syntax.
    * Add m_taxonomy.so to example config.
    * Less WOOT more TAXANOMY :>
    * oper-immune filters should be fixed now
    * I broke socketengine_iocp with some fixes. Fixed again.

1.1.10

    *  Fix gnutls cert generation failing. Thx owine.
    * Fix for bug #326, 'no error' quit can no longer theoretically occur because all errno == 0 are weeded out with a shorthand if() on calling userrec::SetWriteError, before, only one of three occurances , was.
    * Fix for bug #353, theres no solution to this but a slightly craqy one, but at least its one line.
    * Check libc version for epoll then check that glibc is built against this kernel version, if not dont allow epoll
    * Ive tidied up the mode count stuff, but i still cant duplicate negative invisible counts.
    * Fixed m_messageflood to free the channel if it kicks the last user. This would cause either a crash or a memory leak, probably the latter
    * there were two.. yes, you're right Special
    * untested fix for "unused functions"
    * Stability fixes, some DELETEs here that dont belong any more.
    * Validation checks that seem to have been omitted here.
    * Mass header update. Chatspike-Dev => InspIRCd....
    * publish "JSON-RPC" interface
    * Now, json-rpc _ONLY_ supports member function pointers. An example is given in, ModuleRpcJson::ModuleRpcJson. I must admit that it is kind of ugly but it is, the only way I can see right now.
    * #ifdeffed out gnu extension
    * provide feedback to the user if json throws an exception
    * Ignore all exceptions for now.. m_rpc_json is rather willing to throw
    * Added a JSON-RPC module that can be used by other modules to provide a remote, procedure call interface. This should work in theory, but does not for me., But then, neither does m_httpd_stats so it's probably me...
    * Module directories now use the concatenated linker flags from every cpp file, instead of just the last (which was rather unpredictable)
    * Added the execruntime() function for Compile/Linker flags - executes shell commands at compile time rather than during configure
    * Don't hide from me! set LF eol-style on hidden files too.
    * Set EOL to WINDOWS-style always for Visual Studio files.
    * 'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are auto skipped by svn.
    * Add flags to /STATS s output, and nuke some ^M
    * Ok windows.. YOU WIN :< .. but at least I can use MAXBUF now and configure will have to endure the fixed 500 limit :>
    * formatting and ^M
    * Begone evil DOS format :<
    * And add colour.h to wrapper resource instead of the source.
    * Use wrapper include instead of colour.h.
    * Tide this up and fix possible buffer overflow. Cannot use MAXBUF since inspircd_config.h may not be generated yet.
    * Little tweak to fix the output when directory modules execute programs for cflags
    * Use colours.h in win_wrapper and also add __COLOURS_H define.
    * Remove printf_c from wrapper, this code also segfaulted when it was used.
    * Use vsnprintf instead of vsprintf.
    * Made m_ssl_gnutls throw an exception when unable to load the certificate (since SSL won't work at all without one)
    * Fix for bug #349: NOTE there is important caveat about this in the example config, MAKE SURE TO READ IT., When you connect a cgi:irc client two different connect classes are checked at two different times (first the one, that the website they are cgi'ing from, then later one for the user's real ip). READ THIS AND UNDERSTAND IT!
    * Fix for minor memory leak on unloading module, bug #340
    * Explicitly disallow mode prefixes > 126, to prevent excess muppetry by 3rd party module devs
    * Implement a way to disable options:maxwho, bug #348
    * Apply patch from lain to fix multiple cgihosts not being read correctly.
    * Backport patch from stskeeps for checking success of gnutls cert generation
    * Fix for bug #347.
    * This should fix the rest of remote kill nick hiding
    * First part of fix for bug #344
    * Implement /dalinfo, as a joke. Consider this an easter egg., More debug logging in m_ssl_openssl, still not fixed
    * Added some missing parameter checking in m_swhois
    * Warning: Loads of craq logging in here atm. /connect with openssl is broken, gnutls seems fine
    * SSL buffering tweaks. NOTE this is not a complete fix till i say so, don't use this in production yet unless youre a masochist.
    * And fixed a race condition I introduced in the previous commit that could've caused the exact same error I was fixing. This is one of those commits that never happened
    * Fixed the handling of the CTCP TIME reply in m_antibear - it could generate random client errors. Bug #341
    * Init the sequence indicator to avoid undefined behaviour. Thx owine.
    * Removed superfluous semicolons
    * Revert a changed file I didn't want to commit ..
    * Fix off-by-one reported by Darom in bug #339
    * We know this worked... i think., std::string::reserve might not work the same as this.
    * std::string does not need a null terminator..
    * Add -Wno-deprecated to prevent an annoyingly stupid gcc4.2 error which stops you passing a literal string to a char* parameter:, void a(char* foo); -> a("test") == WARNING on gcc4.2!
    * Compile fixes
    * Optimizations and code tidyups. QA please check that svsnick and other forced nick changes still work right after this
    * Split hostmask with XLines::IdentSplit then re-inject into check for proper detection. Thx owine.
    * Fixed a bug that caused classes with passwords to instantly disconnect any users (thanks Darom). Needs QA
    * Made all of the error messages in chg* and set* a bit more uniform, and added a few that were missing
    * Added checks for empty ident/host/gecos in the chg* and set* commands. Patch by Stskeeps
    * Added a prompt for certificate expiry time to openssl cert generation. Patch by yell0w
    * Fixed the order of fields in openssl certificate generation; this would make really broken certificates. Thanks to yell0w
    * Fixed sunos 5.11 support, and a header issue with the ports socketengine. Patch by Stskeeps
    * Fix undocumented windows behaviour where multiple dns servers are packed into one registry key seperated by commas
    * These should not be oper only. Thanks Jobe.
    * Check for TS==0 in FJOIN
    * Drop fmode with TS of 0, just in case any craq smoking services devs get the idea that this is acceptable instead of actually supporting TS rules
    * Fix for atheme support (and others) which makes sure CAPAB is always sent before BURST
    * No no no, the fix to free module factories in loadmodule on error causes a bus error
    * Apply patch from BuildSmart. Add owner of process to launchd script.
    * Add org.inspircd.plist to svn ignore.
    * Fix for bug #332. Correctly invalidate old mode before updating it.
    * Apply patch from BuildSmart that fixes an install path.
    * Apply OSX patch from BuildSmart that fixes installation issues.
    * Apply patch from BuildSmart that fixes a few issues on Mac with the logfile path and ircdeamon user.
    * Add BuildSmart to contributors for all his work on making inspircd work with Mac.
    * Clarify what generates Makefile, to prevent any new developers making the same mistakes I did a while back when I was doing some makefile playing.
    * Make a comment make a bit more general sense, and indent a nested define.
    * Short circuit order as before, since they are prolly listed according to what is used the most.
    * And remember it's not only colorcodes we strip :>.
    * Fix problem where in certain cases a \0 would be sent out. Thx to network Hak5IRC for reporting this.
    * Support duration to set idletime as well as plain seconds. For you Zaba :>
    * This should be safe. Someone test module loading and unloading during use and make sure stuff doesnt fall over., Also test some misconfigured modules, e.g. try and load m_services with m_services_account.
    * fix possible minor memleak in LoadModule. Thx IronLegend.
    * Add ISUPPORT SSL token requested by tabris., Syntax: SSL=<ip/host>:<port>[;<ip/host>:<port> ...], Note that the insp implementation due to API limitations (ick, we have some) will print '*' in the host/ip section, meaning 'bound to all', a client should just connect-back to the ip it connected to initially, on the new port to make use of this.
    * I think we're done adding comments to headers. Phew.
    * Comments (lots of, this was really lacking)
    * Comment stuff that lacks it
    * Doxygen comments for command handlers
    * Tons of stuff added since 1.0 is missing documentation comments
    * Update this to use CMD_LOCALONLY
    * Modify helpop-full to show SILENCE ext flags. Thanks Zaba.
    * Remove static link stuff
    * Module factory and init function in modules turned into a neat macro:, INIT_MODULE(MyModuleClassName);, Get cracking, w00t
    * Add m_chgname to example configuration
    * m_chgname. How it works:, CHGNAME will be routed to user's local server. There, the user's name is changed, and FNAME is sent back across the network so the name change is actually done., d3mon, this means you can stop bugging us now ;p., Feel free to QA this.
    * Deprecate remote SQUIT, warn to use RSQUIT instead. RSQUIT supports 1 param too, emulating the old behaviour of SQUIT.

1.1.9

    *  Remove inspircd_config.h and inspircd_se_config.h in configclean (subjob of distclean)
    * Change to show time/date set and/or time/date to expire, rather than a number of seconds for each, like in cmd_*line
    * RSQUIT/SQUIT is one target only for 1.1. The multi target is going into the 1.2 discussion.
    * Minor cleanups, commentage., Stop this trying to block messages with no channel targets (e.g. PMs)
    * Fix crash on propogation after routed squit has reached it's destination. Thx HiroP.
    * Use PUSH to let remote servers advise of errors.
    * Cannot WriteServ to remote users, write info to snomask instead.
    * remove RSQUIT2 routing hack for SQUIT now we use one param RSQUIT.
    * Fix for bug #296, remote squit not accepting wildcards. awaiting QA.
    * Prioritize this to LAST to allow host changers and cloaking to be done prior to joining any channels. Thx Strike.
    * try out using one param RSQUIT for propogation of SQUIT.
    * One param RSQUIT behaving like routed SQUIT.
    * - Fixed fencepost error in apply_other_sides_modes.
    * - Made the recvfrom wrapper a bit neater.
    * - Fixed UDP Overlapped I/O under windows. (not the best way this could be done by far, but probably the best that is possible with our EventHandler setup). *dns will now work under win32*
    * + Added a check between servers prefixes at the CAPAB negotiation stage. This will prevent servers with prefixes from linking up in the first place (later on they will get errored out for invalid prefix in FJOIN most likely, but it's better to stop them from linking in the first place)
    * Add sections to installer for pcre, segregate the m_filter_pcre for the installer
    * - Fix for a bug in the win32 inet_ptoa implementation causing CIDR parsing to incorrectly return false in some instances.
    * This should fix bug #317, we shouldnt be using send_mode for user modes, we should use send_mode_explicit spanningtree event
    * Fix for bug #315 reported by Nekos, change the exception tags to <securehost> so they dont conflict with <securelist:waittime>
    * Fix for bug #324 reported by HiroP
    * Fix problem where two unrelated options are named identically, thanks for reminding me djGrrr
    * This is not, not routing of SQUIT, nothing to see here, move along :>
    * Have the installer install cert.pem and key.pem to the conf/ dir only if they dont exist already (if they already exist, the user has generated, purchased or otherwise obtained their own)
    * Add default windows certs. People shouldnt use these for more than evaluation purposes of the ssl module to ensure that it works, before spending time OR money on buying or obtaining a real certificate
    * Being as people while about the odd kludge here and there im going to spend my time on fruitless stuff
    * Nasty kludge to allow for optional install of ssl:, If the user doesnt have the ssl box ticked, the ssl modules are installed but immediately deleted by the installer, and the gnutls dlls are not installed., If the user does have the box ticked (default) the ssl section immediately puts the ssl modules back again, and then installs the gnutls libs (ick)
    * * Fixed IOCPEngine under x64 (because of incorrect pointer sizes), - Fixed configure / VC8 projects for x64 compiling.
    * Remove remote SQUIT hacks.
    * Make this require 2 params, just like god intended it. (no remote squit hacks)
    * - Fixed configure script to allow gnutls compilation under win32.
    * + Added x64 solutions for VC2005, for future work. This does not under any circumstances mean it will even compile work properly yet.
    * new rsquit command handler, this is still work in progress.
    * strip RSQUIT from protocol, part of new RSQUIT, not ready for use yet.
    * Fixes for tokenization oddness with metadata, and weird behaviour of std::istringstream where the .str() method returns the whole string from the start to end, even AFTER youve read elements from it!, Use irc::tokenstream instead and add some overridden methods to it. This is smarter as it reuses code and allows us to format metadata the same way we format irc data., NOTE: If you run any old servers alongside new servers (this revision) you might see spurious colons on the start of reasons for svsholds, cbans and filters. These can safely be ignored)
    * Fix advertising of +h/% in 005 and 004 numerics when halfops are not enabled in the conf, spotted by Smartys, fixes bug #322
    * Permissions patch from <mm@freebsd.org>
    * This breaks stuff. We can't use it.
    * Fix double printing of 'setting log file' and 'setting config file' paths., Add comment about not using direct pointer from GetCommandLine()
    * We need to pass a copy of GetCommandLine() not the actual return pointer.
    * Tweak some tabular declarations to look correct on 8-width tabs
    * Woo, fixed the bug, win2k doesnt like the AUTHZ_LEVEL stuff
    * Fixed commandline stuff for CreateProcess, but it looks like win2k doesnt like that AUTHZ const. Commented it out for now till burlex comes up with a solution
    * * Changes to userprocess functions to allow flood limit removal by m_operflood.
    * Prompting for wether or not to wipe the .h and build from clean (default to no)
    * Change from /GS to /Gm in makefiles
    * - Added more debug output to windows fork in order to help debug problems encountered.
    * Put the check back so we dont keep doing builds from scratch every time
    * - Removed un-needed event create at windows fork., * Fixed command line arguments when using fork under windows.
    * Fixed issue preventing startup without --nofork under win32
    * A ton more clear() and empty() stuff thats been lingering on the long term todo for too long a term
    * Change some = "" to clear() and some == "" to .empty()
    * Note to devs: We should be using std::string::clear() to empty a std::string, NOT somestr = "". somestr = "" involves a pointless memory allocation and , assignment then de-allocation, whereas clear() just sets the length to 0.
    * - Enabled minimal rebuild on all VS project files, this will reduce build time on small changes, also removed the -Auto configurations as they are no longer used.
    * Enable SNOMASK 'K' (remote kill), and use it in cmd_kill. This has the side effect of hiding kills from a server prefix at the moment as they work differently (ugh).
    * * Changed forking code, now the parent will attempt to retrieve the exit code of the created process if startup fails for some reason., . Exit code 14 means the creation of the forked process under windows failed.
    * * Fixed VC8 m_spanningtree project file. second commit?!
    * + Added an *almost* unix-like fork system for windows. Insp will create a secondary process now if nofork isn't specified and pipe its console output back to the originator's. If there is an error during startup, it will show too., * Fixed m_spanningtree project (cmd_rsquit was missing)
    * Add Burlex to developers
    * Make this message slightly more meaningful, as discussed in .coders a while back
    * Add command /RSQUIT to spanningtree
    * Add back remote kill handler for server origin kills
    * Patch fixing (almost) remote kill server notices, by just passing KILL onto cmd_kill and not attempting to duplicate code for it in spanningtree. Dev: Two small issues are left with this, see comments in cmd_kill.cpp. Thanks, HiroP.
    * Be a little nicer.. this die error is funny, but confusing (got me once too)
    * List developer arguments (debug, screendebug etc) so they don't need to be looked up
    * Refactored InspIRCd:uration(). The leetcode now lives!
    * Stdint being included when we dont even use it, without checking HAS_STDINT, thanks djGrrr
    * If the whowas maps really do fail, log it as default and not debug.
    * Add options:moronbanner. Yes really, thats what its called. See the example config.
    * Fix windows issue locating some files relative to the conf dir (namely motd, rules, quotes), See: http://www.inspircd.org/forum/showth...p?t=989&page=2
    * The recvq > netbuffersize check isnt needed *at all* as we check recvq > recvqmax in userrec::AddBuffer called just above it.
    * Make nt the default channelmode if <options:defaultmodes> is not present.
    * Update example conf for recent changes to module m_hostchange.
    * Many changes: Implement Muisje's idea for prefix + separator on action addnick. Switch to empty() checks on strings. Cleanup mem on module unload. Tidyup conf reading.
    * Probably fix 2nd compile issue on RH7 and add some checks which *should* ensure none of this can break anything else
    * And a minor cleanup of the /stats z code. Nothing spectacular..
    * Possible fix for compile issue on some distributions. Then again there was probably a reason we weren't doing this before...
    * Add somewhat of a hack to cut down on allocation time taken to map windows fd to a posix style fd in iocp engine.
    * Add console mode patches from burlex, thanks
    * Change configure to generate .mak files with warning level 2., Change project files to warning level 2.
    * Chdir to bin dir on starting, allows relative paths to the bin dir to always work even when we're not started from our dir
    * The code to work out the path seems to work fine now on freebsd and linux, still to test on win
    * Specific windows code for getting the full path to the exe
    * Fix for bug #297. /MODULES now correctly finds remote server on wildcard. Marked for QA.
    * re-apply ipv6 ifdef tidyup that got pulled in last revert.
    * revert multiaccept for now until we can fix it for win.
    * WIN: As promised when I took it out, whowas stats in /STATS z is now working due to fix in r7201.
    * Fix re-generation of 005 on rehash
    * Make valgrind happy and not leak mem.
    * No fucking point at all checking for CC_DENY twice. \o/.
    * We can make one saving in userrec::WriteWallOps though - we are checking IS_LOCAL inside the loop, we've had a seprate local only user list for god knows how long, we know the users in it are local.
    * This is a better fix, as it calls the mode handler giving the modules etc chance to allocate structs
    * Fix bug found by indigophone where +lk cant be set in defaultmodes
    * Fix USERHOST, thanks click and HiroP
    * Detect BRAINDEAD WINDOWS EDITORS THAT DEFAULT TO SAVING AS UTF-16! When we find out which editor did this, we'll use our retractable baton to teach it the true meaning of portable data.
    * And remove soem debug
    * Fix for issue discovered by satmd where it is possible to send an empty string via privmsg or notice to a user target, against the RFC standard. Remote servers don't like this much., Also fix: NOTICE generates OnUserNotice event, but checks against the I_OnUserMessage hook., Also also fix (!): Missing colons in "no text to send" message., BOTH of these also fixes have been around since like, 1.0 alpha 1, and nobody's noticed them!
    * Fix bug #310 reported by Smartys, and optimize mode.cpp a bit (was using string comparison to identify an empty string, e.g. somestr == "", when we can use the much faster somestr.empty())
    * Apply ipv6 #ifdef tidyup patch from djGrrr, thanks
    * Fix bug #309 reported by Smartys - QA, please test quickly. Seems okay to me.
    * Add m_check to example configuration, thanks Potter
    * Remove m_conn_lusers from the example conf, fixes bug 308, thanks Smartys
    * All the other socketengines have a 1s wait on their 'poll' equivalent. GetQueuedCompletionStatus had a delay of 100ms. Upped to 1s to be more sane and more in line with the other socket engines.
    * Metaphorically add a metaphorical comment to the metaphorical code. Thank god its not metadata.
    * No flags now means all flags when in the config, so that filters defined in older configs are forwards compatible
    * Stuff for flags as requested by djGrr. We aren't going all-out rediculous amount of flags on this, we're sticking with the 5 or 6 easy to remember and lumping oper-immunity into the flags (see forums)
    * Display the proper transports for server ports *slap*
    * Remove code for clientcount/servercount from /stats p. At the moment it was slow, hacky and doesn't totally work properly (bind 2 same ports on diff. ips and watch it get confused ;p). It may be added back in a few versions once we have the infrastructure in place to tie a list of clients to a port.
    * Show IPs that a port is bound to in /stats p, don't remove duplicate ports anymore, since we know what IP a port belongs to.
    * - Add fix for /stats p support (this->port was not being set for listening inspsockets, thanks peavey).
    * - Add server ports to /stats p. This doesn't work properly yet as something is not initialising port correctly in a constructor I'd guess. It also does not enumerate connected servers to see how many connected on a given listener yet.
    * Add m_cycle to example configuration
    * Add m_cycle: server-side equivilant of /hop, except it overrides +ilk. For the curious, this module took me under 5 minutes to write. (you said you didn't have time Naz? )
    * Fix for bug #305, allow admin to select what port outbound ident requests bind to
    * Add config example, and allow options:defaultmodes="" so that people can have no default modes if they want., Default in the example config is 'nt'. , SIDENOTE: Someone really needs to tidy up <options> in 1.2
    * ...and remember the parameters
    * We were already sending FMODE +nt after each channel creation to keep services happy, just change this to send the servers default modes
    * Config option for default channel modes
    * Change for reverse output of lists, most recent first, for bug #307. Also fix(Oms) annoying(Cuddled(Ifs()))
    * - Update our long suffering example MOTD
    * Use the example rules and motd in the default config

1.1.8

    *  Choose the correct defines so that its not built too lean to compile
    * Add defines that speed up the build process and reduce executable bloat
    * Fix for bug #302. He may not have had any connect lines in his conf but it needed addressing anyway, because a bad rehash could leave the ircd in this state and it should just turn users away, not , crash.
    * DIE. DIE YOU FUCKING ASSHAT OF A BUG.
    * Fix for bug #303 reported by HiroP, thanks
    * Initial fix wasnt working, and was a mess. Lets try this again.
    * Fix for /list glob bug in core LIST reported by HiroP, bug #304
    * Don't allow SVSHOLD from a non-ulined client. Thanks click.
    * Propagate the gunloadmodule command even if the module isn't loaded locally; bug #299
    * Somehow, the code which does the "assumption" that no prefix means 'that' server's name, got removed or broken., I've put it back, this would explain the commands with empty prefixes being echoed back during that java stuff
    * Make kill hiding work properly locally
    * Two things, document how InspIRCd finds the dns server ip on windows if you don't specify one,, and have win32 default to 127.0.0.1 for dns queries in the very unlikely chance you have no, network interfaces active.
    * Compressor script that compresses all shared objects and exe with upx, should be used prior to a release
    * Commit patch by IronLegend, thanks :) -- Fixes bug #298
    * One more with redundant ref to instance. I think this is the last one.
    * Module class has a member ServerInstance, so remove any extra refs still lingering in a few modules.
    * take out whowas stats from stats z until I figure out how to fix it.
    * - Fix two minor warnings here (catch (ModuleException& e) -> catch (ModuleException), as we're not actually using e). Noted on w32, compiles ok, stab me if it breaks linux (I don't think it will.)
    * Have configure try and create ..\bin\release\* and/or ..\bin\debug\*
    * Code to find nameservers in the windows registry - largely untested
    * Someone forgot the blindingly obvious - APPLY the glines/zlines you add! they dont apply themselves :p
    * Add BUILD define which tells the install script what to build
    * Have this make the debug and release dirs, fannying around mkdiring them in a command prompt is a pain in the rectum
    * Change to NOT optimize, /O2 was set on all projects, probably a bad thing, we dont know what the compiler is going to do to our code. Set to /Od
    * Update this to always run even if we have an inspircd_config.h, having to manually fart around deleting files to make clean is a pain in the ass., Also why does it seem to be making a seperate named file for release builds and never actually calling it during a release build, leading to debug modules being loaded into a non-debug insp :p
    * This says ten minutes drift and should say five, fixed
    * Add .net framework version check
    * I think this was the source of burlex's confusion with the spanningtree propogation bug and a warning in vc8 -- CallCommandHandler returned BOOL?! Yet its casting that bool somehow from a CmdResult., It should be CmdResult. Fixed.
    * In this module we declare the md5 context as a class, then reference it in functions as struct MD5Context*., Not only does this make little sense readability wise, it triggers a warning in vs8. Fixed.
    * Header rearrangement, move inspircd.h to top, remove stdio, stdlib, stdblahblah that we dont even use, remove redeclared <string>, <map>, <vector>., This (1) fixes the irc::string::move warnings on vc8 (2) speeds up compile a lot
    * Reorder inspircd.h header to top
    * All non-commands part of the core are now warning clean on vs8
    * It seems that making inspircd.h the first include in .cpp files eliminates the warning C4996, as the defines to prevent it are set before any includes that cause it
    * Reorder includes, dont worry there is method to my madness (i hope)
    * Shortcut working dir is set to SetOutPath value, fix this so that the working dir of the start menu shortcut is correct
    * Reverted broken patch.. This may break, but it's unlikely :p
    * Install InspGUI to $INSTDIR, not $INSTDIR\Bin
    * - Comment on the ifdef in here, to avoid people (like myself) going 'what the fuck'.
    * - *slap Om with some unpronouncable fish* - you forgot the />
    * Coding style tidyup. PLEASE don't let vs assrape this again.
    * Crash on restart in win32 fixed., This means that the restart button in the gui, and /restart, both work now., Note, there are other bugs with the gui's restart button, the 'auto restart on crash' tries to boot the ircd! Dont use it! :P
    * Same change for VC71. This is a manual edit of the file as I don't have an old VC++ to try it with..
    * Quote the commanline to run configure.exe so it works with pathnames with spaces.
    * Throw bad alloc on out of memory, not return null, this is the correct behaviour according to the C++ standards
    * try...catch around the map::insert in AddFd, for some reason it throws sometimes. If it does, we return false, which the core can handle neatly as 'failed to add fd'
    * Remove asserts and convert to unix line endings
    * - Modify ServerConfig::GetFullProgDir to just return cwd, previously it did a lot of voodoo that was a little hard to grasp, probably didn't quite accomplish what it should have, and broke on windows.
    * Windows path seperator is \, this was assuming /. Fixed.
    * - Fix a small warning thrown by cl about unused local.
    * Merge in burlex's easy-build patch, apparently its now single-click and wait., Will play with this tomorrow.
    * Prevent vc8 from thinking we're dereferencing an end iterator
    * Change the define that defines strcasecmp->stricmp to use _stricmp to suppress an anal warning
    * Send CHANMODES= and PREFIX= in CAPAB CAPABILITIES., Sorry, if you encounter a server < 1.1.8, youll have to guess by module name.
    * - These two need to be generated by configure.exe (someone smack me if I'm wrong here :P)
    * Patch for vc8 project files by burlex, thanks
    * Fix (tested) for failing dlsym on win32
    * Fix std::sort stuff for w00t
    * SPACE INDENTING ACTION RANGERS -- ATTACK!
    * Visual studio's ability to translate tabs to four spaces as default frustrates and peplexes tabnazi cat.
    * I forgot to install cmd_reloadmodule.so, therefore the command wont work
    * And remove a whole heap of .orig shit I just managed to commit.
    * Helps if I add the w32 specific code, too. :p
    * Windows support. Tested and working to compile on freebsd and linux. Next step is to make sure it actually works in windows too. ;p. Add Burlex to contributors.
    * Fixed a fairly low-risk crash in m_spanningtree
    * m_censor can now block lines as well, by specifying an empty replace string (QA, test please, my dev server seems to be broken :P)
    * Fix broken return statements preventing blockchat and blocked files to be used individually.
    * Change the way i/o lines are formatted in debug log to make them more intuitive. Now includes a C or S to say if its client or server, plus the fd:, Thu May 17 17:56:16 2007: C[15] -> :Brain MODE #test, Thu May 17 17:56:17 2007: C[15] -> :Brain WHO #test
    * Add a progress meter for loading of core commands, fix broken implementation for <disabled commands> with a module command, as discovered by Casey in bug #293
    * This is funny, in m_md5 we have an ancient comment from w00t that i forgot to remove that says "maybe this md5 stuff would be better in a dedicated md5 module". LOL.
    * We announce a ping timeout THREE different times and ways on the server that sent the ping. this is excessive., Remove the announcement in DoPingChecks.
    * Add a notice on connection close stating server link uptime, and fix a bug in m_opermodes which meant that its modes werent being replicated across servers (it was sending a totally malformed MODE , command with the nick in twice, and has been doing this presumably since early 1.1's)
    * Tidy logic a little in here, and support <options:exemptchanops>
    * Update example docs for <options:exemptchanops> to be off by default, and to support SfgNc channel modes.
    * Opers are not exempt from other modes, don't exempt them from +N (we may add this back post 1.1.8 as a config setting)
    * While rolling our own IS_LOCAL check with irc::string comparison is clever (TM), it does seem a little redundant :p
    * Rather largeish change to class checking on connect to fix a few minor bits and bobs here and there
    * Add cmd_reloadmodule.{h,cpp} contributed by Eric at neowin.net, thanks :), Someone forgot to increase the release years of all the headers in include/commands
    * More tweaks from Eric, when an oper is invisible, attempting to /notice or /privmsg them returns 'no such nick' :)
    * Added patch from Eric at neowin.net so that opers are still visible joining/parting to other opers (They should have been anyway, but it was broken)
    * Someone forgot the ELIST token (his nick begins with B)
    * Allow for resizing of MAXBUF above/below 512 via non-interactive configure. (Some crazy mofo on the forums asked for this, good luck its your funeral :p), THIS IS UNSUPPORTED BY US IF YOU CHANGE IT, WE WON'T EVEN TELL YOU HOW :)
    * Now really add +f to <options:chanopsexempt>. Previous add was m_chanfilter (+g).
    * Add +f (chanfilter) to <options:exemptchanops>
    * Replace strip/blockcolor tags with <options:exemptchanops>, sexy string of modes to exempt chanops from (currently Sc are supported).
    * We dont need to send FMODE for user mode changes, and the FMODE handler doesnt need to error on FMODE from a user if we get one
    * Move IsIdent() into helperfuncs.cpp along with IsNick/IsChannel.
    * Remove static linking support craq that hasn't been working/used since 1.0 cygwin builds.
    * Fix remote bursting with quietbursts, before QA actually test it :P (thanks HiroP)
    * Better logging to troubleshoot silentbursts
    * Make the debug output a bit more readable
    * Add <blockcolor:allowchanops>, mirroring <stripcolor:allowchanops>.
    * Poach feature request: If a server does not respond after x seconds to a PING, send a warning to opers via +l snomask.
    * Make this FindFeature once, and store the result. It was different dating back from before we had module interfaces. Thanks LeaChim :)
    * Add README to docs directory giving links to various stuff (bugtracker, wiki, irc), so people know where to get help
    * Make this use std::string, not char crap
    * Last IS_AWAY fix. No more *u->awaymsg. :)
    * While I'm on the macro warpath: start using IS_AWAY. Also, show the away message all the time, don't check IS_LOCAL. We used to not propegate away messages, but that hasn't been the case for ..fucking years? :p. WHOIS works correctly.
    * The commit that should have been r7000: src/modules now uses IS_OPER instead of not so tidy char equivilant
    * Opers cannot change the modes of others, and on this module, it's a reeeeeeeeeeeal bad idea. :p
    * Change to IS_OPER, also modify to use short circuit evaluation (simple char check is quicker than ReadFlag no doubt)
    * Opers cannot change the modes of others. (In retrospect, a mass commit of these would have been better, but I'm working on another mass commit.)
    * Small thing, but check for IS_OPER(source) too, just in case someone crazy writes a module that lets users kill people. I'm not sure what would happen here otherwise.
    * We've had an IS_OPER macro for a long time. About time we started using it, maybe? :p
    * Make this use SendError rather than rolling it's own. Fun fact: this notice was always broken, as it send the nick, user, host of the oper it was *sending* to, not the nuh of the oper issuing the die.
    * Remove the char junk here, use an std::string
    * Make sure we always use the correct index for the nickname (thanks djGrr)
    * Remove some stuff deprecated since 1.0
    * Allow removal of client ports from the config file via rehash
    * Refactor port binding, warning not yet tested fully
    * Change the text of the 461 on invalid ident. Technically, this is correct, but nobody else respects this. Also, the numeric is the important bit, not the text. Now a little more nub friendly. :)
    * One of my XXXs done, tidy logic in here
    * Last commit of that batch: Fix some returncodes (some stuff here really didn't need to be routed), clarify a few in comments, and also add some todos for myself next.
    * Yes, and here too. I want these in seperatly so I can roll them back if I screwed up (somehow)
    * Opers haven't been able to change the modes of others since 1.0.
    * Clear up logic a little here, check error conditions at the top, succeed at the bottom. Little neater :)
    * Make the same (r6972) fix here.
    * Remove duplication of conf loading code here. Just call rehash in constructor quietly, like normal.
    * Fix a slightly out of date comment (from before the days of the self commenting IS_LOCAL :p)
    * Add <watch maxentries> and <silence maxentries>
    * Attach ident and original username to the metadata of the user, so that it can be retrieved with /taxonomy. Fixes feature request/bug #285.
    * Add m_taxonomy and api minor tweak to make it work, enable some modules for it., I have higher aims for this module, namely a neat fix for feature request in bug #285
    * Patch by djGrrr to WHOIS to fix up another potential information leak, now remote and local whois work the same way really :P
    * Remove redundant if (), pointed out by djGrrr.
    * Much thanks to djGrrr for being helpful. Give this a go.
    * FIX: Don't show time for remote clients on /whois nick
    * Clarify some of the comments here..
    * (will be tested like nowish): Modified version of djGrrr's patch to re-fix #286.
    * Slightly modify WHO <port> p to allow a port range, e.g. "WHO 6660-6669,7000,7001 p" would find all users on ports 6660 thru 6669, 7000 and 7001.
    * Change some stuff around to make sure metadata/fmode comes after nick list if sent by modules
    * remove EB metadata madness and make services people happy.
    * Fix for bug #281, oper fail notices should be global
    * Add HiroP to contributors for being such a helpful little gubbins ;>. Congradulations. :)
    * Helpop fixes, noted by HiroP, derived from patch by HiroP in bug #291
    * Add openssl cert generation prettyness, make it like our gnutls one. It seems that openssl doesnt support templating like gnutls, so we pipe the input in from configure
    * Remove a large portion of commented craq, and make this fit in better with the rest of the source (braces on individual lines etc)
    * Update this to use the new copyright header
    * Add <stripcolor:allowchanops> to allow channel operators to bypass color stripping. Defaults to off. Added to example config. Closes bug #288 :)
    * Remove PARKSTATS from example helpop conf, thanks HiroP
    * If hidewhois is enabled, don't show idle time unless requested via remote /whois nick nick form, this stops serverhopping to find where someone is. Thanks djGrrr.
    * Add warning notice to m_deaf, as setting it will make new users pretty confused :p
    * Fix duplicate End of /NAMES list from here.
    * chanrec::UserList() gives out end of names numeric. So don't do it here. Fix for bug #289
    * Comment what ive done, so that someone doesnt go 'oh thats a redundant data copy, what muppet put that there' and take it out, giving everyone uhnames output that doesnt support it :P
    * Tweaks here so we can avoid data copies in uhnames
    * Add m_uhnames.so to the example config
    * Make it not suck^H^H^H^Hsegfault... and its all fixed and *working* :)
    * It would be good if this actually compiled too...
    * Small api change with wide reaching effects in modules - Allows modification of whats displayed by NAMES on a per-nick basis, so we can have UHNAMES in a seperate module to NAMESX (and possibly do some funky other stuff in the future too!)
    * Fix ping timeout ERROR not being generated when a server pings out, making the other end appear to be closed unexpectedly without reason., Find and fix the 3 ping timeout messages for server to server that were using WriteOpers instead of snomask +l
    * Add a module which only lets identified users and opers create new channels, as per bug #279 reported by Casey
    * Fix operquit notices being chopped to first word of quit message, spotted by owine :)
    * The WHO documentation in helpop.conf was WAY out of date
    * Add WHO flag 'l', show only local users
    * Fix slightly broken oper checks on +i
    * Add extra matches to /WHO. flags aiMp, away, ident, metadata, port number
    * Someone left a flag out of the syntax (m, modes)
    * Fix the other logic bug found by peavey
    * There was some real odd logic in here - thanks owine and HiroP
    * Make RCONNECT accept a glob for the first parameter. Thanks, HiroP :)
    * Implement bug #282 from owine: kill sender hiding. <options:hidekills> needs to be set to a static string to display instead of the killer's nick. QA: *IMPORTANT* please extensivly test local ***AND*** remote killing with this on and off. Thanks :)
    * - (FINALLY, ffs) add realnames to connect/remote connect server notices, per HiroP's patch. No, we're not showing SSL - SSL is a module, putting that in the core is hacky.
    * Add oper notices on: (1) joining invisibly to a channel (2) engage or disengage mode +Q
    * Tidy up some lollercode
    * Document m_xmlsocket.so
    * Sending a buffer full of garbage is not smart or funny.
    * Make SAJOIN/SAPART more spanningtree friendly, they are throwbacks to the inspircd 1.0 alpha days :S
    * We're setting chanrec::creation in here and not chanrec::age, this can and will fuck up TS. Set Both.
    * Fix multi-level if() madness, thanks HiroP
    * Correct the silentbursts logic
    * we typedeffed nspace::hash_map<std::string,command_t*> to command_table ages ago., Now its time we used it! command_table::iterator is far neater than nspace::hash_map<std::string,command_t*>::iterator
    * Slightly tidier capab checks
    * Needs a little testing: Tidyup of some code, namely when validating the length of params for NICK, tidied it into an array of sizes and indexes rather than a big long chain of if, then, else
    * Fix channel TS not being set correctly on creation of new channel
    * Developers, please review ForceJoin starting at line 730 of this file. It needs a thorough going over to see if anyone can spot any problems., Now uses modestacker rather than trying to do this itself with lots of char* craq.
    * Add bugnotice when an fmode is sent with a TS < ours. This should in theory never happen unless theres some retardedness going on, the TS should always really be = ours or > ours, as FMODE comes after , FJOIN, and FJOIN lowers the TS to be = ours if its greater.
    * FTOPIC from another server now (correctly) shows local server name to obscure remote
    * Fix MKPASSWD in helpop, remove MKSHA256, it's now accessed by MKPASSWD.
    * Fix for bug #278 reported by aredridel, LUSERS output is required as per RFC 1459 on connect, m_conn_lusers is therefore redundant (so i removed it :p), The core automatically triggers an LUSERS on connect now, which modules can still intercept the way they always have.
    * Fix for bug #263 - note, this NEEDS QA TESTING
    * Now it deletes the makefiles too
    * make distclean now removes .config.cache (thanks HiroP)

1.1.7

    *  Fix for feature request in bug #262, needs a bit of QA. Simpler prompting for gnutls cert generation in configure, we now use our nice configuration system to prompt for the more important details, , which we use to fill in a certtool template. Much nicer.
    * Fix for crash found by potter if you set up two redirects in two channels to forward the user back and forth between the two in a loop.
    * Make debug warning for broken servers once per servername only
    * Add options:quietbursts, fixes bug #269, also adds support for quits in a cull list which do not generate a quit snotice
    * Fix for bug #274, same port appearing multiple times in stats p if bound multiple times on different ip addresses
    * Proper fix for clients that send a nickprefix on their commands (the rfc says they shouldnt but also says that the ircd should discard it if they do)
    * Fix for bug #268, repeated messages on users who are already glined
    * If an op parts, joins or kicks then display the change to all, so that the non-opped clients dont see an opped user hanging around that quit
    * Add MODE nag to debug snomask +d
    * Fix bug where if an op is in channel then does /names later, all the non-ops dissapear!
    * Add <auditorium showops> which determines if auditorium works like ircnet +a (anonymous channels) or like unrealircd +u., The old behaviour is similar to anonymous channels, only showing the current user.
    * Cloaking of WHOIS didnt work quite right, fixed
    * foolish human! you can't /mode query a user that isnt there!
    * Fix /who to hide users marked invisibile in some way by a module
    * Apply visibility state to whois, next stop, /who
    * Where others charge, we give for free. Have fun and use wisely. With great power comes great responsbility.
    * Add auditorium to example conf
    * Do the same for KICK, but in the case of KICK, send to the user doing the kick AND the user being kicked only
    * When we silence the event, not even the user whos leaving/joining gets the output, make sure we send it to them in the module
    * First compilable commit of m_auditorium.
    * DO NOT USE THIS COMMIT - if you do, most of the modules wont work., DEVS: Please fix all modules that have warnings to use the new parameters to OnUserJoin, OnUserPart and OnUserKick (bool &silent)
    * Implement feature request in bug #271 by HiroP, allow disabling of maxlocal and maxglobal by leaving out each value from the tag
    * Much more detailed logging of lowlevel socket errors to the +l snomask
    * Fix crashbug in latest svn introduced by inspsocket cull list, which can cause a crash if the connection times out and an error occurs on the socket before its deleted
    * Change a return NULL to a continue so that where host matches but port doesnt, skip the connect tag
    * Move new listmode check deeper into the mode parser so that it doesnt generate spurious craq (thanks HiroP_)
    * Fix one issue, add another feature: When sending MODE +beI, weed out duplicates with simple O(1) check so that users dont send MODE #chan +bbbbbbbbbbbb., Allow configuration of which listmodes you want to deny to below halfops. For example <options hidemodes="eI">. This is because blocking +b can break mirc, blocking +eI usually wont break it so , severely.
    * squash a compile warning found by giggsey.
    * update svn:ignore for modules to include latest in extras.
    * Add support for hiding listmode lists such as +beI from unprivileged users., See bug #258
    * Add and document m_clones as requested by bug #267
    * m_dnsbl stats should count no result as a miss
    * Fixed bug #266 (m_dnsbl stats), patch by satmd
    * When running in nofork, keep the tty open (we were closing it, which meant that while we were in -nofork we would see no logs!)
    * Make error reporting work properly, it seemed to loose errors., First change: Add a culling list of inspsockets waiting to be closed, so the close() is less likely to be called before the buffer is entirely empty. This seems to work well on my LAN., Second change: Add a SendError() method, rather than WriteLine("ERROR : ..."). This can be used to effect by also echoing out "Sent ERROR to %s: ..." onto the +l snomask meaning at least one end, will always see the error even if the ERROR command is lost due to latency or design of the transport (e.g. ssl which may be writing during a read event etc)
    * Let's pretend the number after 6838 is 6840, so this commit never happened
    * Added m_chancreate to the example config
    * Added m_chancreate, which adds snomask +j to show when new channels are created
    * Use segments of 8 in length not ten, reducing the length of a cloaked ipv6 host by 12 chars (2*6)
    * dhost and host are both char[65], so let stringcopy take up to 64 chars here.
    * Shorten the length of ipv6 cloaks so that a character isnt lost.

1.1.6

    *  cleanup space indenting
    * Send numeric when item doesnt exist on remove
    * Fix memory consumption of m_slence, users silence lists arent deleted till they quit, they should be deleted when they empty their list to save ram
    * Fix spurious 'found host' messages after being told it couldnt.
    * Add *** to +s SNOTICEs
    * Fix for "hanging" when controlling terminal is not a tty (nofork check and isatty checks lumped together by mistake)
    * Fix bug #259 proper by doing what I should have done back in r6618 when I first fixed logout issue.
    * Check some userrec values in remote whois, so that it wont crash if a user has quit before the IDLE command arrives., Fixes bug #260
    * Fix for bug #261
    * Add trim() to hashcomp to trail leading and traling spaces from std::strings
    * We dont ever maintain this, lets whack it
    * Document options:deprotectothers
    * Added options:deprotectothers, this is like options:deprotectself, but if set allows one user with +a to remove another users +a, and a user with +q to remove another users +q., Default behaviour is to turn this option off like previous versions of insp defaulted to. Thanks to Bricker for the idea and w00t not getting pissy at me
    * Now this looks like it was supposed to.
    * Fix the restart stuff that bricker noticed while testing an feature request
    * Document <connectort>
    * Fix for race condition when two servers with the same name link at the same time
    * Add --version parameter to the binary bin/inspircd, i remember someone requesting this
    * Add tweaks to support feature request in bug #256, now awaiting QA test
    * Feature request outlined in bug #257, allow connect/allow lines by port, Needs QA test
    * Report the correct MAXMODES value
    * Don't send SYNTAX to clients which havent registered fully yet. Nothing says we cant but its a bit 'odd' and may break something
    * Working in m_filter_pcre., Thanks DarkPrince (PingBad) for the idea we messed with - when a match is successful move that match to the head of the list (O(1) operation), The original suggestion was to sort, this would be far too expensive
    * Add move-match-to-head-of-queue stuff to pcre filter
    * Working for m_filter, needs implementing in m_filter_pcre
    * Add a pair of curly braces because gcc will whine otherwise about declaration of a variable within a case statement
    * Find out from the commit notices that we're still using ctime() here and should be using InspIRCd::TimeStr (ick)
    * Dont use send_mode_explicit protocol call, use send_mode, which doesnt try and force the mode through via non-FMODE
    * The hmac stuff was slightly wrong, calculating the 2nd part, left a concatenation outside the bracket
    * D'oh, this is what causes it to randomly not allow the HMAC, when theres an = in the string, it borks!
    * Minor change, easy to roll back if it fucks up
    * Wait longer before sending data on the connect than on the accept
    * Different way of generating random string
    * Give information in snomask +l to what type of auth was used
    * Handle non-hmac servers smarter without having to globally turn off hmac
    * This is likely fucked up beyond all recognition. Today is fubar day
    * Debug, and we seem to be sending capab twice
    * Check against the HMAC challenge now: *UNTESTED*
    * Add basic HMAC suggested by jilles to make the auth not suck -- this is probably buggy, and the other side doesnt auth yet. do not use.
    * Test code that pretends to send a hashed value if its got a challenge - don't use this, it wont connect
    * Added ability to send and receive a challenge, dont do anything with it yet
    * Add methods needed for storing challenge string
    * Fix to reinsert sockets into the list as read event
    * Add support for solaris 10 IO Completion Ports, contributed by nenolod
    * It might be slightly slower, but memset the array as we're using it as a matrix not a simple char*. This will mean that the possibility of past data being left behind in the buffer wont happen
    * Add licensing headers to files which are missing them and make sure they are up to date in others (e.g. point at the developer page on the wiki not list names)
    * Set the signals to 'quick exit' before the fork, not straight after, because theres a very slight chance of minor race condition if the child process sends kill() before we signal() otherwise.

1.1.5

    *  More information in error when a module cant be loaded
    * Fix params passed on /restart
    * Increase sleep delay to 20, to provide reading time for the message
    * Add a facility to allow starting as root, bin/inspircd -runasroot, if you actually specify this parameter, the daemon displays a huge warning in caps, then hangs for 5 secs to give you chance to ctrl+c if you made a mistake., If you dont ctrl+c it, it then starts normally.
    * We had to roll our own time function because some craqsmoker thought having a carriage return on the end of ctime and asctime was a great idea, and the only other solution is to fanny around with , strftime.
    * Show expiry times of glines, klines, qlines and elines as the time theyre due to expire rather than number of secs (thanks bricker), Oh, and i hate C time formatting functions.
    * Check for people with lack of clue putting "!" in gline/kline/zline masks
    * Add <hostname:charmap> to example.conf
    * Fix bug #224 by refreshing the security ip cache every hour. The easier solution of course is not use crappy dynamic ips
    * Fix issue spotted by devious - if a value is defined and a later rehash clears the value to empty, the value is not unset properly because it tries to memcpy zero bytes to the value -, this means memcpy just returns immediately. Now if the string value is 0 in length we copy one byte instead (which just copies the null terminator)
    * Fix for bug #199 (Feature request) submitted by owine. Ended up adding an extra parameter to <uline> for this., It turned into a biggie
    * Fix for bug #216, m_cloaking now tries to cloak a larger amount of the hostname for resolving hosts to fix the issue reported by satmd in bug #216
    * Add 'silent' option to example conf
    * Add filter type 'silent', as requested in bug #235 reported by Casey., filter type silent for m_filter and m_filter_pcre does not notify opers, and just blocks the text. It does however tell the user their text was blocked and still log.
    * Add support for <link:hidden> fixes feature request documented in bug #247 reported by owine
    * Add extra /map info (connection uptime, and lag time) to /MAP for opers. Adds feature requested by bug #246
    * Add feature outlined in bug #192, give a notice showing cipher on connect to users. Its not possible (without something really spammy and ugly) to show it to opers, and its no use showing it to opers , anyway, this would just be a silly vanity feature (admins know its working - people are connecting on the ssl port!)
    * Before i was rudely interrupted by a FUCKING *RAM FAILURE*, i was going to commit this patch which fixes the error message given out when a module cant be loaded. Thanks darix for spotting it first.
    * If the user has a nick, use it in the numeric
    * "NICK :" did nothing and said nothing. It now says erroneous nick and uses the correct numeric.
    * A quick glance at ircu indicates that when an empty gecos is given in USER, it is replaced by 'No info', rather than our way of saying 'not enough parameters', so we'll do this as it seems to make , sense. The RFC is unclear here.
    * This needs some general QA-ing. Add support to new parser (introduced in 1.1) for empty final params (just the colon)
    * Fixed a DNS timeout race condition that could result in a NOTICE AUTH message being sent after connecting (thanks NBKWH5I)
    * The other half of special's LUSERS fix
    * Fixed numeric for one of the lusers messages (was 254, should've been 255)
    * Add feature to this module which allows you to specify that an oper requires ssl to oper up, but doesnt require a fingerprint
    * Add -config parameter to bin/inspircd which allows a user to specify the config file on the commandline, Note: This should really be a full pathname, and not a configuration file in the current directory.
    * Add m_seenicks.so, adds snomasks +nN which show local and remote nick changes (requested by giggsey, http://www.inspircd.org/forum/showthread.php?t=187), Fix m_nonicks description to not say it's globops.
    * Make it use the static text for the reason instead, i have a feeling clients are looking for the text of the numeric rather than the numeric itself :/
    * Add m_jumpserver, allows server forwarding with RPL_REDIR numeric 010. xchat doesnt seem to support this, can someone with mirc please test? (documentation to follow, so you know how.)
    * Add <options:fixedquit> and <options:suffixquit> to go along with the existing <optionsrefixquit>. note that fixedquit overrides both suffix and prefix if set
    * Tweak to numeric 378: is connecting from ident@host
    * Add macros IS_OPER() and IS_AWAY()
    * hidechans: allow showing on self whois, QA, test if you're bored
    * Add extra stuff to LIST., Firstly allow RFC-specified >x and <x, and allow for glob matching to match the topic text, as well as the channel name
    * Make this available to all users
    * Add snomasks to /check on a user (QA, please test), also return CMD_LOCALONLY as we do NOT want to route check.
    * Fix bug reported by darix where inspircd process returns 15 for successful startup rather than the correct 0

1.1.4

    *  Remove excessive debugging
    * Allow some commands to use a mask of * (this usually finds the 'root' server)
    * Test stuff to fix remote stats brokage
    * Fix two things: (1) log gets replaced by a user fd after restart causing debug log to go to a user's status window (!), (2) restart failing due to segfault within libc (this is because some moron decided that stdin, stdout, and stderr should still be non-null if the files arent actually open!)
    * m_showwhois now sends a message for remote whois as well
    * Check validity (length) of all NICK parameters to make sure we're not introducing a dodgy client (such as one introduced by dmb's dodgy program), Normally, NICK parameters longer than allowed are weeded out by CAPAB but sending CAPAB is optional.
    * Ident fixes, to make sure that if you dont get an ident reply you cant sneak through without a "~"
    * ident over ipv6 fixes, and fixes to inspsocket BindAddr which wasnt doing ipv6 outbound connects properly. You'll need to restart to apply this one, dmb
    * Fix small memory leak
    * Fix high-bandwidth stuff with inspsocket+ssl, and eagain
    * EAGAIN fixes for gnutls
    * We're checking for non-null session->sess in VerifyCertificate now. theres very little else we can do, as we know that *whenever* we clear an ssl session, we set this to null.
    * Some tweaks for gnutls
    * More checks in IS_HSDONE event hook
    * Fix crashes in ipv6 ssl using gnutls, and crashes when linking ssl to non-ssl by mistake, bug #245
    * Update a notice on server already existing to be more clear, - Update ModDesc for m_hidechans
    * Remove two pointless casts, and remove some space indenting (how does this keep sneaking back)
    * Change back to FMODE for channel mode changes from users
    * set the TS of a channel in JoinUser, not after the entire FJOIN, this is safer and may fix the odd desync here and there
    * Abort link at +/- 300secs, warn at +/- 30 secs
    * Remote /MODULES
    * Remove <options:timesync>, add <timesync enable="no" master="no"> ...and document it in the example conf
    * Now syncs with the master every 10 mins
    * Wtf, ive found the source of the drift, it adds the old delta to the new!
    * Improve this to show time with and without delta, without the user having to work it out in their head
    * Optimise caps loop making it real neat. Thx Brain.
    * Change wording of 404 numeric to reflect that it's minlen or more.
    * Change the numeric text to match the new configuration. Tidyup comments and DEBUG.
    * Add capsmap to m_blockcaps in example.conf
    * Add support for MAP of chars considered to be CAPS to config for better control.
    * Seems netsplit.de changed hosts to echo940.server4you.de., Add this to the default securelist config.
    * Add third parameter to OnUserQuit (quit reason for opers only) - bump api version, Add SetOperQuit and GetOperQuit methods to userrec, Add OPERQUIT command to protocol - bump protocol version, All this is to properly allow hidebans etc to work properly
    * Fixed hidebans behavior to not always be on as well; there are probably other issues here, see #243
    * Someone is getting slapped for this; the new hidesplits/hidebans behavior doesn't actually check if those options are enabled.
    * Fix /who thing that dmb spotted

1.1.3

    *  Make /stats P show 'secs' after idle times
    * cleanup indentation
    * Remove stray "Notice:" - text only change
    * Fix minor bug, number of users listing doesnt decrement if a user quits while they are in the middle of listing
    * Fix malformed notice
    * Document OnBufferFlushed
    * Add safelist:maxlisters which prevents more than x number of people doing a LIST at the same time., (as i've just noticed, 500 bots all doing LIST at once can severely lag your ircd)
    * Added OnBufferFlush, improved m_safelist, no longer works on a timer but works on the writeability state of each user who is listing., Seems to test fine with 500 reet bots all listing at once. (doesnt lock up the ircd while listing them all any more, either, just lags a small amount)
    * Fixed a crash with a malformed server-to-server NICK command, thanks dmb
    * Bump protocol revision
    * This now makes RemoveStatus remove *everything* as pointed out by jilles. This will prevent simplemodes desyncs.
    * Move FJOIN propogation above the FMODEs generated by winning an FJOIN
    * new FMODE behaviour:, (1) IF THEIRTS <= OURTS, ACCEPT MODE AND PASS ON, (2) If THEIRTS > OURTS, drop the mode and DONT pass on.
    * Fix the operator== for irc::string -> std::string to be const&, the lack of const was stopping them being used in certain situations, this saves us a bunch of assign()
    * Change mask variable to irc::string to allow for case insensitive removal/addition
    * /who tidyup - needs QA'ing
    * Apply <options:hidewhois> in /who results (bug #239); someone should clean up /who soon, perhaps i'll do it
    * compile error fix ahoy
    * Take away a uline specific check in fmode, which might explain why desyncs between servers only occur when theres a ulined server about., QA please test this with at least 2 insps and services and server syncs/splits, check for channel mode desyncs.
    * Change options:notimesync to options:timesync -> reverse its meaning and default it to off
    * Update example conf - this needs documenting on the wiki (previous commit)
    * option to allow announce of invites to channel (similar to unreal)
    * Patch by satmd to support using IP addresses with cgiirc
    * Fixes for snotice quit reasons
    * Fix on-rehash reloading of the lists... and why were we tokenizing the string on every connect/operup, when we should do it once on rehash? This makes it a ton faster.
    * Fix for bug #237
    * This properly fixes options:hidebans and options:hidesplits by providing the facility to have two different quit messages for a user, one an oper sees and one a normal user sees., There are default values on the oper_quit parameters through the entire source so that if oper_quit parameter is not given it defaults to the same as the user_quit

1.1.2

    *  Change oper notice into a numeric to the user:, %s :%s has a circular redirect (+L). Not following redirection to %s.
    * Change openssl autoprompting to use pkg-config, so if you dont *have* pkg-config it wont prompt you to symlink openssl at all
    * Add xchat :IDENTIFY workaround to example conf
    * Allow for the cgiirc module to change the users host if it doesnt resolve
    * Add cgi:irc to the example conf, it was omitted for some reason
    * Minor tweak, return of OnUserRegister discarded in cmd_user (should not have effected anything, but bad style)
    * Fix m_services_account logout by allowing meta with empty data field. Tracker: bug #226
    * Rebuild 005 on rehash. Tracker: bug #234
    * Do not perform redirect on chained channel links, tell user channel is full and SNOTICE the offending channel(s).
    * Fix for small display issue, when both ssl modules are loaded, both output a 'is ssl' numeric for ssl users in whois., This fix ensures that only an ssl module thats listening on client ports will output the whois. Theres no need to bind openssl and gnutls both to client ports, however, some people use openssl for server ports and gnutls for client ports, or vice versa.
    * Add svshold to example conf.
    * Improve wording on ircumsgprefix.
    * Fixes and optimizations
    * Ensure that simplemodes are sent first (jilles requested this)
    * Bans are bursted using a large string buffer to save on write() calls, so the way we handle clamping the ban sending to 350 chars is slightly different than the changes just made to modestacker. works , he same though.
    * Add max line length value to modestacker, so that it can clamp the max length of a composed line to a given size. Defaults to 350 which should be safe with fmode and mode with a server name
    * Added sepstream::GetRemaining()
    * New and improved /INFO (now with meaty chunks)
    * No need to .c_str() the quitmsg, it takes const std::string&
    * Put back quit prefix that got lost in last fix.
    * Addition of feature request outlined in bug #195, suggested by Bricker
    * Too many small tweaks to list. Most notably tidy up info, note that /trace is crap, and improve efficiency of cmd_nick
    * When a users nick is overruled, remove their nickname-sent bit from userrec::registered so they must send a nick again.
    * Better handling of nickname overruling
    * 1) Fix for nickname overruled with new cullList stuff -- we have to change their nick, its not safe to quit them as it messes up the nick hash., 2) Add a mute flag for users, so we can drop commands from users who have been placed on the cullList. This is independent of the actual cullList and can be, used as a general mute flag e.g. by shun modules., 3) Fix /kill to also not quit the user immediately, remove need for CMD_USER_DELETED return anywhere in the code.
    * Fix for crashbugs when quitting users as experienced by satmd, SiliconAI and others., QA: Please test combinations of /quit, /kill, and friends.
    * Few more cleanups (no need to update, shouldn't have changed any behaviour..)
    * Stop this using some global ServerInstance (where's that even defined? :|) and do some slight cleanups
    * Account for bearbots whos CTCP TIME misses the ending \1 from the CTCP
    * Eliminate some string copies, tidy some code, and reverse some short-circuit checks, (Expensive(x) && Cheap(y)) -> (Cheap(y) && Expensive(x))
    * Change bytes-used counter for commands (used by /stats m) as in excessive use (see BARAFRANCA!) they can wrap around past 2 million commands., (YES REALLY. THEY ISSUED > 2 MILLION PRIVMSGS)
    * Change /msg $* to have the correct source the same way /notice $* does
    * Remove redundant debug
    * Drop the invalid command generated by the bearbot CTCP TIME check
    * Check CTCP TIME on bearbots
    * Get rid of a compile warning. We should remember to use time_t for time variables and not unsigned int.
    * Yes, we know how to spell voluntary (and involuntary!) :<
    * Force ipv4 lookups here - cgiirc doesnt support ipv6 anyway.
    * Fixed <link:bind> which was only working on an ipv6 connection. Fixes bug #213 reported by owine
    * Change around the order of InspIRCd::Cleanup(), as per bug #212
    * I'm not sure OnPostOper is called for remote opering anyway, but to be sure, dont execute it for remote users in this module (just wastes cpu time)
    * Only apply force join to local clients
    * Fix odd warnings from propolice., Obviously this isnt valid for it: char b[MAXBUF]; getcwd(b, MAXBUF)..... it demands that b be 1024 in length. odd.
    * Add m_conn_join, allows force join of a user to one or more channels on connect (ick)., Tidy up m_operjoin a little.
    * Bump API version (chanrec::setby increased from NICKMAX to 12
    * Allow for nick!user@host in TOPIC information., Note that this adds another <options> tag value, 'hostintopic'. (defaults to yes)

1.1.1

    *  Tweak hostname matching in HostMatchesEveryone to compensate for being able to match all 3 of host and ip and CIDR
    * Use userrec::MakeHost(), not strlcpy/strlcat!
    * Fix that equal sign '=' inside double quotes don't blow up confcheck.
    * Merge patch for WEBIRC command from satmd
    * Improve +f kick message:, [17:25] --- You have been kicked from #test by test2.chatspike.net (Channel flood triggered (limit is 4 lines in 20 secs))
    * Make some stuff configurable that hasnt been and should be., <securelist waittime="n">: number of seconds a user must wait before LIST, <safelist throttle="n">: Number of seconds a user must wait between each LIST command
    * timermanager never had a ServerInstance. Give it one so we can use InspIRCd::Time() rather than time()
    * Remove dup code by calling TickTimers in a loop
    * DELETE() on the timergroup in DelTimer (small memory leak)
    * Finally make m_antibottler module work at all on 1.1
    * When opening a file to read, check its not a directory with stat()
    * Change the constructor of ModeParser, make it just a tiny bit prettier., Rather than calling AddMode like 25 times, put them in a nice looking array and call it in a loop, doesnt look as craqy (although its exactly the same thing with makeup on)
    * Increment version and give codename -- release is planned for sunday.
    * Add and properly test the ability for an InspTimer to DelTimer itself from within its own Tick method., This wasnt supported before and would corrupt the iterator in the TickTimers() method of TimerManager., Non the less, peaveys new (perfectly sensible) fix broke it because i didnt document the caveat about DelTimer() , This FIXES m_ident and possibly some other stuff.
    * Catch the ModuleException thrown when AddIOHook fails, so that we can make a port hook failure nonfatal.
    * Check for ::ffff:x.x.x.x ips in user resolver, and if we see one initiate an ipv4 PTR lookup rather than ipv6
    * "is now your hidden host" -> "is now your displayed host". Wording fits better when uncloaking
    * Try without deletes that it done anyway on close of InspSocket's socket.
    * Consider your crackpipes confiscated, there was some right dailywtf-worthy stuff in here.
    * satmd tell me if this works, if ive got the wrong octet i need to change a bit of logic ops
    * Remember: C++ only works if you type the right method names and not ones that dont exist.
    * Ident fixes, removal of some old craq we dont use, cgiirc optimizations and tidyups
    * Add InvalidateCache() calls and fix a ton of ass-u-me :/
    * Make this work when we have both ipv6 and ipv4 connections at once
    * To be more specific, specify rpath() macro here
    * Document bind value
    * Added support for explicitly binding an outbound connection to an ip. Will be used by spanningtree.
    * If a user connects over 4in6 (YUCK) give them an ipv4 cloak
    * Fix for bug #205 reported by nenolod (modules that erroneously check remote users to apply privmsg/notice restrictions)
    * Extra safety checks while exchanging certs, just in case
    * Remove debug output that was only useful to me
    * Remove ::ffff: 4in6 craq from documentation. Show that its still usable, but not neccessary.
    * Change the wording of configure, to indicate that building as ipv6 is no longer an absolute "IPV6 ONLY" option
    * Fix using wrong var to determine if host is ipv6 or ipv4, resulting in wrong cloak algorithm being picked for ipv6 users
    * And fix the bugs that show up when we try and build it on ipv6
    * Fix to work with mixed protocol environment
    * Make use of new AAAA->A resolving
    * Stuff to allow resolving of AAAA record, and on failure try A record
    * Fix resolving of security ips to allow for ipv4 resolution when built for ipv6
    * When brain adds code into a constructor to fix a destructor crash, make sure brain adds code to all three constructors, not just one.
    * Fix to stop failed sockets crashing in destructor
    * Fixes to make this module build with the slightly changed inspsocket (insp_sockaddr addy is gone)
    * Fixes to allow inspsocket connects to be protocol transparent
    * In InspSocket destructor remove any pending timers since the object is now gone. This also fixes bug #202 : m_ident crash.
    * DNS lookups now work for users., Todo: Upon receiving 'no resource records found' on doing AAAA or PTR6, immediately re-insert a request looking for A or PTR., someone remind me about this when i have time., Also todo: inspsocket connects.
    * Fix for bug #203 : nicknames not invalidated stil.
    * Change some stuff here to bind INADDR_ANY
    * Stuff to make dns work protocol-independent
    * Fix for allowing dns lookups to work in mixed protocol mode
    * Smart tricks to allow for ipv4 and ipv6 bindings on client ports.
    * Pass sizeof(sockaddr) to bind now. Passing the size of a pointer really isnt a smart idea
    * Fix ipv4 bindings for ipv4 only servers
    * Move quitting of clients to a central Cull List, and do quitting outside userrec and in main loop.
    * Make checkconf handle end of line comments.
    * configure was linking a nonexistant header with ssl that has been in include/ for awhile now
    * Fix crash in ReportConfigError when done via SIGHUP.
    * peaveys checkconf finds its first victim, an extra quote in helpop-full.
    * Add a general xml syntax checker for config files. It parses includes and warns of general syntax mistakes. ./inspircd checkconf to run.
    * We already have the numeric durations, why the fuck was I trying to get them again
    * Set a few defaults for <connect> tag.
    * Call events properly on KLINE, GLINE and ZLINE for DNSBL module. This fixes bans not propegating.
    * Better error reporting of failures to read certs in gnutls by calling gnutls_strerror(). Man this api is so much nicer than the ugly one in ssl
    * Better logging for openssl, using SSL_print_error_cb() which calls a callback for error output (the default of outputting to stdout sucks)
    * On ipv6 servers, if a user connects with 4in6 (0::ffff:...) then attempt a dnsbl lookup of their ip (the bit after the 0::ffff
    * Update the date here, remove the 'updated by' list, use SVN for that + there's a lot of people now
    * Fingerprint really shouldn't be in the example oper block by default; most people don't use it, and quite a few seem to leave it in
    * Mention that +z means SSL only in the 489, thanks dmb
    * Don't set a user's oper host unless they are using a correct opertype - we don't oper them, so don't set the host either
    * Fixed a bug in m_connflood that caused the bootwait value to have no effect
    * Minor OS X patch, per BuildSmart for 10.3.x users
    * Add <securelist:exception> to allow certain masks to get around securelist. By default add two lines to the config which allow searchirc and netsplit.de., (bwahaha)
    * Change the way versions are displayed by connect and /version so that its more friendly to searchirc's spider
    * New patch from BuildSmart for OS X support, not broken like the last one

1.1.0

    *  Remove -O2, it seems to break tons of stuff with no clue how it did it
    * ipv6 connect tweaks, to memcpy() sin6_addr's rather than assigning with =.
    * Tweaks to backwards memcpy's that dont actually do anything, causing ipv6 address bindings to potentially be bound to random ips.
    * Support both forms of ISON as clients seem to send one and the RFC mandates another:, ISON nick1 nick2 nick3,, or, ISON :nick1 nick2 nick3., Interestingly this means we now even support: ISON nick1 nick2 :nick3 nick4
    * Documentation change to indicate errno is valid on return from the constructor -- dont bother to svn up for this if youre testing right now
    * the close() in its Close method always changed errno to "Endpoint is not connected" on error, so now we make a copy.
    * Add strerror(errno) to port bind failure on TreeSocket
    * If no topic specified, give index help, thanks Robby
    * Merge spellig-mistaks patch from dmb
    * Also remove the references to the commands I removed (which don't exist anymore)
    * Opertype in /check is now properly spacified
    * Add message about how building with debug makes huuuuuuuuuuuuuuge slower executables
    * Added 'make debug' which does 'make all' with -g rather than -O2 -g1., To correct your config for this new feature, ./configure -modupdate.
    * Fix this so that it works with outbound connects again., Also fix it to cope with EAGAIN properly in handshake negotiation without returning 1 from Write() (when nothing was actually written at the upper layer of the transport!)
    * Fix broken openssl outbound connects., A record needs to be kept of if this session was initially outbound or inbound, so we know if we need to re-call SSL_connect or SSL_accept on handshake failure,, we also need to have two SSL_CTX's, one initialized as a client context and one as a server context (this is EW, but i guess its just how openssl does stuff)
    * Added errno to the epoll failure message for more detail
    * OnExtendedMode was removed in 1.0, the function names here were incorrect.
    * Potential desync on "nick collision at same time as fjoin" fix
    * fix so that OnWhois is triggered for remote whois, and remove smelly bold chars from m_botmode's numeric output.
    * Correctly allow all supporting versions of PostgreSQL to use secure string escaping.
    * The mob has spoken: PQescapeStringConn is used for pgsql >= 8.1.4
    * Fix for bug #187
    * For the filter GLINE action, ban *@IP, so that they cant change their ident and it'll still get unresolved hosts
    * Cut out some code duplication by using the existing exception framework in here, and throw an exception if the user tries to change the servername at runtime, (this is currently the only value we dont allow changing at runtime, maybe there are more to be found which are obviously unsafe to change)
    * The /id command for nicks in atheme should have the parameters $2- not $2, because they accept /id nick pass
    * Add m_banredirect to example config
    * Example aliases files., Someone like w00t who has more knowledge of atheme should update atheme.conf.example, as theyre currently just a copy of the ones for ircservices right now. Theres a cookie in it for the first person , to make the atheme ones correct
    * Fix endless loop on m_dnsbl dns hit.
    * Trivial fix, extra >s noted by owine
    * Add check for openssl >= 0.9.7, and fix for if the library cant be found at all
    * Fix broken function vcheck() that checks one dot-delimited version string against another
    * Add extra macro pkgconfversion("packagename", "version");, dies if the version you specify isnt installed., Also added to m_sqlite3: pkgconfversion("sqlite3", "3.3"), Note: this will die at configuration time, not compilation time.
    * Keep gcc from whining when there is NOT an error (see the comments added)
    * Fix library detection flags (bad define put into the ldflags), Change default flags from "-g" to "-O2 -g1". This takes us down from a build size of 350mb+ to 35mb, and still gives us the ability to backtrace!
    * Note that we dont allow upgrades to version 3 of GPL, just to re-iterate.
    * Fix bad duplication of filters containing spaces across the network., (filters containing spaces arent strictly allowed because they cant be defined via the /filter command, however we do define them in the config on chatspike so its worth supporting them., This will now translate space to \7 in the metadata, and translate it back at the receiving end.
    * Fixed (rewrote) m_http_client's URL parsing, it is now more flexible and.. actually works.
    * Fix the commandline stuff up to actually work!, Also, fix 'locate' detection of files when pkg-config cant find them.
    * If we're not in interactive mode, then we dont prompt interactively for the value., We look for the configuration item in the commandline, --$package-includes="" or --$package-libs="" and use that., If its not defined, we die() with a message to specify the path using that commandline item. This also applies to ./configure -modupdate.
    * Additional feature, pass -DVERSION_PKGCONFMODNAME="xxx" to modules that use the pkgconfig detection macros (the modules can use this if they like), Extra tweak/fix: Allow for configure cache values containing the = symbol
    * Add caching of all detected values
    * Proritise cached value above a search
    * Fixes to make ./configure prompt for libs if all else fails (discussed earlier with w00t)., The values prompted for are cached, so if you specify them then ./configure -update wont prompt again for them
    * Apply fixes for buffering of headers, and a test module both by psychon