Peter Powell [Fri, 20 Oct 2017 07:01:27 +0000 (08:01 +0100)]
Enable using m_customprefix to alter core prefix modes.
This replaces the devoice module which has now been removed. If you
want users to be able to devoice themselves then you can load the
customprefix module add the following config tag:
<customprefix name="voice" depriv="yes">
If you wish to keep identical behaviour rather than allowing users
to use "MODE #YourChannel -v TheirNick" then you can load the alias
module and add the following config tag:
Peter Powell [Mon, 30 Oct 2017 19:34:56 +0000 (19:34 +0000)]
Make core_hostname_lookup redo the lookup when a user's IP changes.
This removes the need to do lookups in the cgiirc module. This is
useful as relying on gateways to do proper DNS checks is unreliable
and has resulted in issues like 5fc4403f62. Its more sane if we do
our own lookups.
This change has been okayed by multiple WEBIRC gateway authors so
I don't think it will cause many problems.
Peter Powell [Sun, 22 Oct 2017 14:10:49 +0000 (15:10 +0100)]
Remove support for the Solaris IOCP socket engine.
After discussing this with Adam we have decided that there is very
little point in keeping this now that Solaris has been killed. Any
legacy Solaris users will have to make do with poll.
This change does not affect users of Solaris forks like Illumos as
they have support for epoll which will have already been selected
over Solaris IOCP by configure.
Peter Powell [Wed, 18 Oct 2017 11:41:37 +0000 (12:41 +0100)]
Clean up OnCleanup.
- Switch to using ExtensionItem::ExtensibleType for the type instead
of TargetTypeFlags.
- Pass the extensible to OnCleanup as an Extensible pointer
instead of a void pointer.
- Call OnCleanup for memberships as well as channels and users.
- Rewrite event documentation to remove outdated references.
Peter Powell [Mon, 16 Oct 2017 03:14:37 +0000 (04:14 +0100)]
Clean up the command disabling logic.
- Read the disabled command list in ApplyDisabledCommands() instead
of storing it in a global which is only accessed on rehash.
- Write debug messages to the log when disabling commands.
- Use irc::spacesepstream instead of std::stringstream.
Peter Powell [Sun, 15 Oct 2017 01:15:35 +0000 (02:15 +0100)]
Remove INSPIRCD_SOCKETENGINE_NAME and INSPIRCD_SYSTEM.
- INSPIRCD_SOCKETENGINE_NAME is not really something that needs to
be user facing. If opers want to know this kind of internal info
then they can look at the build configuration.
- INSPIRCD_SYSTEM causes problems for reproducible builds and is
only accurate for the state of the system when InspIRCd is built
which is not useful in the slightest.
Peter Powell [Sat, 9 Sep 2017 10:32:14 +0000 (11:32 +0100)]
Remove support for the pass, passfirst, identfirst cgiirc types.
These methods are not supported by any widely used gateways that I
can find. If your gateway uses this then you should rewrite it to
use the webirc method. For more details see the IRCv3 WEBIRC
specification at http://ircv3.net/specs/extensions/webirc.html.
Peter Powell [Thu, 14 Sep 2017 13:14:53 +0000 (14:14 +0100)]
Raise the default listmode limit to 100 from 64.
64 is a rather restrictive limit especially considering how fast
channels can accumulate bans. In fact, #InspIRCd hit the ban limit
in just over a year.
Having a low limit might have made sense when memory was expensive
but the average IRC server should be able to handle this fine now.
Peter Powell [Tue, 12 Sep 2017 13:28:20 +0000 (14:28 +0100)]
Clean up the <security:runas{user,group}> code.
- Get rid of unnecessary temporary values.
- Remove an erroneous usage comment.
- Reset errno before the call to setgroups.
- Unify the two stage initialisation of g/u.
Peter Powell [Sat, 26 Aug 2017 16:25:20 +0000 (17:25 +0100)]
Use DLLManager::RetrieveLastError() on all platforms.
This prevents a bug where we send malformed messages to the client
when dlerror() returns an error message containing more than one
line. This has been observed on macOS but probably will happen on
other UNIX systems too.
This also fixes a potential problem where dlerror() returns NULL
and converting it to std::string causes a crash. I can't see any
way that this might happen but it is better to be safe than sorry.
Peter Powell [Fri, 25 Aug 2017 12:12:44 +0000 (13:12 +0100)]
Fix mistakenly hardcoding the halfop prefix char in timedbans.
This will almost always be % but if the server admin is using the
customprefix module and remaps it to something else messages will
not be sent out correctly.