v2.0.9 released!
Posted by ~Attila Molnar on October 06, 2012

What's new

InspIRCd v2.0.9 is now available, in addition to the usual bugfixes there are some new features as well:

  • It is now possible to customize which cipher algorithms are used by the SSL modules
  • CGI IRC users can no longer evade m_dnsbl
  • The directory where various data files (pidfile, xline db) are placed is now customizable using configure
  • A new regex module based on std::regex
  • A brand new module to support server-side topic locking (better services integration)
  • m_knock can now send a numeric to the channel when someone /KNOCKs instead of a notice, like ratbox (and friends)
  • Extban ‘U’ that keeps unregistered users out of a channel but not registered ones (see #247 and helpop)
  • The “Welcome to network!” notice can be disabled

Upgrading is strongly recommended, tarballs can be found at the usual place.

Once again, if you think you’ve found a bug then please report it here. Feature requests can also be submitted at the same place.

Thanks to all the people who contributed to this release:

Adam (4):

  • Fixed Windows build
  • Fix bug #291 - fix rehashing bind tags not changing them between servers/clients and ssl/nonssl
  • Fixed crash in m_mysql if a module is unloaded while executing a query and there is only one query in the queue to be executed.
  • Fixed issue #303 - fixed Windows build

ChrisTX (8):

  • m_spanningtree: Resolve issue #250
  • listensocket: Fix the two aliasing warnings m_ssl_gnutls: Fix three warnings: 1. libgcrypt will emit a warning to stdout during runtime that it has not been properly initialized 2. Resolve a warning about invalid narrowing inside a { } block. This is not valid as of C++11. 3. Resolve a warning about a wrong format specifier being used
  • configreader: Replace ConfValue here with a ConfigTagList enumeration, as it isn’t guaranteed that bind or link tags are unique which causes Issue #270
  • m_regex_stdlib: A regex provider for the C++11 container std::regex
  • Windows: Replace the unused function hack with explicit instantiation
  • Windows: Use the WinAPI for DNS server retrieval
  • Replace hardcoded paths with configurable ones
  • Windows: Fix broken build Resolves a mistake made in c2f7fc047c2e5bbb899c820590ce07fee593b28f

Peter Powell (4):

  • Don’t hard code the branch version.
  • Fix Windows build that was broken by 9b66dd6.
  • Avoid global namespace pollution.
  • Remove references to removed FINGERPRINT command.

Robby- (2):

  • m_ssl_openssl: Show the SSL cipher used after connecting. Previously only a fingerprint was shown when one was available, else nothing was shown at all.
  • m_ssl_openssl: Allow the list of available ciphers to be customized. This patch was contributed almost 10 months ago via IRC, by spender.

Shawn Smith (2):

  • Added ExtBan U to match only Unregistered users Enhancement requested in Issue #247
  • Updated version lines to be more descriptive and remove references to other IRCds

attilamolnar (71):

  • m_ssl_openssl Use the system default cipher list if no cipher list is specifed
  • m_noctcp Fix /me not being allowed on +C channels Fixes #260 reported by @JDowny
  • m_ssl_gnutls Add a config option that can be used to set the value of the SSL token in ISUPPORT
  • m_ssl_gnutls Move common session initialization code into a function
  • m_ssl_gnutls Advertise only one ssl port by default in ISUPPORT Fixes #261 reported by @Shawn-Smith and others
  • m_ssl_gnutls Compile with -Wno-deprecated-declarations Fixes #246 reported by @SeLEct-
  • m_namesx Handle colons in channel names properly Fixes #258 reported by @FxChiP
  • Don’t hardcode conf/inspircd.conf as the config file, allow the configure script to override it (configure asked for the path but the ircd used the hardcoded path regardless) Fixes #264 reported by @ampt
  • Remove negative BanCache entries only when the AddLine is successful instead of removing them before checking anything
  • m_connflood Cleanup
  • m_uninvite Notify remote users properly
  • m_opermotd Add support for viewing opermotd on a remote server (as advertised)
  • m_hostchange Store host change action as an enum value instead of a string, stop using pointers and std::map for no reason, warn about config problems
  • m_hostchange Remove string copy
  • m_hostchange No reason to prioritize after m_cloaking
  • m_ssl_gnutls Allow setting the priorities to use on the ciphers, key exchange algorithms, compression methods and macs
  • Update example configs Document m_chanhistory settings Note that m_censor adds usermode +G as well Add geoip /STATS G to helpop
  • m_ssl_openssl Port ISUPPORT changes from m_ssl_gnutls to fix #261
  • m_namesx, m_uhnames Don’t convert the command name to irc::string in OnPreCommand()
  • Remove sprintf from the two implementations of ModeHandler::RemoveMode
  • m_messageflood Perform at most one std::map::find() per message if we aren’t kicking the user
  • m_messageflood Make code more readable Remove unnecessary checks Use std::string::find() and ::substr() for finding the delimiter and splitting the parameter
  • m_messageflood Unset +f when the module is unloaded
  • m_spanningtree Handle ? wildcard as well when processing an incoming ENCAP
  • m_spanningtree Specify the uuid of the remote user when sending server NOTICE/PRIVMSG to him
  • m_spanningtree Add missing aposthrope to connection failed server notice
  • Change “allowmismatched” to “allowmismatch” in example config Fixes issue #279 reported by @lethality
  • Remove reference to m_ziplinks from modules.conf.unreal and modules.conf.charybdis Fixes #285 reported by @hoggeh
  • Add a config option to enable/disable the welcome notice sent to clients after successful registration Fixes #284 reported by @hoggeh
  • m_knock Don’t concatenate the knock reason, the command parser does it for us
  • Remove unnecessary string copy in XLineManager::InvokeStats
  • Remove unnecessary cleanup in XLineManager destructor
  • Remove unnecessary assignment in BanCacheManager::RemoveEntries
  • m_svshold Broadcast SVSHOLD commands sent by servers without ADDLINE Fixes #293 reported by @DrRenX
  • Don’t allow banned users to NOTICE a channel when security:restrictbannedusers is on Fixes #297 reported by @killerrabbit
  • Set errno to EINPROGRESS on Windows when the connect() call does not complete immediately, to simulate unix behavior This makes code that checks errno to determine whether connect() has succeeded or not work properly on Windows Fixes #298 reported by @butaman
  • m_knock Add support for sending a 710 numeric when a KNOCK succeeds, add a config option to choose between behaviors Fixes #287 reported by @ElementalAlchemist
  • New OnUserSetIP() hook
  • Call OnUserSetIP() whenever the IP of a local user changes, set ident,host,dhost in LocalUser constructor
  • m_dnsbl Switch to OnUserSetIP hook
  • m_dnsbl Display <unknown> as the user’s nick when annoucing the dnsbl result and the user has an empty nick
  • m_cgiirc Register the “waiting” extension
  • m_cgiirc Take actions after a successful WEBIRC in the OnCheckReady hook, stop using OnUserConnect
  • m_shun Convert enabled commands to uppercase so they match correctly even if they’re lowercase in the config
  • m_blockamsg, m_sslinfo Don’t convert the command name to irc::string in OnPreCommand()
  • Instruct users to verify that std::regex is supported on their setup before using m_regex_stdlib
  • Fix undefined behavior caused by referencing the returned buffer by std::string::c_str() when the object is temporary Thanks to @ChrisTX for pointing this out Fixes #257 reported by @helloall
  • m_httpd Accept POST requests only when the value for Content-Length is greater than zero
  • Fix more undefined behavior caused by referencing the returned buffer by std::string::c_str() when the object is temporary
  • Make ConfigReader::GetSID() return a const reference to a string instead of a string
  • m_spanningtree Return const references from several TreeServer getter functions
  • m_spanningtree Only allow uuids in SVSJOIN, METADATA and OPERQUIT
  • m_spanningtree Use iterators in CAPAB handler and when generating reply to spanningtree related /stats, use std::find() in TreeServer::DelChild()
  • m_spanningtree Netburst: Remove unnecessary variables from DoBurst()
  • m_spanningtree Netburst: Prefix SERVER and VERSION lines with SIDs instead of server names
  • m_spanningtree Netburst: Remove unused parameters and variables
  • m_spanningtree Remote WHOIS handler: Find target with FindNickOnly (don’t accept uids, like in cmd_whois)
  • m_spanningtree OPERTYPE handler: Return when finished processing instead of changing execution path with a flag
  • m_spanningtree Utils: Remove unused functions
  • m_spanningtree Remove empty RedoConfig()
  • m_spanningtree Simplify OnMode and OnSetAway handlers
  • m_spanningtree Fill a parameterlist in OnAddLine/OnDelLine
  • m_services_account Fix possible recursion when checking ‘U’ extbans
  • Check if the mask is long enough before accessing it when checking extbans
  • Change User::SetClientIP() to be virtual
  • Fix (d)host starting with ‘:’ for some IPv6 clients
  • Windows: Remove modules.conf.charybdis and modules.conf.unreal with the uninstaller
  • m_cban, m_rline, m_shun Broadcast these commands as some services implementations send them (even though they shouldn’t)
  • Update .gitignore
  • New module to support server-side topic locking and server-to-server SVSTOPIC command SVSTOPIC can either set the topic, the topic setter and the topic timestamp to the given parameters or can nuke the topic entirely on a channel (like it was never set) It is for ulines only
  • Release 2.0.9