Peter Powell [Sat, 27 Oct 2018 13:18:52 +0000 (14:18 +0100)]
Remove deprecated config checker and make <die> actually useful.
- Remove the deprecated config tag checker. This checker is neither
exhaustive nor is it particularly accurate. Instead the new docs
site will contain a page detailing the breaking changes between
releases.
- Remove the insulting <die> tags in inspircd.conf.example and add
some descriptive ones in files that it is critical for the user
to edit correctly.
- Show the message from the <die> tag so the user actually knows
what they did wrong.
Peter Powell [Sat, 27 Oct 2018 17:13:29 +0000 (18:13 +0100)]
Improve CAPAB negotiation in the spanningtree module.
- Remove the CHANMODES, USERMODES, and PREFIX tokens in the 1205
protocol. These have entirely been superceded by the CHANMODES
and USERMODES CAPAB commands.
- Only compare the 1202 PREFIX tokens if the remote server did not
send CAPAB CHANMODES. This replicates the existing behaviour
used for the CHANMODES token.
- Fix checking whether the remote server has an appropriate case
mapping. If it is not sent we assume it is the same as the local
server as always. This should prevent issues with people using
services packages that do not send this token yet.
- Fix checking if the user modes are mismatched and then promptly
overwriting the error message with mismatched channel modes.
- Fix servers not being able to tell whether a mode on the remote
server is a prefixless prefix mode. Requires the 1205 protocol.
- Fix servers that receive CAPAB CHANMODES or CAPAB USERMODES not
checking the type of those modes. Requires the 1205 protocol.
Peter Powell [Thu, 25 Oct 2018 22:29:55 +0000 (23:29 +0100)]
Change the branch version from InspIRCd-3.0 to InspIRCd-3.
Under the new versioning scheme when a new branch is forked the
major version number will be reset. The minor version number will
now be used to mark a release as containing backwards compatible
additions and the patch version number will be used to mark a
release as containing just bug fixes.
Peter Powell [Tue, 4 Sep 2018 13:10:19 +0000 (14:10 +0100)]
Improvements and bugfixes to the cgiirc module.
- Allow the ident for ident type hosts to be set in the config.
- Consistently check clone counts, connect classes, and xlines for
all users regardless of their cgiirc host type.
- Remove some obsolete code from when gateway clients had their IP
changed in OnCheckReady.
- Don't allow a gateway client to match both a WebIRC and an ident
host.
Peter Powell [Wed, 12 Sep 2018 13:37:38 +0000 (14:37 +0100)]
Improvements to the hostchange module.
- Get rid of <host> and merge the prefix and suffix values into the
<hostchange> value.
- Remove the 'suffix' action. This has been replaced by the 'set'
action.
- Add the 'addaccount' action. This adds the users account to their
hostname.
- Use the <hostname:charmap> characters when removing invalid chars
in addnick mode.
- Allow multiple entries on each hostmask so that they can fall
through if a certain value is not acceptable.
Peter Powell [Thu, 6 Sep 2018 10:29:45 +0000 (11:29 +0100)]
Remove the ripemd160 module.
The library code used by this module is licensed under a non-free
license which is incompatible with the GPLv2. Combined with the
fact that it has been superceded by better algorithms like bcrypt
I have decided to remove it.
An alternate implementation of this algorithm is provided by the
m_hash_gnutls module if people *really* need to use it.
Peter Powell [Fri, 24 Aug 2018 12:40:15 +0000 (13:40 +0100)]
Improve the snotices sent out by the filter module.
- Switch to a module-specific snotice character (f).
- Redo the format of the message to be easier to read and include
the filter that the user matched.
Peter Powell [Wed, 15 Aug 2018 10:06:26 +0000 (11:06 +0100)]
Rewrite m_httpd_config.
- Send the configuration as plain text instead of HTML.
- Show the location where each tag was located in a comment.
- Indent configuration keys consistently so they are easy to read.
Peter Powell [Sun, 12 Aug 2018 13:56:27 +0000 (14:56 +0100)]
Convert AWAY to use cross-module events and clean up slightly.
OnSetAway has been replaced with four events. OnUserPreAway and
OnUserPreBack can be used to deny an away state change and/or
change the away message of a local user. OnUserAway and OnUserBack
allow modules to be notified that a user's away state has changed.
Peter Powell [Thu, 9 Aug 2018 19:44:43 +0000 (20:44 +0100)]
Remove the original line parameter of On{Pre,Post}Command.
In the brave new world of message tags and alternate wire formats
this is no longer something that is appropriate to expose.
In reality it was only ever used by m_alias which now reconstitutes
the command name and parameters into a RFC 1459-style message for
whatever it needs to do.
Peter Powell [Fri, 10 Aug 2018 09:25:40 +0000 (10:25 +0100)]
Fix sending malformed ERR_UNKNOWNCOMMAND messages in some cases.
This is not something the average user will encounter. It can only
happen if the user sends a message with preceding whitespace or a
prefix but no command name.
This is not something that should ever be seen in practise so we
just penalise the user and pretend nothing ever happened.
The previous code also contained undefined behaviour but it acted
sensibly on all compilers we support so it was not crashable.
Peter Powell [Mon, 30 Jul 2018 23:49:27 +0000 (00:49 +0100)]
Remove support for static modules.
This has been frequently broken in the past and as far as I know is
used by literally nobody.
Also, even if all modules are compiled into the core any libraries
linked against are and have always been linked dynamically making
this unusable on platforms without dynamic libraries.