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