v2.0.10 and v1.2.10 released!
Posted by ~Attila Molnar on December 16, 2012

What's new

InspIRCd v2.0.10 and v1.2.10 have been released with lots of bugfixes (including fixes for crashes) and small improvements. Upgrading is strongly recommended, the download links are here.

New features to 2.0.10:

  • m_filter can now strip colors from the text before processing (new flag: c)
  • m_ldapauth allows setting vhosts, and can filter on arbitrary LDAP attributes (see the updated config for details)
  • m_operlog now logs to snomask r if enabled in the config

Thanks to all the people for their work who contributed to this release.

A git shortlog since the last release:

Adam (5):

  • Compare the result of ldap_search_ext_s to LDAP_SUCCESS….
  • Add myself to the Other Contributors list
  • Issue #346 - fix m_permchannels.cpp and m_xline_db.cpp saving their databases on Windows due to rename() failing if the destination file exists
  • Don’t send quitting users in RPL_NAMREPLY, fixes desyncing clients who join a channel after a user has quit but before they are culled
  • Make the select() socketengine suck significantly less

Adrien Bustany (1):

  • m_ldapauth Allow filtering on arbitrary LDAP attributes

Boleslaw Tokarski (1):

  • Allows to use user->ident string instead of user->nick for NickServ.

ChrisTX (4):

  • Windows: In-depth cleanup (see details)
  • Replace printf(_c) with iostream
  • m_ssl_gnutls: Resolve deprecation warnings properly
  • Resolve two warnings clang complains about

Peter Powell (12):

  • Fix for #268.
  • Fix configure system loading cache file too late.
  • Fix typo in m_filter.
  • Temporary fix for HASHMAP_DEPRECATED on clang.
  • Fix ModuleManager failing when:
  • Fix m_ssl_gnutls when using non-standard include/lib paths.
  • Fix m_ssl_gnutls under GCC on recent versions of GnuTLS.
  • Silence OpenSSL deprecation warnings on OS X.
  • Fix GnuTLS certificate generation on OS X.
  • Fix the list of files to be removed by make.
  • Fix invalid argument warnings on clang.
  • Fix #380 on BSD make.

Robin Burchell (6):

  • ldapauth: Rework required attributes code to use only one exit path.
  • ldapauth: Add missing verbose logging to required attributes.
  • ldapauth: Allow setting virtual hosts on identification with m_ldapauth.
  • ldapauth: fix memory leak
  • ldapauth: RAII returned ldap message.
  • ldapauth: register both extensions

Steven Van Acker (4):

  • use documented “value” attribute instead of undocumented “newhost”
  • wrong order of arguments to Host()
  • unhook –uid from –system in configure script
  • added warning that autoconnect is now a separate tag

