Peter Powell [Wed, 15 Nov 2017 02:35:15 +0000 (02:35 +0000)]
Improve LIST and implement more extended list features.
- Move the ISUPPORT token from the core into core_user and start
sending the SAFELIST token to let clients know that they can
safely run LIST on big servers.
- Add support for the channel creation time (C), topic set time
(T), and inverted glob match (N) filters as specified in the
draft-hardy-irc-isupport-00 specification.
- Clean up the logic for filtering channels by user count.
Peter Powell [Sun, 12 Nov 2017 11:58:49 +0000 (11:58 +0000)]
Various minor documentation fixes.
- Remind admins that not setting a DIE/RESTART password does not
disable use of those commands.
- Remove references to 1.2 and modules being able to create custom
logging methods. This was never implemented in the 2.0 branch.
- Remove references to an SASL improvement that was reverted.
- Update various InspIRCd website links to use HTTPS over HTTP.
- Update a link to the IRCv3 website to point to the new website.
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:
Inform the client when a SASL message cannot be sent
When SASL is properly configured with a 'target' server, we are able
to inform the client when the message fails to send.
Currently if a target is configured and it is offline, no response is
sent. This can cause some clients to time out while waiting for a response.
If a target isn't configured, behaviour will not change with this commit.
The default of '*' will still send to all servers.
Updated example config with 'target' variable.
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.