Peter Powell [Thu, 9 May 2019 15:17:24 +0000 (16:17 +0100)]
Improve handling of list mode limits.
- Fix not being able to set a zero limit.
- Fix MAXLIST not reflecting the true lower limit.
- Fix not treating an empty <maxlist:limit> as equivalent to *.
nia [Mon, 6 May 2019 14:53:22 +0000 (15:53 +0100)]
Re-order the includes to fix C++03 builds.
inspircd.h defines __STDC_LIMIT_MACROS to ensure that C99 int type
limits are defined, however, if <stdint.h> is included implicitly
before inspircd.h, the build fails due to the C99 integer type
limits being undefined.
m_spanningtree: Ensure tags are sent in forwarded cmds
When a user (U1) sends a PRIVMSG to a server (S1), which sends it to S2, which finally
sends it to S3 to send to U2, S2 doesn't send the tags it received on
the command from S1 to S3.
Peter Powell [Fri, 26 Apr 2019 17:35:17 +0000 (18:35 +0100)]
Fix the numerics used by the opermotd module.
- Use ERR_NOOPERMOTD from UnrealIRCd and RPL_OMOTDSTART, RPL_OMOTD,
and RPL_ENDOFOMOTD from ircd-ratbox.
- Only send ERR_NOOPERMOTD in response to the command.
Peter Powell [Thu, 25 Apr 2019 18:20:07 +0000 (19:20 +0100)]
Fix broken linking over IPv4 on IPv6 capable systems.
If no bind address was specified then one would be
created which had an incompatible address family to
the address that the server was trying to connect to.
Peter Powell [Thu, 18 Apr 2019 16:57:20 +0000 (17:57 +0100)]
Add the new implementation of the silence module.
This module has significant improvements on the previous one:
* Flags which actually make sense.
* Better compatibility with other SILENCE implementations.
* Support for blocking CTCPs.
* Support for blocking TAGMSGs.
Peter Powell [Thu, 18 Apr 2019 19:34:16 +0000 (20:34 +0100)]
Fix some bugs in LIST constraint parsing.
1. Allow flags to be specified in lower case. This behaviour is
required by the draft-hardy-irc-isupport-00 specification.
2. Allow more than one constraint to be specified.
Peter Powell [Mon, 11 Mar 2019 00:21:16 +0000 (00:21 +0000)]
Replace the geoip module with geo_maxmind, geoban, and geoclass.
MaxMind have EOL'd the library that the geoip module uses and have
replaced it with libmaxminddb.
The geoip module has been split into geo_maxmind which provides
geolocation data, geoban which provides location-based channel
bans, and geoclass which is used to filter a user into a connect
class based on location.
Matt Schatz [Tue, 2 Apr 2019 06:11:27 +0000 (00:11 -0600)]
Merge extras/m_privdeaf into m_deaf and update documentation.
- Merge the 2.0 extras module m_privdeaf (usermode +D for deaf to
user messages and notices) as they have a similar purpose.
- Improve the channel deaf logic where a known case of bypassing
still looped the channel userlist building an empty exemption list.
- Improve the comments within the code.
- Update the documentation with the previously undocumented
configuration to deaf and the new privdeaf configuration.
Matt Schatz [Thu, 14 Mar 2019 08:07:20 +0000 (02:07 -0600)]
Check perms for removal of oper-only channel modes.
Oper-only channel modes are currently unsettable by any channel
op, oper or not. Correct this by checking both directions of an
oper-only channel mode and continue only checking the setting of
an oper-only user mode. As anyone should be able to unset their
own user modes and UnOper() removes all oper-only user modes
automatically.
Matt Schatz [Sun, 10 Mar 2019 01:20:20 +0000 (18:20 -0700)]
Fix BanCache entries existing after X-line expiry.
When DefaultApply() adds a hit to the BanCache it uses the X-line
duration to set a duration on the entry. This can result in an
entry lasting longer than the X-line itself. Fix this by setting
the entry duration to the time left on the X-line.
Matt Schatz [Sun, 10 Mar 2019 08:22:00 +0000 (01:22 -0700)]
Fix BanCache entries existing after X-line expiry.
When DefaultApply() adds a hit to the BanCache it uses the X-line
duration to set a duration on the entry. This can result in an
entry lasting longer than the X-line itself. Fix this by setting
the entry duration to the time left on the X-line.