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

ChangeLog/1.0 Beta

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.0 RC2

    * Added 'a' flag to STATS c which indicates autoconnect state
    * Removed tab characters from example conf
    * Added oper-only-stats option
    * Added 005 stuff after VERSION
    * m_park.cpp fixes (and anything else using UserToPseudo and PesudoToUser)
    * Used mkstemp trick similar to anope and unreal which copies the .so's to temp names under /tmp before loading them, using the current process's PID. This allows for module developers to *safely* rebuild a module (NOT the core) without a segfault while the ircd is up.
    * Aligned % fields in map
    * Changed printf specifiers in map to right-align digits
    * Added User Counts to /map
    * Nicer mode character loop
    * Revise some serious craq++ in AddBan
    * Fixed to not crash on /PARK (still more to test)
    * Added CASEMAPPING and CHARSET to ISUPPORT (005)
    * GCC 4.1 is more strict about extra qualification on members
    * Updated example configuration file
    * Fixes to typos and change to return by reference on GetClass
    * Changes to how classes are looked up (connects slightly faster) and fix for case sensitive passwords
    * Removed cvsignores, set svn:ignore property using -F .cvsignore
    * Added specific errors relating to invalid link tags (requested by Strike)
    * Tidyup of K&R style indenting, comments in silly places, and pointless curly braces around non-blocks
    * Changed to QueryType rather than short int for query types
    * Removed crappy linked list stuff and replaced with faster std::map
    * Improving niceness of DNS code, i WILL make this readable!, Changed a ton of ugly firedns #define's to enums
    * Minor cosmetic fault pointed out by Trystan
    * Blockcolor now blocks reverse and other mirc sillies
    * Ommitting \r and \n from debug display of outbound lines
    * Now uses two AES contexts, an 'in' context and an 'out' context
    * CBC encryption type in AES rather than ECB
    * Changed background stuff to occur more often
    * Made socket.cpp flush its write buffer more often (fixes odd lag on server to server connections)
    * Fixed broken checks to allow overriding
    * Optimized out some more redundant va_args voodoo
    * Double copies due to bad chop()
    * More removal of formatting where its not neccessary x("%s",str) == bad!
    * Attempt to cut out unneccessary printf() va_args voodoo (ugleh)
    * Cached ISUPPORT
    * Added output of error if file descriptor given to AddFd is > MAX_DESCRIPTORS
    * Changed to MAX_DESCRIPTORS
    * Changed 65535 to MAX_DESCRIPTORS calculated at configure-time
    * *FIX* 'No more connections allowed' was comparing against the network-wide limit rather than the local limit (ICK!)
    * Added extra checking to socketengine to refuse connections after we reach the max
    * Added counters for MAX_DESCRIPTORS etc which allows the socket engine to refuse new fd's once you hit the OS limit
    * Initial revision of /devoice.
    * Removed an unused OnUserConnect() method
    * Changed some little bits and bobs here
    * Fixed an extremely n00bish mistake involving referencing a global copy of ServerEngine when we now use one local to class InspIRCd, (everyone point and laugh at Brain)
    * Optimizing to not use so much cpu with high user loads
    * Made 'fake direction' less loud, removed 'invalid source'
    * Added SetSignals()
    * Signal handlers were not being set when -nofork was enabled
    * Changed some other stuff that used the old vector/deque style commandlist
    * Changed from std::map to hash_map
    * Command search function now uses std::map, should be faster (i hope)
    * Removed useless isnick() checks in Give* and Take*, in the name of tidiness
    * Tidyups to mainloop, why were we using isnick() to check if a user was registered?
    * New system for client exits using CullList seems stable, needs testing
    * Changes to the way clients are exited during mainloop - MAY BE UNSTABLE USE WITH CAUTION
    * Check on upper bounds of base64 decode
    * Added checking for bad base64 decodes
    * Updated chanfilter to use irc::string
    * Modified to omit unimplemented module methods
    * Fixed and implemented /modules debug <glob>
    * Added /modules debug
    * Added global_implementation array, bypasses calls which *NO* modules are currently implementing
    * Fixed missing I_On005Numeric
    * New 'Implements' system
    * Added support for implementation hooks
    * Adding hook type checking to event calls to speed them up
    * Allow halfop to dehalfop themselves

