1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-12 17:14:46 +02:00
Commit Graph

452 Commits

Author SHA1 Message Date
Bram Matthys 24622144b1 Bump version to 6.0.8-git
[skip ci]
2023-03-25 09:19:41 +01:00
Bram Matthys 83d2498ec8 Add configure check for and use X509_check_host() instead of
always using our own implementation (that is not really ours,
by the way).
2023-03-25 08:31:25 +01:00
Bram Matthys da3c1c6544 ** UnrealIRCd 6.0.7 ** 2023-03-24 13:26:29 +01:00
Bram Matthys 62f79c3375 Update shipped c-ares library to 1.19.0 (28-jan-2023) 2023-03-22 09:41:24 +01:00
Bram Matthys 6b9cb96787 Update shipped Jansson library to 2.14 (9-sep-2021) 2023-03-22 09:39:42 +01:00
Bram Matthys ed2113e97c Update PCRE2 to 10.42 (12-dec-2022) 2023-03-22 09:38:01 +01:00
Bram Matthys 4b4562516c Another attempt at UTF8-aware spamfilter.
This was previously tried at 19-apr-2020 in bc70882bd3
in UnrealIRCd 5.0.5. Sadly it had to be reverted immediately with a quick 5.0.5.1
release, all because of a PCRE2 100% CPU usage. Since then that bug has been fixed,
plus another bug. I'm now readding it "as an option" that is marked experimental.
Hopefully people test it out and can report back if it works well and then we can
make it the default someday.

This makes it a runtime setting so makes it much easier to switch back/forth if
there are any issues without recompiling anything. Had to use a bit more code now
though to handle the recompiling of spamfilters if the setting is changed.

Original issue was https://bugs.unrealircd.org/view.php?id=5187

