ChangeLog/1.0 Beta
From the makers of InspIRCd.
| 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

















