Commit Graph

5811 Commits

Author SHA1 Message Date
Alexey Sokolov cfd8d3f88d Make PING skip the flood queue just like PONG does
It's unlikely server has nothing to send at all for all the other messages ZNC is sending and that there's nothing happening server-side too. But PING at least is guaranteed to give the response, so ZNC shouldn't disconnect too eagerly
2025-05-11 19:36:53 +01:00
Alexey Sokolov aaeab22ea3 Fix processing of multi-token CAP ACK
I broke it in 5943bc9ed9 while fixing #1950
2025-05-11 18:49:35 +01:00
ZNC-Jenkins cc1333fd5e Update translations from Crowdin for bg_BG da_DK de_DE el_GR es_ES fr_FR id_ID it_IT nl_NL pl_PL pt_BR pt_PT ro_RO ru_RU tr_TR 2025-05-11 00:26:00 +00:00
Alexey Sokolov 4a15e1cf36 Fix unit test after previous change
See #1949
2025-05-10 21:00:22 +01:00
Alexey Sokolov 3d1551b7f2 Don't forward client JOINs during registration
ZNC remembers that it should join these channels, and will join them after registration. But if client automatically joins some channels, we don't want it to be added to send queue before parts of registration itself (CAP, AUTHENTICATE), because server will just disconnect with "Registration timeout". After registration is complete, using /join still joins the channel immediately.

Only limiting this to joins, because server may request some input from user to finish registration, and joins are the ones which are prone to be sent automatically by client to cause issues.

Fix #1949
2025-05-10 20:09:25 +01:00
ZNC-Jenkins 8dab274ed8 Update translations from Crowdin for bg_BG da_DK de_DE el_GR es_ES fr_FR id_ID it_IT nl_NL pl_PL pt_BR pt_PT ro_RO ru_RU tr_TR 2025-05-10 00:25:54 +00:00
Alexey Sokolov 5e5d6cac59 merge 2025-05-09 23:59:54 +01:00
Alexey Sokolov 5943bc9ed9 Send several caps in the same CAP REQ
If they got NAKed, then retry them one by one

This should speed up the usual case

Fix #1950
2025-05-09 23:46:11 +01:00
Alexey Sokolov e80b11b5b5 Move base64 table from header to .cpp 2025-05-09 21:54:36 +01:00
Alexey Sokolov d707b41ac3 Add more stuff to .gitignore 2025-05-09 21:09:40 +01:00
ZNC-Jenkins 2ca596ce8f Update translations from Crowdin for bg_BG da_DK de_DE el_GR es_ES fr_FR id_ID it_IT nl_NL pl_PL pt_BR pt_PT ro_RO ru_RU tr_TR 2025-05-09 00:26:31 +00:00
Alexey Sokolov c2f299abdf Filter out server-dependent caps in CAP NEW using blacklist too 2025-05-08 23:25:58 +01:00
Alexey Sokolov 1c197a5508 Add a way to disable certain capabilities
This is a way for admins to mitigate some issues caused by caps if such issues ever arise.

E.g. add this to global level in znc.conf:

DisableClientCap = sasl
DisableServerCap = chghost
DisableServerCap = message-tags

Then these caps will be NAKed to client / not requested from server.

Note that this mechanism doesn't fully prevent a cap from being activated, e.g. one could use *send_raw module to request it from server even when disabled.
2025-05-08 21:55:40 +01:00
Alexey Sokolov 1063b7f5d6 CI: handle the case where junit is not outputted
though maybe github actions should also use one
2025-05-04 19:56:35 +01:00
Alexey Sokolov ca6ae51179 CI: try to fix jenkins from counting every test twice 2025-05-04 19:41:11 +01:00
Alexey Sokolov 2f110896e7 CI: restore JUnit output processing in Jenkinsfile
via wrapper which modifies the environment per test

Workaround for https://github.com/google/gtest-parallel/pull/89
2025-05-04 18:38:43 +01:00
Alexey Sokolov 267b2fee99 ZNC 1.10.0-alpha1 2025-05-04 12:29:18 +01:00
Alexey Sokolov 553ce0bfd8 Mention boost version in readme 2025-05-04 12:12:02 +01:00
Alexey Sokolov 47c4fa6cd8 Merge pull request #1939 from DarthGandalf/boost
Find boost in CONFIG mode of CMake
2025-05-04 12:10:10 +01:00
Alexey Sokolov 50f085cc2f Disable i18n test when i18n is disabled 2025-05-04 10:36:48 +01:00
Alexey Sokolov 1ec5408d7a Find boost in CONFIG mode of CMake
To silence CMake's warning

