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

9063 Commits

Author SHA1 Message Date
Bram Matthys 856f29ae54 Update release notes a bit
[skip ci]
2022-01-05 18:21:22 +01:00
Bram Matthys dedff543b5 Add option set::spamfilter::utf8-support which defaults to 'no' for now.
When you set this to 'yes' you get more options...
See next (modified) copy-paste from April 2020, which had to be reverted
because PCRE2 was broken. Now it's an opt-in and hopefully matured a bit.

This means:
* Case insensitive matches work better in UTF8 now, such as extended Latin.
  For example, a spamfilter on "ę" now also matches "Ę", while previously
  it did not catch this.
* Other PCRE2 features such as https://www.pcre.org/current/doc/html/pcre2syntax.html#SEC5
  are now available. For example you can now set a spamfilter with the regex
  \p{Arabic} to block all Arabic script, or
  \p{Cyrillic} to block all Cyrillic script (such as Russian)
  Use these new tools with care, of course. Blocking an entire language,
  or script, is quite a drastic measure.

All of this was possible because of the new PCRE2_MATCH_INVALID_UTF
compile time option which was introduced in PCRE2 10.34. Now, that
version turned out to be buggy. As recent as PCRE 10.36 some major bugs
were fixed. This also means we now require at least PCRE2 10.36 version
so everyone can benefit from this new spamfilter UTF8 feature, IF they
enable set::spamfilter::utf8-support, that is.

Many systems come with older PCRE2 versions so this means we will
fall back to the shipped PCRE2 version in UnrealIRCd. This means
./Config will take a little longer to compile things.