* [Spamfilter](https://www.unrealircd.org/docs/Spamfilter) can be made UTF8-aware.
  * This is experimental, to enable: `set { spamfilter { utf8 yes; } }``
  * Case insensitive matches will then work better. For example, with extended
    Latin, a spamfilter on `ę` then also matches `Ę`.
  * Other PCRE2 features such as [\p](https://www.pcre.org/current/doc/html/pcre2syntax.html#SEC5)
    can then be used. For example you can then set a spamfilter with the regex
    `\p{Arabic}` to block all Arabic script.
    Please do use these new tools with care. Blocking an entire language
    or script is quite a drastic measure.
  * As a consequence of this we require PCRE2 10.36 or newer. If your system
    PCRE2 is older than this will mean the UnrealIRCd-shipped-library version
    will be compiled and `./Config` may take a little longer than usual.
2023-03-22 09:00:31 +01:00
Bram Matthys e767dc5e0e Silence warning on clang 15+ (such as in upcoming Ubuntu 23.04)
with regard to RunHook() and direct hook calls.
2023-03-13 13:56:56 +01:00
Bram Matthys b370b89545 Bump version to 6.0.7-git 2023-02-08 08:08:11 +01:00
Bram Matthys 01fd2da627 ** UnrealIRCd 6.0.6 ** 2023-02-03 06:56:16 +01:00
Bram Matthys 998687bf13 Bump version to 6.0.6-git 2023-01-07 18:15:11 +01:00
Bram Matthys 6d81d04036 Re-add --enable-opt to sodium, and remove it from jansson.
This fixes the fix in 8d228f5dbe.

(--enable-opt in sodium enables additional CPU-specific optimization,
 --enable-opt in jansson does not exist and raised a warning)
2022-12-30 11:55:31 +01:00
Bram Matthys 75368e462a ** UnrealIRCd 6.0.5 ** 2022-12-29 10:07:19 +01:00
Bram Matthys 7897782747 *** UnrealIRCd 6.0.5-rc2 *** 2022-12-23 08:52:41 +01:00
Sam James d9d423ad7a configure.ac: fix -Wimplicit-function-declaration (#242)
Clang 16 makes -Wimplicit-function-declaration error by default.
Unfortunately, this can lead to misconfiguration or miscompilation of software as configure
tests may then return the wrong result.
We also fix -Wstrict-prototypes while here as it's easy to do and it prepares us for C23.
2022-12-18 07:21:46 +00:00
Bram Matthys 8d228f5dbe Remove unused --enable-opt argument to jansson ./configure 2022-12-07 09:06:42 +01:00
Bram Matthys 8f311bb975 Update shipped argon2 to 20190702 (latest release)
from https://github.com/P-H-C/phc-winner-argon2/releases
2022-12-07 09:00:42 +01:00
Bram Matthys efaba7f91e Rename argon2-20181209.tar.gz to argon2.tar.gz so name keeps consistent
like all the other shipped libs.
2022-12-07 08:57:59 +01:00
Bram Matthys bb0a50d839 ** UnrealIRCd 6.0.5-rc1 ** 2022-12-07 08:53:44 +01:00
Bram Matthys 401ab6f5a1 Make strlncpy() and strlncat() use strlncat() instead of strlen().
This fixes a possible crash when using RPC with unix domain sockets,
reported by Valware.

This also adds a configure check so we use our own strlncat if the
C library does not have one, e.g. some non-Linux.
2022-08-20 13:50:19 +02:00
Bram Matthys 85784e8118 Bump version to 6.0.5-git 2022-06-19 16:30:50 +02:00
Bram Matthys cbfcfa1428 Create src/modules/rpc directory 2022-06-19 13:13:33 +00:00
Bram Matthys 88190d08c4 ** UnrealIRCd 6.0.4 ** 2022-06-17 13:33:13 +02:00
Bram Matthys 020c3d1fa3 ** UnrealIRCd 6.0.4-rc2 ** 2022-06-03 18:48:52 +02:00
Bram Matthys b183a3ea7a Add -Wno-format-overflow as unfortunately this option is too dumb.
Eg it warns on sprintf() usage even if there is a strlen() check right above it.

Fixes compile warning on Ubuntu 22.04 / GCC 11.
2022-05-28 18:13:35 +02:00
Bram Matthys 3936059768 ** UnrealIRCd 6.0.4-rc1 ** 2022-05-25 17:14:32 +02:00
Bram Matthys 1327fe9bfe Bump version to 6.0.4-git 2022-04-08 08:42:22 +02:00
Bram Matthys cedd23ae9c ** UnrealIRCd 6.0.3 ** 2022-04-01 16:27:18 +02:00
Robert Scheck a38c2ba491 Require PCRE2 >= 10.00 again (because of commit 329fd07f3a) (#196) 2022-03-22 06:44:02 +01:00
Bram Matthys 252b856afe Bump version to 6.0.3-git as this is git / work in progress. 2022-01-31 09:36:48 +01:00
Bram Matthys 29fd2e772a ** UnrealIRCd 6.0.2 ** 2022-01-28 17:02:19 +01:00
Bram Matthys 35c3c87dc4 ** UnrealIRCd 6.0.2-rc1 ** 2022-01-07 14:07:36 +01:00
Bram Matthys 7678bc38ed Update shipped c-ares from 1.17.2 to 1.18.1 (27-oct-2021) 2022-01-07 14:03:01 +01:00
Bram Matthys 329fd07f3a Revert set::spamfilter::utf8-support from yesterday.
This will be for a later release, needs more thought and work.
2022-01-06 18:03:26 +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 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
Bram Matthys a35e9f7af9 Bump version to 6.0.2-git (start of dev for next version) 2021-12-30 08:58:08 +01:00
Bram Matthys cdc433f8c0 ** UnrealIRCd 6.0.1.1 ** 2021-12-29 19:30:49 +01:00
Bram Matthys faab128472 Bump version to 6.0.1 and create draft release notes (unreleased yet!) 2021-12-29 12:02:57 +01:00
Bram Matthys 359f7b4675 Get UnrealIRCd 6.0.0 ready, but don't release *yet*. 2021-12-15 16:54:37 +01:00
Bram Matthys dc53818b29 ** UnrealIRCd 6.0.0-rc2 ** 2021-12-04 10:26:57 +01:00
Bram Matthys 40723bbce8 Make shipped c-ares version match the one in U5 (1.17.2) 2021-12-04 09:31:35 +01:00
Bram Matthys 18e3d37b33 Probably a good idea to call the version 6.0.0-rc1 too (thanks Han`) :D 2021-11-27 17:08:10 +01:00
Bram Matthys 001c1e7843 Turn AddressSanitizer off by default and ask in ./Config 2021-11-27 13:51:19 +01:00
Bram Matthys 3320dce301 ** UnrealIRCd 6.0.0-beta4 ** 2021-11-21 17:00:30 +01:00
Bram Matthys 8b58218d29 ** UnrealIRCd 6.0.0-beta3 ** 2021-11-19 19:10:39 +01:00
Bram Matthys c4a64f4aab ** UnrealIRCd 6.0.0-beta2 ** 2021-11-06 19:05:14 +01:00
Bram Matthys b29a9be288 ** UnrealIRCd 6.0.0-beta1 ** 2021-10-31 08:40:09 +01:00