v2.0.7 released!
Posted by ~w00t on July 01, 2012

What's new

InspIRCd v2.0.7 is now available, containing a large number of fixes, including some crash issues. Upgrading is strongly recommended.

Thanks to @attilamolnar for his mammoth effort going into this release - thanks to his ongoing efforts, a followup 2.0 release will likely not be too far behind with some less crucial fixes and cleanups.

A 1.2 release will follow shortly with the crucial fixes, but again: it is reminded that 1.2 is essentially on “life support” at this stage. It is recieving minimal maintenence, and we do not expect this to last all that long. I have heard that some of the remaining 1.2 users have issues (whatever they are) with upgrading to 2.0 - we would very much like to hear these problems in the bug tracker, so they can be addressed.

A shortlog since the last release (2.0.6rc1) is attached for the curious.

Adam (4):

  • Removed old VC90 project files, renamed the VC 2010 project files to not have VC90 in them
  • Remove some unused files
  • Fixed linking m_sqlite3 on Windows
  • Fixed m_mlock

Chin Lee (2):

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

Christoph Egger (1):

  • fix build on kfreebsd

Garrett Holmstrom (1):

  • [2.0] md5: zero the whole MD5Context, not only part

Guillaume Delacour (1):

  • Fix compilation with GCC 4.7.

Justin Crawford (5):

  • Fixes for bug #12
  • Fix some of the include guard names (requested by Sadie)
  • Added C/C++ style escape codes for color codes in the MOTD along with @SadieCat’s \x, \u, \b, \c aliases
  • Fixed using a function on every call for /motd, causing lag on large networks (requested by w00t)
  • Rewrote the color codes parser to be one function, not two

Sadie Powell (14):

  • Remove references to old configure commands.
  • Minor style tweaks.
  • Fix unused variables reported by the clang static analyzer.
  • Update Doxyfile.
  • Install example configuration files into their own directory.
  • Update ‘make install’ to inform the user about the example config files.
  • Fix compile error caused by unistd.h not existing on Windows.
  • Debian typo fixes.
  • A few more typo fixes.
  • Move all example configuration files to their own directory.
  • Install example alias and module configuration files as well.
  • README changes.
  • InviteBase needs to be a CoreExport on Windows.
  • Fix typo in log message.

Pierre Carrier (1):

  • extras/m_ldapauth: CIDR-based whitelisting

Robby- (11):

  • Backported Shawn’s NoSnoticeStack code from insp21
  • /STATS: updates
  • Add conf/ to include paths and fix some typos
  • Revert 05e6330fbd6e9a427c09cf90e2cada10656c48f7 and reference HELPOP instead (afterall, the module is called helpop and references itself as that in the code/output too, and most clients override /help), also make the alias work the other way around
  • Replace copyright headers with headers granting specific authors copyright
  • Headers: update remaining scripts too
  • resource.rc: update copyright to 2012
  • Add more documentation about logging, aswell as make text, tab and space corrections to the configs
  • Module description updates
  • m_check: Include IP and gecos in host/IP-mask lookup results
  • Snomask qQ: Swap quit message and IP for easier parsing by bots or scripts

Robin Burchell (13):

  • FileWriter hasn’t been non-blocking for a very, very long time.
  • remove trailing whitespace
  • Be more helpful when processing commands from a linked server.
  • Match the logging in the rest of this module.
  • Fix typo.
  • Log mode errors when processing FJOIN.
  • No need to check elines twice..
  • Revert “m_dnsbl: switch to OnSetClientIP hook which may be refired.”
  • Revert “users: introduce OnSetClientIP hook.”
  • Revert “users: LocalUser constructor should call SetClientIP() on itself”
  • Revert “users: add SetClientIP function for irc::sockets::sockaddrs type.”
  • Don’t throw an exception if passed bad parameters to stringjoiner.
  • Release 2.0.7 (we’re so cool that we’re skipping 2.0.6)

Rutger (1):

  • Show class in connectmsg

Shawn Smith (2):

  • This fixes issue #39 reported by @attilamolnar. Thanks to @attilamolnar for supplying the code.
  • Fixes the j snomask not working properly

Sir Poggles (2):

  • fgets(): refer to the buffer size (no literals)
  • Be consistent with Robby’s qQ snomask changes

William Pitcock (11):

  • Explicitly shut down stdio’s stdin/stdout/stderr.
  • modules/m_mlock: new module implementing server-side MLOCK.
  • docs/modules.conf: document availability of MLOCK module.
  • mlock: handle case where no mlock has been set on a channel yet
  • mlock: we should only enforce against modes set by our own clients
  • mlock: fix style nitpicks
  • epoll: make sure EPOLLET flag does not get clobbered
  • users: add SetClientIP function for irc::sockets::sockaddrs type.
  • users: LocalUser constructor should call SetClientIP() on itself
  • users: introduce OnSetClientIP hook.
  • m_dnsbl: switch to OnSetClientIP hook which may be refired.

