Sadie Powell
54719fbfc6
Allow protocol modules to declare that they have no line/mode limit.
...
InspIRCd allows us to send infinite length lines and mode changes
and will restack before sending to users.
2024-03-12 12:39:33 +00:00
Sadie Powell
06add0e5fc
Simplify limit extraction code.
2024-03-12 12:24:02 +00:00
Sadie Powell
04e1a4f5c8
Add a protocol module function for extracting timestamps.
2024-03-12 11:02:08 +00:00
Sadie Powell
1538909ac0
Add ProtocolException and use it to send fatal errors.
2024-03-12 00:17:49 +00:00
Sadie Powell
02355546ff
Reject registrations and password changes if password encryption fails.
2024-03-11 19:39:47 +00:00
Sadie Powell
29e7674e56
Replace convertTo/stringify with non-throwing alternatives.
...
Having these throw is terrible for ergonomics and there are loads
of places where the exception was either silently ignored or not
handled at all. Having a function which returns an optional and
another that returns a default works a lot better imo.
2024-03-11 19:17:29 +00:00
Sadie Powell
f919bb0748
Add self-tests to the encryption providers.
2024-03-10 20:20:24 +00:00
Sadie Powell
3b85a8071f
Add some missing documentation comments.
2024-03-10 15:58:58 +00:00
Sadie Powell
9a8cac060d
Add support for encrypting passwords with the Argon2 algorithm.
...
Closes #369 .
2024-03-10 15:09:38 +00:00
Sadie Powell
defb8348a7
Move the HMAC function to the encryption header.
...
This will be useful for doing challenge authentication on InspIRCd.
2024-03-09 22:51:23 +00:00
Sadie Powell
a6bc4cab9d
Misc improvements to the encryption API.
2024-03-09 22:22:56 +00:00
Sadie Powell
ef37daf44a
Clean up the services.h includes.
2024-03-09 22:22:56 +00:00
Sadie Powell
39d288f99f
Rename hash_map to unordered_map to match the underlying container.
2024-03-09 22:22:56 +00:00
Sadie Powell
9ead3f15c3
Save the last email time for accounts.
2024-03-09 22:22:55 +00:00
Sadie Powell
272104af95
Modernize the initialisation of NickAlias and NickCore.
2024-03-09 22:22:55 +00:00
Sadie Powell
4e04a11995
Consistently use email instead of e-mail.
2024-03-07 22:52:41 +00:00
Sadie Powell
464e6b8010
Use the C++11 random number generator instead of rand().
...
This is safer, faster, and doesn't require seeding.
2024-03-07 22:52:41 +00:00
Sadie Powell
bb94f286f5
Also use drop confirmation codes for nicknames.
2024-03-07 21:18:06 +00:00
Sadie Powell
12214bee72
Add the initial version of the Atheme database importer.
2024-03-07 18:50:36 +00:00
Sadie Powell
1a8ae513b4
Add NickAlias::GetVhostMask for getting the vident@vhost.
2024-03-04 11:09:50 +00:00
Sadie Powell
4e0f94bcce
Fix some oversights from previous commits.
2024-02-29 23:18:46 +00:00
Sadie Powell
1c1645096f
If a user runs an invalid command try to suggest a valid one.
2024-02-29 21:56:14 +00:00
Sadie Powell
190c37a68b
Rework some platform compatibility code.
2024-02-29 19:11:37 +00:00
Sadie Powell
579af3c442
Rip out ns_access and related code.
...
This is wildly insecure and has been disabled by default for at
least a decade.
2024-02-29 16:14:15 +00:00
Sadie Powell
25bdcfcbc4
Add names for the numerics used by the core.
2024-02-29 13:07:14 +00:00
Sadie Powell
9c80f9e34e
Replace OnChannelUnban with an IRCDProto function.
...
This was added for (and is only used for) for unbanning users on
UnrealIRCd which is an IRCd protocol function so it should be in
IRCDProto.
2024-02-27 13:40:47 +00:00
Sadie Powell
73d4ac6de0
Remove redundant uses of const.
2024-02-27 10:34:27 +00:00
Sadie Powell
1e87849e5c
Rework IRCDMessage/IRCDMessageFlag.
2024-02-26 23:56:07 +00:00
Sadie Powell
79f215606d
Allow using more than one fingerprint in an oper block.
...
Closes #362 .
2024-02-26 21:55:59 +00:00
Sadie Powell
6be4df3b39
Remove several string format IRCDProto function overloads.
2024-02-26 16:45:28 +00:00
Sadie Powell
57674f5869
Replace IRCDProto::CanSendTags with IsTagValid.
...
Not every IRC server accepts arbitrary tags so this is a better
way to handle tag filtering.
2024-02-26 15:50:35 +00:00
Sadie Powell
c6cb4ba159
Fix some coding style issues.
2024-02-26 15:34:17 +00:00
Sadie Powell
e341cac8d6
Implement support for the IRCv3 +draft/channel-context tag.
...
Closes #358 .
2024-02-26 15:34:17 +00:00
Sadie Powell
83dd96b9f2
Extract should privmsg logic to its own function.
2024-02-26 14:41:50 +00:00
Sadie Powell
8c9ca23900
Remove a function which exists for compat with old versions of VS.
2024-02-25 23:49:07 +00:00
Sadie Powell
97b65b2255
Use unique_ptr for managing std::thread ownership.
2024-02-25 21:54:40 +00:00
Sadie Powell
3290ebd36a
GetMaxListFor: use size_t and add a default like the other fields.
2024-02-22 17:25:47 +00:00
Sadie Powell
c4e9c0bf85
If the IRCd sends a field limit then use it over that of the config.
2024-02-22 17:05:30 +00:00
Sadie Powell
a75afb597b
Add the IRCv3 reply tag to messages sent as responses to a user.
2024-02-22 13:23:18 +00:00
Sadie Powell
f93d9e7698
Store the source message identifier in CommandSource.
2024-02-22 13:19:36 +00:00
Sadie Powell
7423fa9998
Route message tags into more message functions.
2024-02-22 13:03:53 +00:00
Sadie Powell
d4f4bcf23c
Remove UplinkSocket::Message now nothing uses it.
2024-02-22 00:14:08 +00:00
Sadie Powell
aefbb4fbda
Rework SendModeInternal to be usable with Uplink::Send.
2024-02-22 00:14:08 +00:00
Sadie Powell
9b77fdf5b6
Rework SendNumericInternal to be usable with Uplink::Send.
2024-02-22 00:14:08 +00:00
Sadie Powell
c4ab550ec7
Add Uplink::Send, rework message formatting.
...
This is the new way of sending messages to the uplink inspired by
the work done in the old git master. This will allow us to do new
things involving tags in the future.
2024-02-22 00:14:08 +00:00
Sadie Powell
3ecf6b495b
Document IRCDProto::Parse.
2024-02-22 00:14:08 +00:00
Sadie Powell
8475697e3b
Inline, constify, and document GetProtocolName.
2024-02-22 00:14:08 +00:00
Sadie Powell
85687781d1
Include tags in OnMessage.
2024-02-22 00:14:08 +00:00
Sadie Powell
07373c8cf2
Move IRCDProto member initializers to the header.
2024-02-21 13:55:48 +00:00
Sadie Powell
89594d4557
Add a method to the ns_cert API for replacing a certificate.
...
This will be used for upgrading certificate fingerprints when the
InspIRCd 1206 protocol support is added.
2024-02-21 13:30:16 +00:00