Attila Molnar [Sun, 26 Jan 2014 12:05:09 +0000 (13:05 +0100)]
ProtocolInterface::SendEncapsulatedData() changes
- Pass command name and destination as real parameters
- Allow callers to specify the command source
- Send a SID instead of a server name if the target is a single server
Attila Molnar [Tue, 24 Sep 2013 18:40:20 +0000 (20:40 +0200)]
Split IOHook into IOHook and IOHookProvider
Create one IOHook instance for each hooked socket which contains all the
hook specific data and read/write/close functions, removing the need for
the "issl_session" array in SSL modules.
Register instances of the IOHookProvider class in the core and use them to
create specialized IOHook instances (OnConnect/OnAccept).
Remove the OnHookIO hook, add a dynamic reference to ListenSocket that
points to the hook provider (if any) to use for incoming connections on
that socket.
For outgoing connections modules still have to find the IOHookProvider
they want to use themselves but instead of calling AddIOHook(hookprov),
now they have to call IOHookProvider::OnConnect() after the connection
has been established.
Attila Molnar [Tue, 24 Sep 2013 17:43:20 +0000 (19:43 +0200)]
Add the ability to have multiple SSL profiles
SSL profiles are now used instead of fixed SSL settings for everything
SSL, making it possible to use completely different settings for each
listener and outgoing connection.
Outgoing connections are broken until the next commit.
`2001:db8::/32` is the [standard][1] IPv6 example address range, using
it also makes it clear when the user has just copy-pasted the example
config and didn't actually whitelist 6BONE for some strange reason.
Similarly, there are example addresses for [IPv4][2] and [DNS][3].
Attila Molnar [Sun, 5 Jan 2014 13:17:12 +0000 (14:17 +0100)]
Improve UserManager::QuitUser() and related code
- Make operreason optional; NULL means same as quitreason
- Remove User::quietquit, it is now handled internally in spanningtree
- Send snotice about quitting remote users from spanningtree
Attila Molnar [Sun, 5 Jan 2014 12:47:28 +0000 (13:47 +0100)]
Fix possible use of invalid iterator on module unload
When a module quits a user or destroys a channel in OnCleanup() the object is no longer in the container being iterated by the time OnCleanup() returns
Peter Powell [Mon, 16 Dec 2013 02:39:31 +0000 (02:39 +0000)]
Fix some Windows-related problems.
- Fix an error relating to the unavailability of std::back_inserter.
- Fix loading configuration files when using relative paths.
- Fix two methods in hashcomp being exported twice.
- Remove some unimportant error messages.
Peter Powell [Sun, 24 Nov 2013 15:05:12 +0000 (15:05 +0000)]
Remove some pointless code:
- Remove the CHARSET entry from ISUPPORT.
CHARSET was removed in draft-brocklesby-irc-isupport-03 and we
always used the default value anyway. This has also been removed
in the latest version of Charybdis.
- Remove irc::sockets::satouser.
This helper method was longer than the code it replaced.
Peter Powell [Sat, 5 Oct 2013 03:55:11 +0000 (04:55 +0100)]
Move stuff around a bit:
- Create FileSystem class:
* Move ServerConfig::CleanFilename to FileSystem::GetFileName and rewrite.
* Move ServerConfig::ExpandPath to FileSystem.
* Move ServerConfig::FileExists to FileSystem.
* Move ServerConfig::StartsWithWindowsDriveLetter to FileSystem.
- Move FileReader to fileutils.cpp and fix documentation.
- Move UserManager::DoBackgroundUserStuff to usermanager.cpp.
Peter Powell [Fri, 29 Nov 2013 20:23:57 +0000 (20:23 +0000)]
Fix various problems with ModuleManager.
- Fix downloading the module list on very new versions of Perl.
- Fix an off by one error caused by array sizing starting at -1
instead of 0 like in every single other language (!!).
- Fix vague error messages when LWP encounters an error.
- Fix LWP::Simple being used before we have checked whether it is
available.
- Rehash notices
- Modes in CAPAB
- GetTargetAndAction() not being static in m_callerid
- Loading custom configuration files using --config. (@SaberUK)
- ServerConfig::Read not using std::endl. (@SaberUK)
- Out of date comments in opers.conf.example, issue #624