1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-07 15:03:13 +02:00
Commit Graph

5513 Commits

Author SHA1 Message Date
Bram Matthys f71f6c8fe3 Another update to positive and negative mask rules, the rules are now:
- If you have only negating entries, like '!abc' and '!def', then
  we assume an implicit * rule first, since that is clearly what
  the user wants.
- If you have a mix, like '*.com', '!irc1*', '!irc2*', then the
  implicit * is dropped and we assume you only want to match *.com,
  with the exception of irc1*.com and irc2*.com.
- If you only have normal entries without ! then things are
  as they always are.

This patch also makes the behavior for unreal_mask_match() and
unreal_mask_match_string() the same.
2021-06-19 08:44:03 +02:00
Bram Matthys f7d115e87c More fixes and enhancements for deny link::mask
( 5d6738b3e8 )
2021-06-19 08:00:04 +02:00
Bram Matthys 360d3f507f Move try_connections() from core to server module 2021-06-18 17:21:08 +02:00
Bram Matthys 497c3059ea Fix to support existing deny link::mask syntax as well. 2021-06-18 16:05:50 +02:00
Ramiro Bou 5d6738b3e8 Allowing multiple masks in "deny link" blocks. (#140) 2021-06-18 15:13:50 +02:00
Bram Matthys 89755ccec6 ** UnrealIRCd 5.2.0.1 **
Note: existing 5.2.0 users on *NIX can upgrade without restart to
have the spamfilter fix by using:
./unrealircd hot-patch wrongspamfilter520
2021-06-16 08:25:07 +02:00
Bram Matthys fb8c7a5a75 Fix weird behavior for users in pre-connect stage, eg showing
up in WHOIS. Reported by armyn and Valware.
2021-06-15 20:26:12 +02:00
Bram Matthys 8a655b8bb4 Fix spamfilter not working with type 'c'.
If you had a spamfilter on type 'c' but not on 'p' then it would not
trigger. Reported by armyn in https://bugs.unrealircd.org/view.php?id=5913
This probably went unnoticed because most people add spamfilters
on 'pc' (or even 'pcnN').
2021-06-15 20:01:58 +02:00
Bram Matthys ce807c4e21 Fix Windows build 2021-06-14 10:22:46 +02:00
Bram Matthys de4c09eae4 ** UnrealIRCd 5.2.0 ** 2021-06-14 10:14:23 +02:00
Bram Matthys 572b349cbd set::restrict-commands: new option exempt-tls which allows SSL/TLS users
to bypass a restriction.
2021-06-14 08:00:48 +02:00
Bram Matthys 389a971f96 Fix rapid autoconnect protection to work with >120 servers (:D) 2021-06-07 17:11:20 +02:00
Bram Matthys 36097fbdce Fix SQUIT being sent back to where it came from.
Reported by Ariadne Conill in https://bugs.unrealircd.org/view.php?id=5906

This patch applies cleanly against 5.2.0-rc1 and 5.0.9.x.

Needs more testing, though, as fiddling with SQUIT code and the
various directions and far/near server distinctions can be tricky.
2021-06-07 10:22:23 +02:00
Bram Matthys 5237ebaabc Fix crash in 5.2.0-rc1: don't call flood_limit_exceeded_log() if a remote
server causes the target flood protection limit to be hit for a target
user or a channel.
2021-06-07 07:48:03 +02:00
Bram Matthys cc490ca924 When using old set::anti-flood settings it is now a (big) warning instead
of an error. Also the warning will differ depending on whether you use
the defaults that were in example.conf for a long time, or some custom
settings.

It's not perfect but should help people with migrating from 5.0.x to 5.2.x.
2021-06-06 17:35:17 +02:00
Bram Matthys 3335eb3305 Fix a doc URL and a (now) confusing syntax example
[skip ci]
2021-06-06 17:09:31 +02:00
Bram Matthys 3188b7be2d Small code cleanup for two efuncs, so the names match. 2021-06-06 08:33:20 +02:00
Bram Matthys 20c20b3053 Try to explain to people that symmetric encryption works with keys (:D) 2021-06-05 19:20:11 +02:00
Bram Matthys 173af8c88c ** UnrealIRCd 5.2.0-rc1 ** 2021-06-04 11:13:02 +02:00
Bram Matthys f6c2b93c72 Show how many sockets/clients the server can handle in 'STATS S'.
Suggested by westor in https://bugs.unrealircd.org/view.php?id=5838

This also fixes a bug where output from modules for 'STATS S' was
shown twice (eg: modef-default-unsettime shown twice).
2021-06-04 10:09:28 +02:00
Bram Matthys 25db0c73e4 Compiler too dumb to detect this properly... 2021-06-04 09:11:15 +02:00
Bram Matthys 6771c98d76 Move check for secret block to beginning of unrealdb_open() so we don't
end up with a 0 byte file due to an easy-to-avoid error later on.
2021-06-04 09:09:06 +02:00
Bram Matthys a7f2406557 Add security-group "webirc" by default. This matches users who
connect through approved webirc gateways, the ones in
https://www.unrealircd.org/docs/WebIRC_block
2021-06-02 19:32:10 +02:00
Bram Matthys 40bc3ef8cc Bump version to 5.2.0-git. This is still work in progress.
Note that we are on the 'unreal52' branch now and have left 'unreal50'
2021-06-02 15:27:14 +02:00
Bram Matthys 517298007d If no log { } block is present, we used to only log errors to ircd.log.
From now on we simply enable ALL logging to ircd.log, so also connects,
kills, and so on.
2021-05-30 19:35:52 +02:00
Bram Matthys 3eb0bc24ea Add log::flags "flood" to log flood messages 2021-05-30 19:30:36 +02:00
Bram Matthys f8a732747b Get rid of mempool LOG_DBG which is never used 2021-05-30 19:27:35 +02:00
Bram Matthys 6358a2e5ff Remove this check due to clang complaining. Whatever. 2021-05-30 19:11:50 +02:00
Bram Matthys 5acef88ceb All violatons of target-flood, nick-flood, join-flood, away-flood,
invite-flood, knock-flood, max-concurrent-conversations are now
reported to opers with the snomask 'f' (flood).
2021-05-30 19:10:18 +02:00
Bram Matthys 6f92233919 The set:anti-flood block has been redone so you can have different limits
for "unknown-users" and "known-users".
As a reminder, by default, "known-users" are users who are identified
to services OR are on an IP that has been connected for over 2 hours
in the past X days.
See https://www.unrealircd.org/docs/FAQ#new-anti-flood-block
for more information on the layout of the new block.

NOTE: This actual feature, the relase notes and the documentation
      are all work in progress.
2021-05-30 18:45:27 +02:00
Bram Matthys 3076ed5a98 Make pretty_time_val() output like "2m30s" instead of "2 minutes 30 seconds".
I think people will understand both and it is currently rather long.
And a bit confusing too with all the spaces, easy to overlook something eg
in /STATS S where it is being used.
2021-05-30 14:50:27 +02:00
Bram Matthys 79ded54df1 Make join-flood use the new framework too, well... partially anyway. 2021-05-28 18:08:07 +02:00
Bram Matthys 36b9faa7cd Code cleanup: move flood control to generic system 2021-05-28 17:59:39 +02:00
Bram Matthys 3e1f092afc Rename FLD_* to CHFDL_* in chanmodes/floodprot.c, so it does
not clash with future stuff.
2021-05-28 15:48:54 +02:00
Bram Matthys 191990b881 Code cleanup: at some places "ClientUser" was used instead of "User". 2021-05-28 15:26:58 +02:00
Bram Matthys d9c0397e25 Code cleanup: this zeroing isn't useful as we already memset. 2021-05-28 15:25:10 +02:00
Bram Matthys da519ae04a Get rid of duplicate checks for anti-flood.
Sorry this is too much effort and i think admins should be smart
enough to figure this out themselves.
2021-05-28 14:52:09 +02:00
Bram Matthys 78ca5ecc3e Add "draft/bot" message tag to messages from +B clients.
As mentioned in https://ircv3.net/specs/extensions/bot-mode
2021-05-28 10:36:38 +02:00
Bram Matthys 0bd813733f Fix file header
[skip ci]
2021-05-28 10:07:26 +02:00
Bram Matthys 845a582d76 Add support for +draft/reply and load the module by default.
See https://ircv3.net/specs/client-tags/reply for the draft.

Can be used by clients to indicate to which message they are writing
a reply. This can be especially useful for bots, to indicate that
a response belongs to a user request, eg a !trigger.
2021-05-28 09:14:40 +02:00
Bram Matthys a85a38e69d Add the ability to SPAMFILTER message-tags.
The new target type is called 'T' and we match against "name=value"
of each message tag (or just "name" if it is without value).

Example: SPAMFILTER ADD -simple T kill 0 this_is_a_test +typing=active
(No this is not a suggestion :D)

This probably won't be used much at all, but it is good to have the
option available in case there is some massive problem,
especially since more message tags may pop up sooner or later.

Caveat: this is actually a bit slow as we may have to check multiple
message tags for a single line.
If there are zero message-tag spamfilters then we will automatically
short-circuit and save all this CPU, which will be the most common case.
2021-05-25 20:31:10 +02:00
Bram Matthys 264ed614fc Implement Sec-WebSocket-Accept from
https://github.com/ircv3/ircv3-specifications/pull/342
2021-05-24 18:33:55 +02:00
Bram Matthys 872aa93635 Move some string helpers to src/misc.c
skip_whitespace() and read_until()
2021-05-24 18:32:57 +02:00
Bram Matthys cd9ac916de Allow setting set::history::channel::playback-on-join::lines to zero
in case you want to disable this feature.

Note that clients that are using CHATHISTORY will already no longer
receive history-on-join ("push") since they REQ a CAP that will inhibit
this and they will "pull" the history instead when they want/need to.

So... this option is really only there if you want to disable it for
non-CHATHISTORY-clients.
2021-05-24 09:59:20 +02:00
Bram Matthys 2375c35f2b Fix crashreporter to show big warning if you have 3rd party modules
loaded. The code to raise this warning was already present but it
was not being shown in many cases (when it actually should).

It now looks like this, if you run ./unrealircd start and previously
crashed AND have any 3rd party mods loaded:

The IRCd has been started now (and is running), but it did crash 1 seconds ago.
Crash report generated in: /home/ircd/unrealircd/tmp/crash.report.core.1621838267.txt

** IMPORTANT **
Your UnrealIRCd crashed and you have 3rd party modules loaded (modules created
by someone other than the UnrealIRCd team). If you installed new 3rd party
module(s) in the past few weeks we suggest to unload these modules and see if
the crash issue dissapears. If so, that module is probably to blame.
If you keep crashing without any 3rd party modules loaded then please do report
it to the UnrealIRCd team.
The reason we ask you to do this is because MORE THAN 95% OF ALL CRASH ISSUES
ARE CAUSED BY 3RD PARTY MODULES and not by an UnrealIRCd bug.

Shall I send a crash report to the UnrealIRCd developers?
NOTE: If the crash is caused by a 3rd party module then UnrealIRCd devs can't fix that.
2021-05-24 08:38:07 +02:00
Bram Matthys 842e06d7d3 Possibly fix small memory leak. 2021-05-23 13:59:57 +02:00
Bram Matthys 92b9fa07a1 Make history backend non-PERM so it can be upgraded on the fly.
Tested:
* Rehashing and sending messages before after (multiple times)
* Terminating
* Unloading by commenting out
2021-05-23 13:56:03 +02:00
Bram Matthys 88d7829e5b Allow lower set::restrict-commands::xyz::connect-delay values.
Suggested by Le_Coyote in https://bugs.unrealircd.org/view.php?id=5873
2021-05-23 09:46:33 +02:00
Bram Matthys 137cc7f20b Update some URLs
Suggested by westor in https://github.com/unrealircd/unrealircd/pull/136
2021-05-23 09:44:18 +02:00
Bram Matthys 9c0710a9a4 Adjust +H setting if a channel goes -r and had a high setting
that was only allowed for registered channels (+r).
2021-05-23 09:26:38 +02:00