15774 Commits

Author SHA1 Message Date
Sadie Powell
e99ad4eb88 Remove test-build now its no longer used. 2022-12-09 16:58:29 +00:00
Sadie Powell
0de5151eec Add support for per-oper/opertype operator MOTDs. 2022-12-09 16:13:55 +00:00
Sadie Powell
3e941f1cfb Merge branch 'insp3' into master. 2022-12-09 11:31:11 +00:00
Sadie Powell
619018c216 Fix reading the MOTD when <connect:motd> is a literal path. 2022-12-09 10:49:47 +00:00
Sadie Powell
aac9fe1921 Fix sending malformed MOTD and showfile messages to clients. 2022-12-09 10:49:46 +00:00
InspIRCd Robot
4163c57c08 Update author list. 2022-12-08 13:37:09 +00:00
Sadie Powell
0b1a210659 Sort names case insensitively in the authors list. 2022-12-08 13:36:57 +00:00
Sadie Powell
5e44188857 More const correctness work. 2022-12-08 10:19:47 +00:00
Sadie Powell
ce57199237 Const correct the IRCv3 standard replies API. 2022-12-06 13:02:52 +00:00
Sadie Powell
1452ed8e08 If an oper is away then show it in /STATS P.
Also fix hideoper and the idle timestamp.
2022-12-06 09:02:41 +00:00
Sadie Powell
7e38f836f7 Load regex_pcre instead of regex_pcre2 for compat with v3. 2022-12-05 08:13:09 +00:00
Sadie Powell
77faab6ce2 Merge branch 'insp3' into master. 2022-12-05 08:11:27 +00:00
Sadie Powell
3de3459e59 Attempt to speed up package installation on the macOS CI. 2022-12-05 08:01:10 +00:00
Sadie Powell
0a03eada1c Import regex_pcre2 from inspircd-contrib.
The original plan was to make the PCRE2 switch happen in v3 but it
seems that distributions are beginning to unpackage the old pcre
library already.
2022-12-05 07:18:32 +00:00
Sadie Powell
445773907d Merge branch 'insp3' into master. 2022-12-04 06:07:20 +00:00
Sadie Powell
69442119e0 Fix a missing doxygen parameter. 2022-12-04 06:07:01 +00:00
Sadie Powell
1203f3ae15 Update Doxygen config for the latest version. 2022-12-03 21:22:45 +00:00
Sadie Powell
4fa6bbee3d Release v4.0.0 alpha 17. v4.0.0a17 2022-12-01 20:46:37 +00:00
Sadie Powell
d130106374 Avoid copying a shared_ptr where not actually necessary. 2022-12-01 05:39:24 +00:00
Sadie Powell
45e56e5ee1 Yet more stylistic fixes. 2022-12-01 05:25:01 +00:00
Sadie Powell
175bf0fa91 Merge branch 'insp3' into master. 2022-11-30 21:33:29 +00:00
Sadie Powell
1c68f3d2e2 Mark the entire client protocol namespace as CoreExport. 2022-11-30 21:11:40 +00:00
Sadie Powell
43b5c69523 Switch the Ubuntu CI to use ubuntu-latest. 2022-11-30 20:44:48 +00:00
Sadie Powell
97201322ec Fix using C++11 features in code that was backported from master. 2022-11-30 20:40:45 +00:00
Sadie Powell
e2243c3aae Merge branch 'insp3' into master. 2022-11-30 11:04:30 +00:00
Sadie Powell
4df802c56f Fix GetSnomasks returning unregistered snomasks. 2022-11-30 10:51:21 +00:00
Sadie Powell
894e9d8ddc Add a method for quickly escaping a tag value. 2022-11-30 10:46:26 +00:00
Sadie Powell
a3fedf513a Add stats tags for /STATS O and /STATS o. 2022-11-30 04:57:11 +00:00
Sadie Powell
5dd3629f12 Allow attaching tags with extra info to stats rows.
Stats responses are incredibly non-standard and no clients render
them correctly. This makes using /STATS a massive pain in the ass
for users.

However, now we have message tags we have a way to fix this. We can
send a <trailing> with the message details and for clients (probably
bots) that need to parse the response we can include the specific
details in message tags enabled by the new inspircd.org/stats-tags
capability.

The average user will get this:

    :<server> 210 <nick> <stats-char> :<stats-message>