Fix #1934
2025-05-04 10:29:50 +01:00
Alexey Sokolov 26d2b8fc86 Add doxygen comment to CMessage::GetType() 2025-05-02 19:32:30 +01:00
ZNC-Jenkins ca6d6cd27f Update translations from Crowdin for bg_BG da_DK de_DE el_GR es_ES fr_FR id_ID it_IT nl_NL pl_PL pt_BR pt_PT ro_RO ru_RU tr_TR 2025-05-02 00:24:52 +00:00
Alexey Sokolov 5b871e74aa Bring unix socket syntax of AddPort in line with AddServer 2025-05-02 01:00:56 +01:00
Alexey Sokolov 2a5dc04ef5 Merge pull request #1945 from DarthGandalf/unix
Unix sockets
2025-05-02 00:47:26 +01:00
Alexey Sokolov 00579d151e Pass %p to LLVM_PROFILE_FILE instead of wrapper 2025-05-01 22:44:39 +01:00
Alexey Sokolov 2f02a9ea00 Merge branch 'master' into unix 2025-05-01 22:41:27 +01:00
Alexey Sokolov 92fc74cc00 Try to fix codecov config
Apparently they changed YAML parser, and ! now makes it fail
2025-05-01 22:41:13 +01:00
Alexey Sokolov 864252bfc6 update csocket 2025-05-01 22:31:12 +01:00
Alexey Sokolov 5974d0ff3b Workaround for parallel writing of LLVM profiler data
Skip failing tests on cygwin: we'll just have to mark the unix socket feature as "experimental", but shouldn't block merging it due to cygwin being weird
2025-05-01 22:24:10 +01:00
TehPeGaSuS 056c7d8069 Explain how install ZNC in a custom path (#1946)
Added the the `-DCMAKE_INSTALL_PREFIX` for those wanting to install ZNC in a custom path.

Co-authored-by: Alexey Sokolov <alexey+github@asokolov.org>
2025-04-29 07:51:57 +01:00
Alexey Sokolov 5184d662d3 macos test probably should be fixed now 2025-04-28 22:08:13 +01:00
Alexey Sokolov 81e7fd69de WIP debugging failures on mac and cygwin... 2025-04-28 00:55:13 +01:00
Alexey Sokolov 1ac3571c60 Add modified Qt to NOTICE 2025-04-22 01:15:23 +01:00
Alexey Sokolov 951c39479f Update several tests to accept empty string or "localhost"
For unix sockets the behavior of getpeername() is different on different OS

This required to add support of regex to the integration test framework
2025-04-22 01:10:22 +01:00
Alexey Sokolov d8234a1a71 Fix the IP in SASL
This is wrong PR for that, but I noticed the issue while debugging failed tests here
2025-04-22 00:10:21 +01:00
Alexey Sokolov e084af4b7d more hacks to the cygwin hack 2025-04-21 17:33:35 +01:00
Alexey Sokolov 174a57a6ab fix typo 2025-04-21 16:38:33 +01:00
Alexey Sokolov 6b6614cffc Adapt cygwin workaround to ancient cygwin's qt version 2025-04-21 16:36:39 +01:00
Alexey Sokolov ce0a1584ba Cygwin: try a horrible hack to fix integration test with unix sockets 2025-04-21 15:47:21 +01:00
Alexey Sokolov 2af8cef4c2 update csocket 2025-04-21 11:22:24 +01:00
Alexey Sokolov fc15b8ec5e Make 'make inttest' run in parallel even outside CI 2025-04-21 09:31:08 +01:00
Alexey Sokolov 4c8e780a60 Revert "CI: parallelize integration test"
This reverts commit b1a03fa1cc.

Let's plug it as part of 'make inttest'
2025-04-21 09:06:23 +01:00
Alexey Sokolov 81e3c908ad Fix include 2025-04-21 01:01:42 +01:00
Alexey Sokolov b1a03fa1cc CI: parallelize integration test
I'm not sure whether 'make inttest' should do this or not
2025-04-21 00:52:29 +01:00
Alexey Sokolov b642d92ce7 Switch integration test to mostly use unix sockets
By not using the same hardcoded number for every test, we can parallelize the test now.

There are several cases remaining where we can't easily use unix sockets (e.g. QSslSocket or imapauth module), for that ask kernel what port number is currently free to use. This is a bit racy though.
2025-04-21 00:19:46 +01:00
Alexey Sokolov 63d10ccb17 Add support to connect to server via unix socket
The syntax for AddServer command and config is chosen to be unix:/path or unix:ssl:/path

For security reasons, only admins can add such servers, to prevent users from poking around the file system.
2025-04-20 22:40:20 +01:00
Alexey Sokolov 66b17926cc update csocket 2025-04-20 08:54:25 +01:00
Alexey Sokolov d3a7f125cf Make unix sockets work from modules 2025-04-20 08:31:36 +01:00
ZNC-Jenkins ea33a85ccb Update translations from Crowdin for bg_BG da_DK de_DE el_GR es_ES fr_FR id_ID it_IT nl_NL pl_PL pt_BR pt_PT ro_RO ru_RU tr_TR 2025-04-20 00:26:50 +00:00