ChangeLog/1.0 Final
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 Final
* Optimized WriteServ - why use %s!%s@%s when we have the more optimal userrec::GetFullHost() ?
* Added new event into m_spanningtree, event id send_metadata, which allows arbitary posting of metadata outside of the netburst, see line 529 of m_ssl_gnutls for an example of how to use it.
* Added check that forbids configuration as root >:-)
* Major updates to CBANs...like they're reasonably functional
* Added support for TYPE_OTHER metadata, where void* target will be NULL, e.g. its not bound to a user or a nick
* Fix to send 403 on invalid channel name
* Moved Write() call so that it can send the NICK message properly and force the client to change
* Allow ulines to still notice the channel regardless of +T
* Created OnPostOper that can be gauranteed to be called *after* opering (by ALL modules) is done
* "Oper of unknown type" -> "313 %s %s :is an IRC operator"
* Auto-assume "+" on the start of opermode block if not included
* Removed example commands that never actually existed
* OpenSSL detection and cert generation in ./configure
* Changed length of password field to 64, giving us a maximum password length of 63 plus null terminator
* Fixed uninitialized ExtMode::list
* Added some extra debug
* Make m_services use InsertMode (are we done yet?)
* Changed On005Numeric to use InsertMode (we left one out?)
* Deleted the semicolon that had half the dev team wondering...
* Incorporated Craig's friendlier SQL class (documentation to come later)
* m_sqlauth: Fix small memory leaks in some cases (bad password, bad query, lost mysql server connection etc..)
* Correctly initialize userrec::password (should fix a few m_sql issues)
* Add m_conn_waitpong, require clients to reply with a correct PONG to a server PING before they can connect
* Remove unused includes and rename classes from ModuleSSL to ModuleSSLGnuTLS so we can be consistent across multiple SSL modules
* Added warnings to opers when session limits are exceeded
* Improved IP handling. Now uses in_addr to store client ip, not char[16]!, Added global and local session limits
* Problems removing +t due to wrong bit-value being used in comparison
* Altered so that if running in -debug mode, will not erase its .so files from /tmp to allow a clean backtrace
* Removed unneccessary strlcpy
* Removed a load of unneeded includes (poll.h etc)
* Added <ident:timeout> example so that people remember to set this when using m_ident.so
* Default ident timeout to 1 sec if not defined (a bit low, but better than 0!)
* Updated m_ident to use inspsocket, should be more reliable
* Added missing modules (newer ones)
* Removed excessive debug for something thats now fixed
* Merged Andy Church's isnick() and isident() patches - faster, more efficient, and doesnt accidentally allow "-" as the first character of a nickname, Also adapted to iterate over a char* pointer rather than using unsigned int for the for() loops
* Added m_opersha256 module created by Special
* Add module for anti-autorejoin channel mode +J
* Changes to INVEX and EXCEPTS 005 tokens
* Changed +l to drop the mode if the limit is same as current., Optimized check on numeric chars
* Remove last relic of last goto in inspircd (an unused label)
* Fixed to not have ohv in CHANMODES type A,, Added proper MAXMODES output in 005 instead of hard coded '13'
* One goto is now no gotos.
* Change m_redirect, m_joinflood and m_messageflood to put their modes in the correct section and to use InsertMode()
* Add InsertMode function to helperfuncs.(cpp|h) for easily adding modes to the CHANMODES section of the 005 numeric
* Added patch from Andy Church re spaces in SETNAME
* Fixed line endings when skipping ssl cert generation
* Documented some functions that were missing comments
* Properly check that existing key resides in conf/ and not current dir
* Added PRIORITY_BEFORE and PRIORITY_AFTER (see src/modules/m_hostchange.cpp for how it works, function Prioritize())
* Added -modupdate to regenerate modules makefile, Added SSL option, as well as a 'Build Certificate' section (If avaliable)
* Adding the +e and +I modules m_banexception and m_inviteexception, also adding their shared utility header
* Added trick to allow local server to unset -r only in one specific condition (the nickchange)
* Added joinflood +j
* Made bans check both real and fake host
* Patched to allow FTOPIC from users (so that chanserv can update the settime and the topic still come from chanserv)
* Added <link:hidden> to docs
* Optional IP-Hiding for servers
* Use libgnutls-config --libs to configure linker options
* Make relative paths in the config file tags be relative to the insp config directory
* Change 974 numeric to 490 to avoid collision with Insp's failed to load module error
* Make m_sslmodes messages appear in the channel window
* Updated with new docs for maxtargets
* Updated 005 to show changeable MAXTARGETS
* Allowed for configuration of maxtargets in <options:maxtargets>
* Wrong nicklen is shown in the 005 numeric, fixed (noticed by ThaPrince)
* Initial commit of m_sslmodes, supplying chanmode +z
* Allow for <bind> tags with no or empty type, as well as 'clients' ones
* Set vendor and static module flags...even though the booms from trying to unload it would be fun sad.gif
* Make errors loading certificates DEFAULT level
* Inital commit of the first SSL module \o/ \o/ \o/ Also Ommeh's first official svn commit \o/
* Added MakeWildHost to userrec (*!*@dhost), Added ban stuff to messageflood
* Fixes to server kick (i hope)
* And yae, the compiler sayeth to brain, fix thine warning. and thou warning art fixeth.
* Made '*' ban-specifier work
* Added OnChannelDelete() method (called on KICK, PART or QUIT where a channel is deleted for cleanup of metadata), Added m_messageflood.so
* Tweaks for openssl compatibility
* Stopped lines longer than 512b from being killed, instead, warning sent and dropped.
* Fix to m_redirect to prevent circular link to self
* Added <allowchannel:name> to allow specific channels
* Test-fix for crazy's bug (/who 0 * as oper while on no channels)
* Tony hart stars in a new show, to replace hart attack. YES, ITS CRAQ ATTACK! Now starring the cmd_invite 401 numeric fuckup! grin.gif
* Umode +R was broken (only worked for channels) -- fixed
* Removed all strncpy() calls and replaced with strlcpy()
* strncpy sucks ass! -- Old code was using strncpy which doesnt null terminate a string if the string fills a buffer (!!!) - our strlcpy implementation fixes this.
* Added unlink() to tidy up /tmp after each dlopen()
* Added support for part messages in the module API (and therefore between servers too)
* Fixed bug with {} -> [] etc in NICK where nick == newnick apart from irc-case:, [15:41] --- Brain is now known as [Brain], [15:41] --- {Brain} is now known as {Brain}, Now correct:, [15:41] --- Brain is now known as [Brain], [15:41] --- [Brain] is now known as {Brain}, Was just a strlcpy BEFORE the NICK output instead of AFTER.
* Fixed so that ONLY ports of type "" or type "clients" are bound by the core, *everything else* is passed over now, not just "servers" type.
* Changed lots of icky #define's to enums
* Made <disabled> non-manditory, added check for when singular tags arent defined at all
* Fixed SIGHUP rehash to actually send rehash event to modules
* Added checks to forbid declaring certain config tags twice (ones which should only exist once like <server> and <admin>)
* Added m_vhost, authenticated vhosts from the conf similar to unrealircd's way, requested by PinkFreud
* Changed some .cpp to .so in the this->source field
* Removed deprecated default= for bind tags
* Removed deprecated LocalOp type
* Added support for <options customversion> to customize the second part of VERSION
* Bug found by PinkFreud - If an oper deopers themselves by removing the +o mode, their userrec::oper field isnt cleared. Clear it forcibly before DeleteOper.
* Updated copyrights in headers etc using perl inplace edit
* Made inspircd close and reopen its log on rehash
* Removed some redundant (and commented out) functions
* Made InspSocket::Read return an empty but non-NULL string when it receives EAGAIN (this method didnt know how to cope with EAGAIN before, may be causing random splits?)
* Extra m_sql field checking
* Fixed 'stops responding after server pingout, while using select' bug as found by merwin
* Added RemoveSocket as a test fix for merwins bug
* Replaced some 'n' with '*n' that was breaking userrec::MakeHost
* Added extra safety check for a condition that should NOT happen (in theory, but still)
* xline tweaks
* Replaced sprintf's with some char* voodoo
* Changed channel user lists from vector to map
* Changed makefile to use 'install'

















