155 Commits

Author SHA1 Message Date
Alexey Sokolov 53ffcc909b add include 2026-06-08 22:43:13 +01:00
Alexey Sokolov 2a9359d1fb Merge branch 'nossl' of github.com:DarthGandalf/znc into nossl 2026-06-08 22:07:34 +01:00
Alexey Sokolov ad12a6011d Skip tests which require SSL 2026-06-08 22:07:11 +01:00
Alexey Sokolov 14846166c6 Update test/integration/framework/znctest.cpp
Co-authored-by: dgw <dgw@technobabbl.es>
2026-06-08 22:00:37 +01:00
Alexey Sokolov 197a235764 test: Don't wait for SSL question if built without SSL
And don't hardcode 6667 in preparation for #2022
2026-06-08 21:54:34 +01:00
Falk Rund ad6a397ca4 Welcome to 2026
[skip ci]
2026-01-01 13:44:32 +01:00
Alexey Sokolov d8b8c16783 Merge branch '1.10.x' 2025-12-10 00:55:07 +00:00
Alexey Sokolov 8c983564e8 Add test for modperl SCString functions.
Pass CClient to the OnClientGetSASLMechanisms callback.

See #1970
2025-07-31 23:47:26 +01:00
KindOne d9ee1da873 Fix spacing in StripControls test. 2025-07-15 00:01:31 -04:00
RealKindOne f89ae9d158 stripcontrols: Use new On...Message events.
Added OnTopicMessage and stripping for /list and /topic output.

Fixes #1179
2025-07-08 01:35:52 -04:00
RealKindOne b61e21e079 Fix AwayNotify test. 2025-07-06 23:02:10 -04:00
RealKindOne 106a9fcbb4 Make account, away-notify, and chghost only send to client if attached into a channel. 2025-06-26 10:15:13 -04:00
Alexey Sokolov 4b12c0dc3c Fix nullptr dereference
If client sends TAGMSG while server is not connected
2025-06-23 22:52:34 +01:00
Alexey Sokolov 7b7f691213 Don't store "this" in static variable
Fix #1960

This could also cause use-after-free if the first connected socket disconnects
2025-06-23 22:41:08 +01:00
Alexey Sokolov b32d3dbbc9 Fix test on cygwin
Depending on timing between client and server, the initial JOIN can come in either order - in one case forwarding directly from client, in another joining the channels after client disconnected.
2025-06-09 20:20:50 +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
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
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 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 50f085cc2f Disable i18n test when i18n is disabled 2025-05-04 10:36:48 +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 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
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 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 e084af4b7d more hacks to the cygwin hack 2025-04-21 17:33:35 +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 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 d3a7f125cf Make unix sockets work from modules 2025-04-20 08:31:36 +01:00
Alexey Sokolov 5d6aceac79 Add test for OnInvite()+OnInviteMessage() 2025-04-18 22:36:53 +01:00
Alexey Sokolov 5befe2f7f8 Implement invite-notify 2025-04-18 22:23:01 +01:00
Alexey Sokolov ef4b59005c CTCP sent to *status shouldn't reach server 2025-04-11 21:45:45 +01:00
Alexey Sokolov f93829e3b3 Implement message-tags spec
Message tags were supported already, but not arbitrary tags, and not
TAGMSG
2025-04-11 21:28:10 +01:00
Alexey Sokolov ce47e7ea3d Fix sending server passwords with spaces in them
Fix #1928
Fix #1899
2025-03-16 21:31:34 +00:00
Alexey Sokolov ab4125692c Remove accidentally added header from previous commit 2025-03-16 11:14:01 +00:00
Alexey Sokolov 89e6d58d5a SASL: Move tests which are not about modules
from modules.cpp to core.cpp
2025-03-16 09:46:10 +00:00
Alexey Sokolov 0a45c4710a SASL: Support receiving USER and NICK after CAP END 2025-03-16 09:44:10 +00:00
Alexey Sokolov a7dffb8ff1 Add modperl support for sasl 2025-03-16 00:42:27 +00:00
Alexey Sokolov 93e364b296 Add modpython sasl test 2025-03-15 22:43:35 +00:00
Alexey Sokolov 9f8015b8ad Add several more tests to sasl 2025-02-28 20:48:24 +01:00
Alexey Sokolov 843b40becc Merge branch 'master' into sasl 2025-02-25 18:42:51 +00:00
Alexey Sokolov fc0dd1431f fix flaky chghost test 2025-02-25 18:41:02 +00:00
Alexey Sokolov 37457105f3 Support SASL EXTERNAL in certauth 2025-02-24 22:52:47 +00:00
Alexey Sokolov 6e9980d67f Various SASL changes 2025-02-22 15:59:52 +00:00