attilamolnar (61):

  • Forward port 1d703dcf7858a322c823bbd80f9507b627c5738c.
  • Fix issue #18 reported by @int- (remote restriction on /stats)
  • Avoid sending empty channel list numeric on whois if the target is not in any channels.
  • Fix issue #95 reported by @Joah
  • Count the actual number of sent/received bytes in SocketEngine instead of the buffer size passed to the send/receive functions
  • Fix generating invalid UIDs after current_uid is 000Z99999 (next UID became 000[AAAAA)
  • While at it, use a constant parameter for calling IncrementUID in GetUID Get rid of curindex, use a bool to determine if we need to initialize
  • Add testsuite tests for UID generation
  • m_showwhois Fix potential crash in WHOISNOTICE handler
  • 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 This leaked information when a module gave privs to the joining user in OnUserPreJoin Fix CycleHostsFromUser having the opposite effect
  • Fix printf-style WriteAllExcept not obeying serversource parameter
  • Fix last character being chopped off in included (exec)files (e.g. motd and rules)
  • m_autoop Fix desync issue #37 reported by @Joah - part 1
  • m_spanningtree Fix desync issue #37 reported by @Joah - part 2
  • m_ssl_gnutls Fix crash caused by calling gnutls_dh_params_deinit() when dh_params wasn’t inited Fixes #181 reported by @BlacklightShining
  • m_ssl_gnutls Only generate DH params when dh_params is inited
  • Cut the ending \n from all lines in included (exec)files
  • m_spanningtree Notify opers upon ecountering a configuration error when rehashing
  • m_spanningtree Disallow server passwords which contain a space char and those which begin with a colon Update links.conf.example
  • m_spanningtree Move SecurityIPResolver code to resolvers.cpp from resolvers.h
  • m_spanningtree Only add a resolved server IP as valid if it still exists when the lookup completes
  • m_namesx Add support for altering /WHO replies to be compliant with the specification
  • Fix build on Debian GNU/Hurd platforms, thanks to Jonathan Wiltshire <[email protected]> for the patch Fixes issue #98 reported by @guikcd
  • Fix 2 clang warnings reported by @SadieCat
  • m_spanningtree Burst to a new server before introducing it to the rest of the network Fixes issue #103 reported by @nenolod
  • m_services_account Send an AccountEvent with an empty accountname when a user logs out of an account
  • New module to support IRCv3 extras, namely account-notify, away-notify and extended-join CAPs
  • Make m_cap.h a bit cleverer
  • m_geoip Add support for /stats G
  • m_cban Fix a couple of things, namely - remove call to XLineManager::ApplyLines() as it iterates the local userlist and made no sense - return CMD_SUCCESS when /CBAN succeeded, CMD_FAILURE otherwise - remove unused exception handler - don’t route CBAN commands at all, spanningtree adds and removes the lines automatically
  • m_svshold Fix a couple of things, namely - don’t ask the XLine manager to apply SVSHOLD lines to the userlist, as we do nothing on match - remove call to XLineManager::ApplyLines() as it iterates the local userlist and made no sense - return CMD_SUCCESS when SVSHOLD succeeded, CMD_FAILURE otherwise - remove unused exception handler - don’t route SVSHOLD commands at all, spanningtree adds and removes the lines automatically
  • m_rline Fix memory leak when zlineonmatch was true and the zline existed, simplify zline adding logic
  • m_shun Fix a couple of things, namely - remove OnUserConnect hook as it was completly a no-op - remove call to XLineManager::ApplyLines() as it iterates the local userlist and made no sense - return CMD_SUCCESS when /SHUN succeeded, CMD_FAILURE otherwise - remove unused exception handler - don’t route SHUN commands at all, spanningtree adds and removes the lines automatically
  • m_shun Fix out of bounds vector access leading to crashes when hiding part reason for a shunned user
  • m_chanhistory Add config setting to show/hide the informational notice before playing back history, don’t playback to remote users
  • m_chanhistory Don’t allow durations that contain an invalid char or too long
  • m_chanhistory Keep history when changing parameters
  • Fix pending invites not being removed when a channel was deleted or had its TS lowered
  • m_cap Use an enum to specify cap event type instead of a string, assign CapEvent data in the constructor
  • m_cap Fix crash when a user issued a CAP CLEAR request and the CapEvent had an empty list of removed CAPs
  • m_cap Allow clients to disable specific capabilities by prefixing them with a dash (-) to be compliant with the specification
  • Remove unused channelmanager
  • m_alltime Add a missing space to the notice
  • m_operlevels Remove unused hook
  • m_nonicks Use SimpleChannelModeHandler
  • m_delaymsg Don’t allow mode to be unset when it’s not set
  • m_opermodes Remove unused OnRehash hook, don’t touch remote opers, send mode changes with SendMode
  • m_noctcp Use SimpleChannelModeHandler, reorder checks
  • m_xline_db Get the xlines from the core, don’t maintain a seperate list
  • m_dccallow Fix unsafe iteration
  • m_callerid Remove redundant includes
  • m_callerid Use std::find() where possible
  • m_callerid Remove unused parameter
  • m_callerid, m_dccallow Fix crash caused by allowing unregistered users and SIDs to be on callerid/dccallow lists
  • m_callerid, m_dccallow Use OnUserPostNick hook instead of OnUserPreNick
  • Fix maxbans not being enforced
  • m_xline_db Fix memory leak when adding a loaded xline fails
  • Fix crash in ADDLINE handler when the command had no parameters
  • m_spanningtree Return when ecountering an invalid command coming from a remote server
  • m_spanningtree Call the collision handler with the proper parameter (client ip instead of modestring) when a nick collides at burst