attilamolnar (92):

  • Update modules.conf.example with m_ircv3
  • Move simple user and channel mode handlers into a single file
  • Fix unregistered users getting global notices, also fix certain commands working on unregistered users, spotted by @Adam-
  • Remove superfluous std::string()s
  • m_cgiirc, m_dnsbl Remove unnecessary includes
  • Fix broken build
  • m_ssl_gnutls Cast pointer difference to an unsigned int before displaying it
  • Remove no-op call to IncreaseOSBuffers() from BufferedSocket::BeginConnect()
  • m_chancreate Fix snonotices not being sent when remote users create channels Fixes #318
  • Remove IncreaseOSBuffers() completely
  • m_ident Allow the usage of an overriden IsIdent() instead of using a hardcoded version of it Fix long idents being accepted regardless of Limits.IdentMax
  • m_filter Cleanup, remove empty and useless functions
  • m_filter Use an enum for filter actions instead of a string
  • m_filter Change exemptfromfilter to be a set
  • m_filter Remove redundant flags field from FilterResult Change FillFlags() to return the character it did not understand, 0 if all ok
  • m_filter Don’t move the filter to the beginning of the vector when a match occurs
  • m_filter More cleanup and optimizations Fix a typo
  • Fix KILL accepting SIDs, get rid of potentially unsafe snprintf and strlcpy
  • Make better use of User::GetFullRealHost()
  • Fix /RESTART not closing file descriptors Fixes issue #262 reported by @MistrX
  • m_nickflood Make code more readable, unset +F when the module is unloaded See 21c3232b8e0bb41727f2d65a0b2d5304587cf6be and fae560cddc389b88c9cd34afdccf9035f4d11c5b
  • m_nickflood Fix a case when channels were locked regardless of elapsed time since the last nick change Fixes #330 reported by @Shawn-Smith
  • m_topiclock Prefix ModDesc with $
  • m_nicklock Fix typo
  • m_ircv3 Fix away-notify not sending AWAY messages when somebody joins who is away
  • m_ircv3 Attach to OnRehash
  • m_ojoin Fix giving +Y only instead of +Yo when <ojoin:op> is on and the user is already in the channel
  • Fix warnings in configreader.cpp on FreeBSD Fixes #348 reported by @netkurd
  • m_operlog Add tosnomask config option, to log all oper actions to snomask ‘r’ If enabled, the commands can be logged to channels with m_chanlog and also other +s +r opers can see them Fixes #325 reported by @SeLEct-
  • Move ServerConfig::ProcessColors() into class InspIRCd, as a helper function Change signature to accept a file_cache reference so modules can use it easily
  • m_opermotd Add support for replacing \u \b etc. with color codes Fixes #322 reported by @MistrX
  • Fix typo in doc and remove some whitespace
  • m_ssl_openssl Remove unused variables
  • m_ssl_gnutls, m_ssl_openssl Set error message for the socket to “Connection closed” whenever the ssl connection is closed
  • m_spanningtree Refuse bogus NICK messages If the new nick looks like an uid verify that its the correct uid
  • m_spanningtree SVSNICK needs 3 parameters
  • m_operprefix Remove unused hooks, move module initialization to init()
  • m_operprefix Switch to OnUserPreJoin hook to give +y to joining opers, switch to OnPostOper for giving +y initially
  • m_operprefix Enhance compatibility with m_hideoper using a ModeWatcher Prioritize after m_opermodes, so we know when it sets +H on somebody
  • Remove usage of the deprecated ConfigReader
  • Remove calls to ListModeBase::OnCleanup (deprecated, empty function)
  • Remove usage of deprecated CallCommandHandler() and IsValidModuleCommand()
  • m_globalload Fix wrong error message being sent when the module given to /gunloadmodule is not found
  • Change empty string assignments to .clear() or remove them entirely
  • m_remove, m_services_account Don’t check whether nicks are u-lined, checking the server is enough
  • ServerConfig::ServerName is a std::string, don’t call .c_str() on it when passing it to Channel::WriteChannelWithServ, etc.
  • m_remove Cleanup
  • m_securelist Update description
  • m_jumpserver Fix wrong nickname in the numeric when redirecting all users immediately, cleanup
  • m_customtitle Minor cleanup
  • m_nokicks Remove u-line check, OnUserPreKick doesn’t run in that case
  • m_ssl_gnutls Dynamically detect the number of certificates in the certfile Remove the “certcount” setting, as it’s no longer needed When finished reading the certs, resize the buffer to the actual number of certs read
  • Remove TAXONOMY from opers.conf.example, it doesn’t exist in 2.0 Fixes #369 reported by @DjGolia
  • Simplify UserManager::AddLocalClone()/AddGlobalClone()
  • m_check, m_namesx, m_timedbans Minor cleanup
  • m_noctcp Make extban ‘C’ work as intended
  • m_spanningtree Remove redundant params.size() checks
  • Have FindUUID(const char*) call FindUUID(const std::string&), not the other way around
  • Change empty string assignments to .clear() or remove them entirely Part 2 of ba5c0db795824c3fc1ad48ce332d7bdc440cb77f
  • cmd_rehash, m_spanningtree Fix REHASH messages duplicating at each hop Fixes #375 reported by @JDowny
  • Reorder local user initialization steps
  • m_dnsbl Add usednsbl option to connect classes Don’t touch users in classes where it’s off
  • m_cgiirc Remove dead code, warn when a <cgihost> block has an invalid type value, misc. cleanup
  • m_cgiirc De-duplicate code, recheck elines after ip/host changes Fixes #350 reported by @MistrX
  • m_cgiirc Don’t resolve IPs when <performance:nouserdns> is true
  • m_cgiirc Don’t apply resolved host or send notifications when the user is quitting (matched a line)
  • m_cgiirc Fix wrong announcement when the host in WEBIRC is too long
  • Add a typedef for LocalUserList
  • Make LocalUserList an std::list
  • Attach to events and register services in init()
  • Dynamically determine the size of the eventlist[] passed to Attach()
  • Register all commands, modes and extensions using AddService()
  • Register a few extensions that weren’t registered
  • Throw an exception when attempting to register an extension with a name that already exists Previously this silently failed
  • Fix DLLManager leak when an exception is thrown in init() This also caused the dlopen()’d library to stay open forever
  • m_remove Fix potential desync caused by committing the PART before getting acknowledgement from the target server
  • Properly shut down stdin
  • Fix typos in ebdaf368e137fc933e648ee88a08a4f83e796f87
  • Fix broken RetrieveLastError()
  • Fix thread handle leak in StartServiceThread()
  • Unbreak m_geoip
  • Fix expired xlines being treated as live ones in XLineManager::AddLine()
  • Change a few signed counter variables to unsigned so they roll over later
  • m_cban, m_rline, m_shun Don’t broadcast when user is a local user
  • m_svshold Fix crash when called with 2 params, only triggerable by u-lines
  • Fix unsafe iteration in DelMode() when unloading m_permchannels
  • Remove ServerLimits::Finalise(), it’s completely wrong
  • Add IS_SERVER() and REG_ALL checks to (mostly oper only) commands taking a target nickname
  • m_ident Reject invalid and error replies
  • Add a flag to Command that controls whether an empty last parameter is allowed or not
  • m_callerid Fix memory leak in CallerIDExtInfo::free()
  • Release 2.0.10

