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 tongue.gif * 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 * 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 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 tongue.gif * 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 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 tag * Added ability to disable any command for non-opers * Added customizable ping frequency to * 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 to the logfile on failure * Added new 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 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 1.0 alpha 12 * Updated ./configure to detect GCC 3.4.x * Added m_showwhois.so - lets opers see when theyre WHOISed * Added m_opermotd.so - Gives opers an opermotd on oper-up * Added m_operjoin.so - Forces opers to join a given channel when they oper * Security audit resulting in more secure and stable code * Added lots of error checking to the configuration parser * InspIRCd now works with BOPM, please see the tutorial on our forums * UMODE issues with SVSMODE finally addressed, working fine again * Services issues addressed and fixed * Added generic error output to the ConfigReader class (ConfigReader::DumpErrors()) * Fixed sys/socket.h error on earlier versions of GCC (2.95.x) * Redone documentation * Fixed mode changes (they actually work now!) * Module passes service names to its uplink now * ChanServ actually sets channel modes rather than the server! * NickServ actually sets umodes rather than the server! * Double-mode-changes no longer occur * User nickname registration tracking with +r works properly again 1.0 Alpha 11 * Added lots of bugfixes * Optimised, works faster, and smoother * Added support for non-mesh servers * Added services support * Implemented example ircservices module (working with ircservices 5) * Added m_services module * Added m_antibottler module * Added m_alias module * Added glines (local and global) * Added klines * Added qlines (local and global) * Added zlines (local and global) 1.0 Alpha 10 * Added server linking support (tcp based mesh link) * Lots of stability fixes * Speed improvements * Optimisations, no longer eats cpu so much * GCC3 and GCC2 support * Even bigger module API * More documentation * m_antibottler, labels bottler bots * m_chghost, gives you a /chghost command * m_cloaking, gives you hostname cloaking and mode +x * m_filter, filters glob patterns on channels and private * m_globops, provides /GLOBOPS and mode +g support * m_helpop, gives /HELPOP and mode +h support * m_sajoin, force-join a user to a channel * m_sapart, force-part a user from a channel * m_samode, force a mode change on a user or channel * m_saquit, force a quit of a client without /kill * m_sethost, allows opers to change their hostmasks * m_setname, allows users to change their name * HELPOP documentation accessible with the helpop module loaded * Split the ircd into many smaller files for faster compiling * Improved configure and makefile phase * Added all oper commands (CONNECT, SQUIT etc) * Added remaining server->server commands such as /MAP * Connection pooling, uses less CPU for the same tasks as before * High-powered server to server link protocol unlike any other ircd 1.0 alpha 9.5 * Added support for /connect (no sync yet!) * Added extra module support and improved api * Improved developer docs, see http://www.inspircd.org/docs/ * FINALLY fixed crash-on-disconnect bug * Fixed many stability bugs * Fixed length and buffer overrun issues that caused user records to become corrupted without crashes (!) 1.0 alpha 9 * Added /WHOWAS * Made ircd cache message of the day in a vector (faster!) * Added support for multiple lines of /NAMES on large channels * Added hostname/ip caching to speed up connects * Added '/stats z' * Added Server class * Added more code to example module demonstrating use of Server class * Added Admin class (holds /admin info for modules) * Added methods to Server class * Added m_cloaking.so module, provides host masking * Added /AWAY * added /ISON command (for mIRC etc basic notify) * Added /USERS stub * Added /SUMMON stub * attemted to fix weird crash on /kill * added pause= value to /die and /restart in config * Attempted to fix closed client sessions not being detected * Added wildcard support * Added channel bans * Changed user and channel structs to classes (finally) * Fixed parameter error in QUIT code (was showing junk chars on BSD) * fixed some ugly pointer bugs (thanks dblack and a|KK|y!) * Added /INVITE command and relevent structures * Added CONNECT ALLOW and CONNECT DENY config tags * Added PASS command * Fixed: /LUSERS cant count :P * added /TRACE command * Implemented channel mode +m * Added channel modes, +k, +l, +i, +m etc * Added user and channel modes +i, +p, +s * Implemented usermode +s * Fixed dodgy mode glitches (the ones Craig loves to play with, awww) * Added code to tidy up bans (e.g. max nick length) - i blame mIRC! * fixed multiple /MODE +l bugs (thanks to akky and BOFH bugging meh!) * Fixed ident max length to 10 * fixed random crash on kill_link (AGAIN) - was /stats * improved speed 10x (because i can...) * optimisations galore! * Added FileReader file-caching class * Changed m_randquote to use FileReader class * Neater source tree (binaries in bin, source in src, headers in include, etc) * Added /WHOWAS * Tidied up makefiles * Much nicer configure program * makeconf program (very nice config maker by Craig) 1.0 alpha 8 * Added Admin class (holds /admin info for modules) * Added methods to Server class * Added m_cloaking.so module, provides host masking * Added Server class * Added more code to example module demonstrating use of Server class * ./configure improved by Craig (better prompts, dir creation) * /stats z added detail * Added '/stats z' * Added hostname/ip caching to speed up connects * Made ircd cache message of the day in a vector (faster!) * Added support for multiple lines of /NAMES on large channels 1.0 alpha 7 * Added /USERHOST command * Added '/STATS O' * removed random debug output * Fixed random crash on nickchange * Fine tuned ability to handle >300 users * added '/stats L' (connect-info) * '/stats u' support added (server uptime) * added '/stats M' command * Added extra dynamic module support, new methods to Module class 1.0 alpha 6 * Changed command table to a vector of command_t types * Dynamix module support, preliminary release * Fixes random crash on nickchange * Fixed wallops and command parameter counting bugs * fixed "user lingering" problem in kill_link * updated example config * developed a simple sample module (m_foobar.so) 1.0 alpha 5 * Changed channel array to a hash_map similar to the one used for users, faster and more efficient * Changed ./configure, no longer asks for hard channel limit (depreciated) * Added support for users to be disconnected once MAXUSERS is reached * Changed code a lot, major overhauls for C++ and STL use for added stability and speed * Changed entire user system to use the hash_map container type instead of an array * Added /TIME command * Added /INFO command * Added restart and die passwords * Partially implemented /RESTART command * Fixed amusing bug which allowed partially connected clients to issue commands under the context of other users! *gulp!* (reported again by Craig) * Fixed SegFault caused when doing a /who 0 or /who * whilst not in channels (Reported by Craig, Fixed by Craig :p) * Added /who 0 o to display online Opers (Craigs First Scratch of Code :p) * Fixed Typo in LUSERS (Reported by MrBOFH and CC) * Fixed Joining Channels withough a # bug. (Reported by MrBOFH) 1.0 alpha 4 * Fixed parameters bug discovered by Allan * Fixed /NICK repeating bug found by piggles. * Added /REHASH command * Added /LUSERS command * Added ability to kill -HUP to rehash * Fixed lock up after ping timeout * Added system to /VERSION * Added DNS lookups on connect (*FIXME* this needs to be asyncronous!) * Fixed IRCop status shown on wrong users * Fixed socket linger option via setsockopt (can restart faster as sockets arent in use after shutdown!) * Added operators can now see real userhost in WHOIS * Added oper-up failed msg to online opers * Changed layout of /motd command start numeric * Fixed empty channels are now purged upon user quit * Changed: support for WHO * as well as WHO 0 (do the same thing) * Fixed ability to kick users when you arent on the channel :) * Fixed grammatical error when halfop tries to kick an op, "You must be at least a half-operator" 1.0 alpha 3 * Fixed problem where nicks containing control codes were allowed * Added support so that ircd honours channel mode +n * Added support so that ircd honours channel mode +t * Fixed linefeeds in middle of line bug (reported by Craig) * Fixed buffer overflow in channel names (reported by Allan) * Fixed close() on nonblocking sockets problem * Added /KILL command >:) * Added /KICK command 1.0 alpha 2 * addition of /oper and several Channel Modes. * new config file format