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.

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

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

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