1.0 RC1

    *  Improved efficiency of chanrec constructor (removed strcpys)
    * Changed two fields in ConnectClass to strings, moved constructor stuff to init-list
    * Added 'build complete' message
    * Somehow, the examples had gotten into the conf/ dir, they belong in docs/
    * Improved m_alias to only capture complete commands and rewrite them (bug #92 as reported by strike)
    * Added more verbose error output during link
    * Added CAPAB checking to prevent some obvious n00biness that may occur
    * Initial revision of CBAN. It doesn't do anything useful just yet.
    * LD_LIBRARY_PATH setting is no longer required by core or m_sql.so
    * Changed $CompileFlags to seperate $CompileFlags and $LinkerFlags
    * Added -Wl,--rpath -Wl,LIBDIR to linking parameters to allow users to directly start the binary without the launcher, if they wish
    * Improved makefile dependency lists
    * Removed some redundant code that was commented out
    * Added extra sanity check in squit to make sure REMOTE Servers dont try and squit a server from itself!
    * Added Socket = NULL for local server class to prevent it being 'selectable' by squit
    * Made linking more nazi, will drop connections that send bad commands
    * Fixed to not allow :Abc NICK Abc, where the case of the old and new nick are *identical*
    * Added extra diagnostic messages during connect, if connect fails
    * Added stricter checking for encryption on connect, if enabled
    * Fixed case-change nicks not being propogated
    * Allow case changes in nick w00t -> w00T
    * Added extra key length checks, documented encryption in example conf
    * Added AES encryption to spanningtree links
    * Added IOHookModule stuff to allow for different modules to hook different ports
    * Fixed spanningtree to not allow malformed conf tags (missing/empty values), Added m_spanningtree, m_swhois and some clarifications to example conf
    * Split all commands into seperate files and redid command system to take classes, not function pointers (function pointers suck ass)
    * Moved serverstats* stats to InspIRCd class
    * Moved SocketEngine* SE into InspIRCd class
    * Moved mode stuff into modeparser
    * Moved command_parse functions into class CommandParser
    * Optimized away a memset made it potentially 10x faster
    * Fixed BUG, If an opers SendQ exceeded, it would bring down the server!
    * Added 'local users' vector
    * Full removal of inspircd_util.h
    * Improved pointer voodoo in chanmodes(), many less strlcats
    * Made apply_lines apply perm lines again
    * Added documentation for CullItem and CullList
    * Updated so that netsplits use the cull_list.
    * Added CullList class
    * Added Server::GetVersion()
    * Added new docs for class InspIRCd and globals.h etc
    * Removed depreciated docs
    * moved declarations of typedefs for user_hash and chan_hash etc to typedefs.h
    * Fixed a couple of missing \n's at request of Special
    * optimized a ton of strcmps down to an integer comparison!
    * Optimized accept() stuff to eliminate loop, idea while talking to w00t
    * Got rid of the evil loopy horrid mess in dnsqueue.cpp (singlethreaded dns lookups)
    * Made dnsqueue clean up its sockets from the socketengine properly
    * Prevented zlines from being allowed with a username/ident in them
    * Modified chlist() and whois to allow output of multi line channel membership list (!)
    * Made MAXCHANS growable for opers/ulines
    * Removed some logging that can cause excessively huge logs when select() is being used
    * Removed some remnants from mesh linking
    * Moved some stuff out to userprocess.cpp
    * Efficiency suggestion by w00t, faster processing of module sockets at the expense of a bit of ram
    * New version doesnt yield() any more
    * Made socket loop flush a users buffer if they still remain after processing each line
    * Changed how background processing works, now once per second repeating until nothing left to do
    * Tied in DNS to SocketEngine

1.0 Beta 6

    * Added SPANNING TREE LINKING support, allowing for STABLE FAST and EFFICIENT linking of InspIRCd servers (m_spanningtree.so)
    * Added m_swhois module, allows setting of arbitary descriptions on users
    * Added a 'Base' installation path to allow installing of the launcher (handy)
    * Added support for the new <include:file> system.
    * Fixed Bug causing the base directory to always overwrite the other dirs
    * Added Base Directory Path to the Path list at the end of ./configure
    * Added Library Path to the path list at the end of ./configure
    * Improved layout
    * Added -lstdc++ for GCC 4 support
    * Removed connection.cpp and servers.cpp
    * Removed static meshed linking from core
    * Fixed code so that it will still work with kernel 2.8, 3.0, 3.2... whoops.
    * Added a chomp() just to be sure on kernel 2.6 check
    * Fix for bug #72 reported by Hal9000
    * Configuration errors now go to the error log
    * Updated to allow users to specify their compiler by hand
    * Added warning about gcc2
    * A lot more of the core consts are now configurable at compile time
    * Fixed removal of mesh linking from core
    * Added cvsignores
    * Added Metadata API (for transferring extensibles over a network transparent to the protocol)
    * GCC4.0 warning fixes
    * Added BoolSet utility class
    * Removed cross-server mesh stuff
    * Fixed missing constructor on class connection
    * Tons of DNS debugging and stability fixes
    * Added experimental multi-threaded DNS using pthreads!
    * Added notice-to-servermask
    * Added ability to output 'is an oper but i dont know what type' in WHOIS
    * Added clever code to propogate module's special commands (SAJOIN, KNOCK etc) transparently!
    * Added opaque protocol functions
    * Highly optimized userrec saving 1.5k per user
    * Added tons of extra documentation to Module class
    * Added OnCleanup function
    * Added OnChangeHost
    * Added OnChangeName
    * Added OnWallops
    * Removed old OnUserSync and OnChannelSync
    * Added Server::RehashServer
    * Added onrehash parameter
    * Added OnGetServerDescription (mainly for link modules)
    * Added OnPostLocalTopic
    * Added OnUserInvite
    * Added remote kill
    * Added opertype to OnOper and added OnMode function
    * Added reason to OnUserQuit
    * Added OnUserMessage and OnUserNotice (why have these been missing so long?)
    * Removed mesh module functions
    * Added OnLoadModule and OnUnloadModule (OnLoadModule was not triggering)
    * Tidied up socket engine code, moved into a specialized header full of #defines
    * Fixed to compensate for ~ in ident length
    * Optimized xline system (much faster, more efficient, less cpu usage)
    * Added insane tag (prevents wide gline etc)
    * Now shows remote quits differently
    * Fixed RFC-non-complaince of TOPIC and NAMES with +s channel (As reported by Ghost)
    * Fixed LUSERS and MAP to display 'dummy' data when no linking module is loaded
    * Changed behaviour of module API to pass Server* to the constructor, rather than have to create one (makes more sense)
    * DNS safety and logging
    * Fixed 'fake direction' messages being put out by user->registered = 7 being set too early
    * Removed the MESHED 005 numeric token
    * Changed epoll delay
    * Allowed ulined servers to by pass all oper permissions checking
    * Added stricter checking for listening sockets
    * Fixed compile time glitches in new code, removed obselete variables
    * Added ability for ulined servers to set any arbitary channel mode (even from outside the channel)
    * Added ability to put command named * into a class to make it cover all
    * Fixed Case sensitivity Bug (BugTrack #88) in m_chanfilter.cpp
    * Changed m_chghost.cpp to silently set hosts if uline sets it

1.0 Beta 5

    * Added windows comments to module section. Added m_denychans. -katsklaw
    * Added 557 numeric (from MS Exchange chat server) to indicate too many results from /WHO
    * RPL_WHOLIMEXCEEDED changed to 523 to match bahamut
    * Added .cvsignore files
    * Added a ton of missing prompts wink.gif
    * Added cvsignore
    * Changed representation of MAXNICK in isnick() to allow for a non-incremented size
    * Fix for bug #70 (only first item working properly)
    * Fixed max channel length
    * Added ability to update the helpop file on rehash (Bug #69)
    * Added denychans module, allows blocking of channels
    * Added parameters to comments
    * Changed so that when the first in the channel gets founder, the +q mode change is sent to keep the client synched (requested by katsklaw)
    * Fixed nicklength perpetually increasing on each run (reported by katsklaw)
    * Fixed to never append double sums
    * Fixed to preserve epoll/select/kqueue choices
    * Operhosts are now optional (in the type tag)
    * Added check to not flush disconnected buffers
    * Added code to not try and increment buffer if wrote 0 chars
    * Added extra code to notify mainloop when the iterator has been mangled (e.g. by netsplit quits)
    * Added more immediate disconnect when a server isnt routable any more
    * Added ping checks for server links (experimental)
    * Added stuff for /map improvements
    * Autoconnection of servers added
    * Changed to not show remote quits (we don't show remote connects after all)
    * Fixed compile glitch on 3.4
    * Fixed inbound server errors
    * Fixed to erase .so and binaries before trying to overwrite them so mmap doesnt mess up and segfault any running copy (thanks jilles)
    * Fixed to flush buffers when connection closed
    * Fixed to not autoconnect servers we already have!
    * Nonblocking connect() for outbound server links (why was this blocking anyway)
    * Changed /map to show authenticating servers with a *similar to hybrid
    * Now clears the autoconns map on rehash
    * Sum not being propogated properly fix
    * Example conf update from katsklaw
    * Buffer size limits (hard coded to 1mb for now, will allow to raise in config later)
    * Fixed bug where when a server split all other servers would stop responding
    * Fixed the server names reported in /stats l
    * Output buffering on server connections
    * Removed m_globops setting +g automatically on oper, m_opermodes.so can do this now
    * Tidied up some socket stuff into userrec
    * Changed revision id's to std::string
    * Added m_opermodes.cpp, allows addition and removal of modes on oper up
    * Added COMMANDS command (yes, really)
    * Added detail to /COMMANDS
    * Changed cygwin warning
    * Changed to fix minor typo in dynamic-build makefile
    * Edited to properly detect strlcpy on netbsd (different declaration in string.h didn't match regexp)
    * Fixed /COMMANDS
    * Fixed case-sensitivity typo in module name for Addcommand
    * Fixed crappy const stuff
    * Modified to detect kqueue on netbsd
    * Removed stupid consts
    * Updated helpop docs
    * Added eg++ stuff
    * CC fixes
    * Changed to use gmake on ALL bsd variants
    * Kill fixes
    * Warning message for openbsd users that try and use gcc
    * Added -lresolv for solaris
    * Added -lrt for solaris
    * Bzero removed for compatibility with solaris 10
    * Fix to minor typo in solaris stuff
    * Fixes for solaris
    * Fixes to bad filehandle
    * Removed unncessary sched_yield calls
    * Updated for solaris -lsocket / -lnsl
    * Added configurable SOMAXCONN size
    * Changed epoll_wait timeout
    * Default epoll/kqueue to yes
    * Added: Epoll support
    * Kqueue and epoll default to enabled now
    * Made prompts clearer
    * Mass-connect speedups, also now uses less processor time
    * Moved a load of servers-only stuff into serverrec out of the way of userrec
    * Shrunk some datatypes
    * Removed __single_client_alloc again because gcc devs were smoking crack and removed it
    * Added hashcomp.cpp, seperates out the stl hash_map stuff
    * Added a few simple output lines (similar to gnu autoconf so people know what's happening)
    * Added better detection of strlcpy that doesn't involve compiling a test program (faster)
    * Added detection for kqueue, so if your BSD system doesn't have it, the configure doesnt ask you smile.gif
    * Added docs for hashcomp
    * Added idea from ircu: /invite with too few params shows the channels youve been invited to but have not yet joined
    * Added irc::string
    * Specified namespace std in *all*files
    * Fixed typo in die tag
    * GCC 3.4/4.0 fixes
    * Made 'make clean' make cleaner :-P
    * Made modules use irc::string where they were using strcasecmp()
    * Moved StrHashComp and InAddr_HashComp into the irc:: namespace
    * Moved a ton of functions into helperfuncs.h to speed up recompiles
    * Updated strhashcomp to use irc::string internally rather than a combination of strlower and strcasecmp
    * Updated to keep lowermap const within hashcomp.cpp
    * Added 'uniqueness sums': http://www.inspircd.org/wiki/InspIRCd_Serv...Uniqueness_Sums
    * Added RFCs
    * Updated example conf to list all non-extra modules with a description of what they do.
    * Modules now commented out by default, admin must uncomment them to use them. Suggested by lag``
    * Added Server::GetServerDescription() at request of Craig
    * Re-added the dot graphs again
    * Added docs for new smaller memory footprint classes
    * Changed the type of struct whowas records are stored in (no need to waste a big heavy userrec)
    * Customizable by-byte-size recvq stuff
    * Documented new recvq and sendq stuff
    * Fixed wrong number being shown when sendq exceeded
    * Honking great memory leak fixed that's been there since the early alphas :/
    * Optimized some static structs
    * Structure optimizations, changed a lot of bools into binary bitmasks
    * Updated default sendq size to 256k
    * Added sendq stuff, see example config
    * Fixed weird bug where on mass join/part flood, the channel would be purged before it was actually empty due to its counters being screwed up
    * Added Cache support for the KQueue Question
    * Fixed Optimisations not being set.
    * Added ability to accept() more pending sockets at once
    * Added socket engine to version response
    * Fixed crash when socket reads 0 whilst in kqueue mode
    * Fixed kqueue setting not being changed
    * Made ping check loop less regular in kqueue version
    * Changed pool size from 64 to 1024
    * Fixed some of Brains bastardization of configure biggrin.gif
    * Fixed Craig's buggy configure :p
    * Fixes to way allocations are handled
    * Hit dns with spork. Repeat until crispy.
    * Modified to rm the .o files from the modules dir
    * Modified to use -pipe
    * New way of building modules, this is supposedly more portable
    * Now secures binaries with 0700 perms as theyre installed
    * Optimised strlower (much faster, uses a lookup table)
    * Optimized userlist() (a lot faster with many users online)
    * Fixed bug where another users buffer could end up in the buffer of an exiting client before they quit
    * /WHOIS as oper now shows real ip as well as real host
    * Added USERIP numeric 005 output
    * Added m_userip.cpp requested by Selphie
    * Changed the final bunch of udp_*vars to server_*/tcp_*
    * Fixed ircservices sending PING
    * Changed to fully dynamic core (should be faster compile times)
    * Fix naming glitches
    * Fixed remote kills to display the correct source (spotted while talking to aquanight)
    * Fixed to use numeric 340-
    * Renamed core files to all be libIRCD*

1.0 Beta 4

    * Fixed configure bug resulting in osflags being called BEFORE getcache (Making it redundant.)
    * Fixed output of src/modules/Makefile saying it was made by Craig.net :p
    * Updated for test gcc4 compatibility
    * Added support back for ./inspircd
    * Added a line to automatically chmod ./inspircd to 0744 ('Last Second Save!')
    * configure now supports any future .file.inc includes (Yes, i can see into the future)
    * Updated makefile
    * New Perl ./configure
    * Added -Woverloaded-virtual to catch annoying module typos
    * Fixed to always look for the ircd.log within the bin/ dir
    * Fixed to not spool the error log after ./inspircd debug
    * Sanity checks for fd_ref in addclient
    * Fixed 'server ignores me forever if i throttle the server with connections' bug
    * Debugging now allowed from ./inspircd (./inspircd debug)
    * Added LD_LIBRARY_PATH hacks/kludges to the .inspircd.inc file to make it find libmysql in funny situations
    * Added final documentation for inspircd Beta 4
    * Added important note relating to ip addresses in <link:ipaddr>
    * Added schema for m_sqllog.so
    * Added m_sqloper, allows storage of opers within a mysql database
    * Commented new functions
    * Major *MAJOR*optimizations by double-referencing channels to users (never need to scan the entire user hash again except in very rare circumstances)
    * Added channel 'counter', increases speed of quits, parts, kicks
    * commented some users and connections code
    * added remote @*notice
    * Added remote versioning
    * Fixed dicky buffer (due to cleanup the wrong variable was being used)
    * Services speedups for stupid buffered i/o uplinks
    * Added server input buffers (for systems that decide buffering is fun)
    * Major code tidyup (-W)
    * Fixed some flood checking
    * added noticeall
    * Added a Server:: method to send server notices to channels
    * Added explicit oper tracking in a vector of userrec*pointers, optimizes sending out oper notices
    * Fixed: +s and +p channels wouldn't be synched correctly
    * Fixed: +s and +p never show in whois even when you're a member of them
    * Fixed: +s and +p never show in list even if you're a member of them
    * Added Server::FindDescriptor
    * Added and tested fd crossreference table - improves speed a lot, and fixes one of the /STATS chars which has been broken a while
    * Added OnAddBan and OnDelBan module api calls, and fixed glitch which required them in m_timedbans module
    * Added OnOperCompare function to override strcmp in password check for /oper
    * Added module message passing architecture
    * Added a few anti-flood features
    * Updated buffering, faster and more sensible (old code sucks)
    * Added password field
    * Removed some debug output
    * Added /stats T
    * Empty but non-null string passed to is_uline now returns true
    * Added numeric 318 to /WHOIS when nick is not found (end of whois should still be there as its a list response)
    * Added numeric 412 "no text to send"
    * Changed to handle : as a NOP token so that 'assuming' inspircd knows RFC commands wont cause tons of errors
    * Fix to a mode parsing bug (eating wrong version of parameter?)
    * fixed warning of redefinition of RUSAGE_SELF
    * Fix annoying off-by-one error in connection::RecvPacket
    * Added more fault tolerance to server links
    * Added new /stats z
    * Fixes to /who output
    * Added mode 'compression', stops abuse with modes like: +s-s+s-s+s-s
    * Test fixes for /version strings not being set in burst
    * Fixed a reversed strcmp
    * Added 901 numeric - end of modules list
    * Added support for /SQUIT <mask> and checks against /SQUIT *
    * Changed remote kill reason text
    * Fixed strange leading ":" on remote Z/K/G lines
    * Fixed so that quitprefixes are shown in client exit notices
    * Added global oper monitoring through modules and global connect monitoring through modules
    * Fixed weird issues when anope sends large amounts of text at once to the uplink
    * Fixed dodgy poll()
    * Added new and improved GetBuffer function based on research on crappy redhat 7.3
    * Fixed park crash bug #63 reported by ViaraiX
    * Reordered some on-connect network stuff to stop services being so confused
    * Extra safety checks to avoid trying to write() remote users
    * Optimized WriteCommon and WriteCommonExcept
    * Fixed weird line wrapping bug with extremely long lines
    * Made xline notices neater when notifying of unknown connections
    * Fixed WriteCommon not writing to the source user when not on any channels
    * Changed "is now running" message to AFTER port bind checks
    * Added PID reporting and testing before daemonize
    * Changed startup ascii to green. Elphaba would be so proud :p
    * Fix to prevent empty umodes
    * Fixed empty modes from nickserv
    * Optimized modes (removed strlens etc)
    * Fixed empty modes issue that emerged after dodgy code was corrected
    * Fixed services not being informed of force joins
    * Fix to prevent quits being sent onto the network for nonexistent users
    * Added faster wildcard checking routines
    * Fix for bug #62 (replaces only occur once per line in m_censor)
    * m_chanfilter now works on gcc 2.95.x again.
    * m_chanprotect fixed to remove privilages upon kick
    * Fixed WriteChannelWithServ
    * Added module which provides MD5 encryption for oper passwords plus /mkpasswd
    * Added another check for 'NoServerUline' type thing in m_services.
    * Added Check for 'NoServer' when +r ing a channel in m_services.
    * Added m_timedbans (timed bans module for channel ops/halfops)
    * Added m_sql, module to provide sql db access to other modules
    * Added m_sqlauth - allows authorizing of connections via an arbitary mysql table with a username and password field
    * Added m_sqllog - allows you to log your irc information to an sql database
    * Added m_sqloper, allows storage of opers within a mysql database

1.0 Beta 3

    * Added rm -rf src/modules/*.so to make modclean
    * Added module message passing architecture
    * added Module::OnMeshToken
    * added Server::MeshSendAll
    * added Server::MeshSendCommon
    * added Server::MeshSendAllAlive
    * added Server::MeshSendUnicast
    * added Server::MeshSendAllExcept
    * added Server::MeshCheckChan
    * added Server::MeshCheckCommon
    * added Server::FindModule
    * added New docs for API
    * added Module::OnRawMode
    * added Module::OnCheckInvite
    * added Module::OnCheckKey
    * added Module::OnCheckLimit
    * added Module::OnCheckBan
    * added Module::OnStats
    * added Module::OnChangeLocalUserHost
    * added Module::OnChangeLocalUserGECOS
    * added Module::OnLocalTopicChange
    * Added Server::AddGLine
    * Added Server::AddKLine
    * Added Server::AddZLine
    * Added Server::AddQLine
    * Added Server::AddELine
    * Added Server::DelGLine
    * Added Server::DelKLine
    * Added Server::DelZLine
    * Added Server::DelQLine
    * Added Server::DelELine
    * Added Server::Duration
    * Fixed /LUSERS server count
    * Updated documentation of <connect> tags at request of Strike
    * Fixed somebody putting double closing tags, nullifying the effect of allowhalfop in the example conf
    * Removed deprecated class 'packet'
    * Fixed Dns free() errors
    * Added ability for modules to hold users in a 'holding pattern' while they do stuff on connect
    * Added OnUserDisconnect method to modules.* to fix fd leak in m_ident.cpp
    * Added the m_chanfilter module, implements chanmode +g which allows channel specific badwords (YAY)
    * Added Module::OnSendList
    * Added m_conn_lusers.so: Sends /LUSERS on connect
    * Added m_ident.so: nonblocking ident lookup module
    * Fixed /kill bug in m_operlevels (couldnt kill non-opers)
    * Changed m_override: Fine-grained control over what can be overridden by whom
    * Added m_park, user parking to keep ops during a ping timeout (suggested by Ib3N)
    * Fixed limit checking in core and m_redirect.so
    * Added m_setidle, allows opers to set their idle times
    * Added Module::OnBackgroundTimer method, ticks approximately every 5 seconds
    * Yet more optimizations!
    * Added 'server already exists' check for u-type links
    * Fixed bug when ordering a bot to leave using anope services
    * Fixed anope module sending L tokens with 2 instead of 3 params (made code more tolerant instead of changing module)
    * Fixed broken server/server handshake for U-type server links (services)
    * Fixed strhashcomp to forbid matching scandanvian nicks properly eg. [Brain] and {Brain}
    * Fixed lingering (SO_REUSEADDR was being set to 0?)
    * Added Module::OnCheckReady and Module::OnUserRegister
    * Updated /INFO
    * Fixed to allow server to server traffic again (DOH)
    * Added PID reporting and testing before daemonize
    * Changed "is now running" message to AFTER port bind checks
    * Fixed strange join behavior reported by w00t (mirc requesting MODE immediately after JOIN)
    * Fixed bug #47 reported (and suggested fix) by Om
    * Fixed bug where if channel limit was lower than the user count users could still join, but not if it was equal
    * Added Module::OnUserKick and Module::OnUserPreKick
    * Added Server::PseudoToUser and Server::UserToPseudo
    * Made setrlimit a commandline option
    * Removed some old uneeded code
    * Made cmode and chanmode more safe
    * Fixed a double free in dnsqueue.cpp
    * Fixed a resolver issue (weird segfault on gentoo?) in server linking
    * Double 367 numeric glitch fixed
    * Added Server::IsValidHostMask
    * Added getrlimit/setrlimit to set process limits to allow a core dump
    * Removed some logging from wildcard.cpp

1.0 Beta 2

    * Added a lot of small fixes based on feedback of beta 1
    * Fixed compile issues on freebsd due to an icky shellscript expression that failed to detect strlcat
    * Added more advanced m_override.cpp module due to user request (thanks Rob)

1.0 Beta 1

    * Enough optimizations to shake a very big stick at
    * Added asyncronous DNS
    * Changed /MODULES to allow simplified output for non-opers
    * Added module flags to /MODULES for opers
    * Added /UNLOADMODULE
    * Added /LOADMODULE
    * Added resource tracking for modules
    * Added extra log output for oper success and failure
    * Added hostname checking for opers (someone left it out *looks around nonchalantly*)
    * Added module API OnUserPostNick method
    * Added E:Lines and /ELINE (ban exceptions)
    * Security fixes to /MODE and /TOPIC
    * Fixed a cosmetic bug in /WHO
    * Fixed random crashes when user connecting
    * Fixed 'unlikely' crash if nick was changed before dns lookup completed
    * Fixed to actually check the password of linking servers (someone left this out too!)
    * Added error checking to make sure opertypes exist before opering a user!
    * Added 005 handling for modules
    * Added onKill event for modules
    * Added OnModuleLoad event for modules (notified of all module loading)
    * Added <disabled:commands> tag
    * Added ability to disable any command for non-opers
    * Added customizable ping frequency to <connect:allow>
    * Added optional module path to the configuration file
    * Added support for Rehashing to allow adding and removal of modules
    * Added module VersionFlags support
    * Fixed a resolver issue (weird segfault on gentoo?) in server linking
    * Changed the loglevel of some startup failure messages to DEFAULT (were DEBUG)
    * Optimized connects - motd is sent faster
    * InspIRCd now logs value of <die> to the logfile on failure
    * Added new <banlist> tags, allows dynamic banlist sizes on a per channel basis rather than hard coded or network wide
    * Fix for bug #39, m_redirect returning invalid/random value for OnUserPreJoin method of the module class
    * Added code to shutdown listening sockets on exit
    * Added pid file support, and documentation for it
    * Fixed string format vunerability, thanks again to the #ratbox people for helping find it
    * Fixed 005 numeric to only output 13 tokens per line (thanks anfl)
    * Replaced some 005 constants with their configured values
    * Fixed "error in free()" and other bugs going to open sockets
    * Config files read by the ircd are now chmod'ed 0600
    * Fixed parsing error with comments that have tabs before them
    * Added implementation of strlcpy and strlcat for systems that dont have it
    * Fixes to crash when setting the key of a channel youre not a member of
    * Fixed issue where failing modules would bail by calling exit (deprecated) -- modules should now just disable their functionality if they are missing data
    * Added GetVersion() to m_showwhois.cpp
    * m_chanprotect.so fixed to take away +q and +a when the user parts the channel (double DOH)
    * Added 005 numeric handling to most of the modules
    * Added m_hostchange module, our own homebrew implementation of the unreal pay module!
    * Added m_nicklock module, a module which allows opers to lock a user to a nickname until they quit
    * Added m_operlevels, prevents opers designated as above other opers from being killed
    * Fixed Crash bug cause by multiple declarations of 'Srv' in m_randquote.so (Bug #35)
    * Added m_remove by om, uses a force part to replace a kick to thwart auto rejoin
    * Added module to restrict channel creation to opers only (requested by [ed])
    * Added a module at request of [ed] which stops anyone messaging all but opers
    * Added m_silence.so - implementation of /SILENCE command
    * Added ./inspircd (start|stop|restart|rehash|status|cron|Cheese-Sandwich) (Happy luigiman?)
    * Made a slightly nicer method for .Makefile.inc
    * Updated ./configure to reflect the above changes.
    * Removed reference to depricated ./makeconf and updated command to exec to build the daemon.
    * Added dynamic src/modules/Makefile generation, during ./configure the script will search modules for /*$CompileFlags: */ and append any given flags to its g++ line.
    * Startup script modified to kill -9 if a kill -TERM fails.
    * Makefile will ignore if cp fails to copy the binaries.
    * Added <disabled:commands> to the example config (commented out by default!)
    * Documented /LOADMODULE and /UNLOADMODULE plus new /MODULES behaviour
    * New docs to match extra module Version class stuff, etc
    * Added new documentation for ELine class and OnUserPostNick method
    * Added DNS class to documentation