For packagers (rpm/deb/ports): if you choose to patch configure to
not require such a recent PCRE2, then please do not allow enabling
of set::spamfilter::utf8-support since it will likely cause crashes
and misbehavior. Check PCRE2 changelog, CTRL+F at PCRE2_MATCH_INVALID_UTF
2022-01-05 18:08:52 +01:00
Bram Matthys b821aa419f Ship with PCRE2 10.39 (29-October-2021) 2022-01-05 17:59:40 +01:00
Bram Matthys ab8fab79e3 Drop --disable-unicode from PCRE2 and require 10.34 for
PCRE2_MATCH_INVALID_UTF support. More commits to follow.
2022-01-05 17:55:33 +01:00
Bram Matthys dd74e1e63d Update release notes
[skip ci]
2022-01-05 17:30:50 +01:00
Bram Matthys fa1493b930 Add 'WHO <300 t' example and information to HELPOP WHO 2022-01-05 17:30:17 +01:00
Bram Matthys d156a18aba Set defaults for vhost-flood
https://www.unrealircd.org/docs/Anti-flood_settings#vhost-flood
2022-01-05 17:26:32 +01:00
Bram Matthys df0884981e Handle empty strings in config_checkval() 2022-01-05 11:36:46 +01:00
Bram Matthys 1e0bddfbab And some more text improvements in ./Config 2022-01-05 09:32:17 +01:00
Bram Matthys 27bfdef1ca Update wording a bit for geoip 'none'. Indirectly suggested by DeviL. 2022-01-05 09:27:40 +01:00
i 6996c7a485 update RPL_MAP numeric 2022-01-05 00:07:22 +03:00
i 66355370e1 fix RPL_MAPUSERS numeric error 2022-01-04 23:56:29 +03:00
i 1c4da04346 add WHO parameter for searching by connect time 2022-01-04 21:25:36 +03:00
i 7430d3718a add support for rate limiting -x/-t (set::anti-flood::<groupname>::vhost-flood) 2022-01-04 21:23:57 +03:00
i d8f440e9e7 add map percentages 2022-01-04 21:21:38 +03:00
i f4239abc5d update help.ru.conf 2022-01-04 21:17:54 +03:00
Bram Matthys b4d92bf232 Typo typo
[skip ci]
2022-01-04 11:24:04 +01:00
Bram Matthys 8dedffa6c0 Update release notes a bit
[skip ci]
2022-01-04 11:16:38 +01:00
Bram Matthys 33dac730c7 When a remote server forgets to send the TS in a MODE message with the
sender being a server, then we now spread it on with a zero TS so we
avoid a potential desync elsewhere, or at least try to limit it.
2022-01-04 11:10:40 +01:00
Bram Matthys 55969d1ff3 Update relnotes a bit more
[skip ci]
2022-01-03 19:28:48 +01:00
Bram Matthys 1ff5c0c51a Update relnotes a bit
[skip ci]
2022-01-03 18:39:17 +01:00
Bram Matthys ca6a3efdb2 Fix for location of unrealircd.ctl when not in ~/unrealircd/
Reported by Han`
2022-01-03 18:24:29 +01:00
Bram Matthys c4126a2d1e Update preliminary release notes
[skip ci]
2022-01-03 17:58:13 +01:00
Bram Matthys 3818b9eb45 Make unrealircdctl spkifp actually work on Windows 2022-01-03 17:49:29 +01:00
Bram Matthys 4d2cefdbed Fix for Windows build (old srandom call). 2022-01-03 17:05:57 +01:00
Bram Matthys 34fda671f8 And some more config priorities (not important yet) 2022-01-03 17:01:56 +01:00
Bram Matthys 8e7eacadfe Swap order of config_run_blocks() and config_test_blocks() since that
makes more sense when reading the source code.
2022-01-03 16:56:25 +01:00
Bram Matthys 9fef375d0a Make reading priority of config blocks a simple array. 2022-01-03 16:55:47 +01:00
Bram Matthys 92c81b194f Move "spkifp" to unrealircdctl, so it is available for Windows users.
For *NIX users no visible change.
2022-01-03 14:48:00 +01:00
Bram Matthys 3dd7c19c77 Move "gencloak" to unrealircdctl, so it is available for Windows users.
For *NIX users no visible change.
2022-01-03 14:28:10 +01:00
Bram Matthys e35c29f3d5 Move mkpasswd operation to unrealircdctl. For *NIX users no change as this
is done behind-the-scenes (the command is still ./unrealircd mkpasswd).
For Windows users it finally means they can generate passwords via the CLI
using: unrealircdctl mkpasswd pwdhere
2022-01-03 14:14:12 +01:00
Bram Matthys 243c6635da Update /STATS P output a little (since it shows the control channel). 2022-01-03 13:51:46 +01:00
Bram Matthys df0a9e4f37 BuildBot: build unrealircdctl.exe 2022-01-03 13:51:32 +01:00
Bram Matthys 5425c8fbb6 Don't fail on versions older than Windows 10 version 1803.
And be a bit more informative on why unrealircdctl fails on those.
2022-01-03 13:31:24 +01:00
Bram Matthys c02eb3f16c Windows code cleanup: WSAStartup() -> init_winsock() 2022-01-03 13:19:22 +01:00
Bram Matthys 98c0e786b5 Make UnrealIRCd compile on Windows again.
Updated the makefile to build unrealircdctl.exe etc.
2022-01-03 13:10:53 +01:00
Bram Matthys c0c265baee Fix some (totally unimportant) resource leaks and fix a case where,
if UnrealIRCd hung up on client communication without saying goodbye,
we would return a 0 exit code (success).
2022-01-03 09:03:23 +01:00
Bram Matthys a4af100ca8 Memory isn't initialized to zero by dbuf_queue_init(), causing
dbuf->length to be unitialized.
This wasn't an actual problem until yesterday in UnrealIRCd code,
since the whole client struct was initialized to zero, including
client->local->sendQ(->length) etc.
However, now we use the dbuf code elsewhere too (on the stack) and
3rd party modules can use it too, so fix this bug.
2022-01-03 09:02:54 +01:00
Bram Matthys 75a2fde672 Merge branch 'unreal60_dev' of github.com:unrealircd/unrealircd into unreal60_dev 2022-01-02 20:19:21 +01:00
Bram Matthys 39688517b0 Make "./unrealircd rehash" show output on the terminal, same for
"./unrealircd reloadtls" and there is now also a "./unrealircd status"

The output is colorized if the terminal supports it (just like on the
boot screen) and also the exit status is 0 for success and non-0 for
failure. The purpose of all this is that you can easily detect rehash
errors on the command line.

These three commands communicate to UnrealIRCd via the new control
UNIX socket, which is in ~/data/unrealircd.ctl.
This also does a lot of other stuff because we now have an internal
tool called bin/unrealircdctl which is called by ./unrealircd for
some of the commands to communicate to the unrealircd.ctl socket.
Later on more of the existing functionality may be moved to that
tool and we may also provide it on Windows in CLI mode so people
have more of the same functionality as on *NIX.
2022-01-02 20:17:36 +01:00
k4be d8bb78677f Add TS to s2s MODE messages generated by SVS(2)MODE
(if the source is a server).
2022-01-02 20:09:57 +01:00
Bram Matthys 834736070e Make "SVS(2)MODE -b user" work properly for extended bans.
It was missing for a lot of extbans (removing too little) and
for ~t it was removing too much (eg quiet bans).
Bug reported and changes suggested by k4be.

Coders:
Setting extban.options to EXTBOPT_CHSVSMODE has no effect anymore,
just didn't want to remove it so modules would still compile.
We now purely match based on .is_banned_events including BANCHK_JOIN.
2022-01-02 13:12:33 +01:00
Bram Matthys 46bdc1c5e1 Print message about outdated release if automatically rejected by crash handler. 2022-01-02 09:32:33 +01:00
Bram Matthys dbef19cd7a Add initial implementation of UNIX domain sockets (listen::file).
Various things still need to be done: a lot more testing, ability to
set permissions on the file, #ifdef's because of lack of support
on Windows (currently won't compile), etc.

One thing that I don't intend to change is that I chose not to display
the socket in the host but have clients show up as 'localhost' (and
ip '127.0.0.1'). Doing it this way keeps things easy, otherwise we risk
a lot of breakage for nearly nothing gained, really.

Things can be tested via:
listen {
        file "/tmp/listen";
}

and then with netcat:
nc -U /tmp/listen
USER x x x x
NICK hai
etc...
2022-01-01 18:48:17 +01:00
Bram Matthys 40c528acde Add missing space in spamfilter log message.
This is a fix-for-fix b98d02817a.

Reported by armyn in https://bugs.unrealircd.org/view.php?id=6049
2021-12-30 16:42:29 +01:00
Bram Matthys 4e209968fe Fix hang on "Loading IRCd configuration" if DNS is not working correctly.
For example if the 1st DNS resolver is refusing or ignoring requests.
We forgot to call unrealdns_timeout() in the waiting loop, so DNS requests
never timed out and c-ares didn't try the 2nd/3rd server either.

Issue reported by Elodie.
2021-12-30 14:49:29 +01:00
Bram Matthys c5c17f2ccf Include "client_port" (eg 6697) and "server_port" (eg 55123) in JSON
output for local clients.
2021-12-30 13:20:37 +01:00
Bram Matthys 4ca9e9b3c2 Also support show-event in log::destination::channel. 2021-12-30 11:39:51 +01:00
Bram Matthys d677ce04de New option set::server-notice-show-event which, if set to 'no', can be used
to hide the event information (eg. connect.LOCAL_CLIENT_CONNECT) in
server notices. This can be overriden in oper::server-notice-show-event.

See https://www.unrealircd.org/docs/Set_block#set::server-notice-show-event
2021-12-30 11:29:30 +01:00
Bram Matthys 0f52ff76e8 Add link to https://www.unrealircd.org/docs/Log_block#Logging_to_a_channel
in the release notes.
Also add the sub-options: color, json-message-tag and oper-only.
2021-12-30 10:40:01 +01:00