newuser1 (1):

  • Fix incorrect substr usage

Changes in 1.2.10:

Adam (7):

  • Fixed Windows build
  • m_callerid, m_dccallow Fix crash caused by allowing unregistered users and SIDs to be on callerid/dccallow lists (cherry picked from commit 37d7160b3a2434abcb4b39898bb86fa314fc3e5b)
  • Backport of relevant changes from 02859be56d43bcece02aab350e02bc95ed1bf446. Fix undefined behavior caused by referencing the buffer returned by std::string::c_str() when the object is temporary.
  • Place linker flags after the module source, fixes linking extra modules on some systems
  • Fixed crash in m_silence from users giving invalid input
  • Add myself to the Other Contributors list
  • Release 1.2.10

Chin Lee (2):

  • Fix issue #120 reported by @swilde
  • Check whether it is empty parameter before checking its value

Robby- (2):

  • Module description updates
  • m_check: Include IP and gecos in host/IP-mask lookup results

Shawn Smith (1):

  • Backported #239 to fix issue #229

Sir Poggles (3):

  • fgets(): refer to the buffer size (no literals)
  • Make sure LDLIBS appears after the other objects
  • Fix set-but-not-used and var shadowing warnings

attilamolnar (37):

  • m_spanningtree Use iterators in loops instead of subscript operator
  • m_spanningtree Call ProtocolInterface::PushToClient when writing to remote client instead of sending PUSH commands manually
  • m_spanningtree Fix various bugs related to protocol interface and ENCAP handling
  • m_spanningtree Fix potential crash in SVSPART handler, don’t broadcast incoming SVSJOIN/SVSPART but send it to the destination only, and don’t pass it anywhere if they were talking to us
  • m_spanningtree Remove no-op instructions and simplify code
  • m_spanningtree Fill a parameterlist in OnAddLine/OnDelLine instead of printf’ing parameters
  • m_spanningtree Remove low level stuff from SpanningTreeProtocolInterface::SendUserPrivmsg/Notice, use utility functions like the rest of the protocol interface
  • m_spanningtree Kill duplicated code in OnUserMessage/Notice, put code shared with the protocol interface into the utility class
  • Fix generating invalid UIDs after current_uid is 000Z99999
  • Count the actual number of sent/received bytes in SocketEngine instead of the buffer size passed to the send/receive functions
  • Output “Commands(HASH_MAP)” in /stats z as it’s a hash_map not a vector
  • Only return prefix modes from ModeParser::ModeString()
  • m_cban, m_svshold Only attach to hooks we have a handler for
  • m_callerid Fix module sending no metadata due to not being attached to appropiate hooks
  • m_alltime Use the dedicated function of the protocol interface to send notices to remote users
  • m_opermodes Get rid of the duplicated s2s message caused by SendGlobalMode
  • Don’t touch the terminating NULL in IncrementUID
  • Add testsuite tests for UID generation
  • Remove unused channelmanager
  • Don’t forward SVSJOIN/SVSPART at all if the destination is the same as the source
  • Use socketengine functions for sending and receiving data instead of plain send() and recv() so /STATS z displays correct bandwidth usage
  • Silence the MODE too if a join was silenced by a module not just the JOIN
  • m_spanningtree Interpret ENCAPs also if they were targetted to our SID (retain old behavior)
  • m_md5 Backport “zero the whole MD5Context not only part of it” by @gholms
  • Remove sorcery with HandleInternal in NICK handler
  • Fix remote users never getting their invites removed
  • Deduplicate channel cleanup code, simplify User::PurgeEmptyChannels()
  • Fix pending invites not being removed when a channel was deleted or had its TS lowered
  • Remove pending invites from the invite list of channels when a user quits
  • Fix /NICK 0 not working on registration, allow changing to uid using /NICK <uid>
  • Fix last character being chopped off in motd/rules
  • m_hideoper Hide hidden opers in /stats P
  • m_shun Fix out of bounds vector access leading to crashes when hiding part reason for a shunned user
  • Fix crash in ADDLINE handler when the command had no parameters
  • m_xline_db Fix memory leak when adding a loaded xline fails
  • Fix maxbans not being enforced