If however they enable the newcapability they will get this instead:

    @inspircd.org/stats-foo=bar;inspircd.org/stats-baz=bax :<server> 210 <nick> <stats-char> :<stats-message>
2022-11-30 04:08:30 +00:00
Sadie Powell
bfd4c5d44e Add a method for quickly escaping a tag value. 2022-11-30 03:26:38 +00:00
Sadie Powell
7b3e961782 Make it easier to add tags to a numeric. 2022-11-30 02:22:51 +00:00
Sadie Powell
d2c6858e87 Use gnutls_digest_get_id if supported by the GnuTLS library. 2022-11-29 22:41:06 +00:00
Sadie Powell
7a623b0663 Use T&& instead of T or const T&. 2022-11-29 06:09:01 +00:00
Sadie Powell
c6d798cf08 Fix a typo in core_oper. 2022-11-29 05:54:36 +00:00
Sadie Powell
d5759d1de2 Extract the logic for tags that need message-tags to its own type. 2022-11-29 05:12:42 +00:00
Sadie Powell
f9ef385b89 Move the oper statistics to core_oper and rewrite.
The numerics we used previously were not being used according to
the RFC and every implementation has their own behaviour here which
makes it hard for clients to do anything reasonable. Instead of this
using the generic stats numeric makes a lot more sense.
2022-11-29 04:52:42 +00:00
Sadie Powell
6182ee6072 Fix asserting when building against libstdc++ in debug mode.
This code was safe as the pointer was never actually dereferenced
but libstdc++ would assert on it anyway.
2022-11-28 10:59:49 +00:00
Sadie Powell
ee41348dbd Avoid sending an +o mode change when the mode isn't available.
This is generally fine but may cause problems if an oper unloads
the core_oper module.
2022-11-28 03:22:08 +00:00
Sadie Powell
ee44af8d04 Refactor the internals of the oper system.
- Allow overriding privileges from the <class> blocks in the <type>
  and <oper> blocks.
- Separate oper types from oper accounts in the code. This enables
  moving some core stuff out of the config tag later.
- Merge the config tags together to make a synthetic tag that can
  have getXXX called on it instead of using getConfig and then
  converting it.
- Move the details of Have*Permission into the oper type class.
- Improve oper events to allow modules to easily hook into the oper
  system.
2022-11-28 02:57:50 +00:00
Sadie Powell
38b70b9e98 Fix various edge cases in testssl.
- Ignore SIGPIPE to work around IO::Socket::SSL having its socket
  closed from under it and terminating the program.

- Improve detection of servers that close the TCP connection right
  after it is opened. This usually means the IP address the tool is
  connecting from has been banned so suggest that as well.

- Show more debug information when a connection fails.
2022-11-26 08:17:24 +00:00
Sadie Powell
fff88188cd Fix some broken links in testssl.
MkDocs changed the anchor format a while back which broke this.
2022-11-26 05:57:02 +00:00
Sadie Powell
b045f49afb Merge branch 'insp3' into master. 2022-11-24 19:16:25 +00:00
Sadie Powell
5a30466990 Add a workaround for the replies API not working with a cap reference.
A Cap::Reference can not be cast to a Cap::Capability& because it may
not be available and that would create a null reference. In v4 we can
change the API to take a Cap::Capability* but for now this is the best
we can do.
2022-11-24 19:01:22 +00:00
Sadie Powell
05ebc7fdaa Allow silence flag metadata to contain unknown flags.
This prevents breaking link compatibility if we ever add more silence
flags in the future.
2022-11-23 22:23:35 +00:00
Sadie Powell
07246800fd Use string_view in IsNick/IsIdent/IsChannel. 2022-11-21 13:14:19 +00:00
Sadie Powell
53dde3894b Fix iterator_range when the range points to a string_view. 2022-11-21 12:27:17 +00:00
Sadie Powell
bd260744ec Fix matching partially expanded IPv6 addresses. 2022-11-18 19:04:48 +00:00
Sadie Powell
25325ae75b Avoid using a CIDR range when it only represents a single IP. 2022-11-18 19:04:48 +00:00
Sadie Powell
fdf5b663f7 Update the vendored libraries. 2022-11-16 18:10:50 +00:00
Sadie Powell
71fcab64a8 Fix a compiler error on Alpine and macOS. 2022-11-16 17:53:42 +00:00