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
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
fc15b8ec5e
Make 'make inttest' run in parallel even outside CI
2025-04-21 09:31:08 +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
Alexey Sokolov
41a0030fdb
Merge branch 'master' into sasl
...
Conflicts:
include/znc/Client.h
src/Client.cpp
src/Modules.cpp
test/integration/tests/modules.cpp
2025-02-13 20:37:32 +00:00
Peter
44e4b95a20
Welcome to 2025 ( #1929 )
2025-02-07 23:23:45 +00:00
Alexey Sokolov
dd99d3e950
simplify test
2024-12-29 15:16:27 +00:00
Alexey Sokolov
579906d686
Don't send emulated chghost-JOIN to channels where the nick wasn't
...
Fix #1924
2024-12-29 14:54:20 +00:00
Alexey Sokolov
20c540af7d
Make CHGHOST work with detached channels
2024-10-15 17:16:32 +01:00
Alexey Sokolov
d49399bbca
Implement chghost capability
...
Interaction with extended-join doesn't yet work correctly, because ZNC
doesn't keep track of everyone's real names
2024-10-15 13:26:20 +01:00
Alexey Sokolov
afefc048d0
Simply disconnect if SASL not available on server
...
Instead of disabling network
This unavailability could be temporarily
Fix #1918
2024-10-13 19:22:48 +01:00
Alexey Sokolov
9e9d75c4b8
Switch integration test to qt6 ( #1916 )
...
Keep using Qt5 for Cygwin and CodeQL
* CI: upgrade ubuntu
2024-09-17 15:24:33 +01:00
Alexey Sokolov
f8552fc814
Skip modperl/modpython tests cleaner
2024-02-25 14:13:32 +00:00
Alexey Sokolov
1c9638a586
Fix bad copy paste in the test
2024-02-11 10:04:59 +00:00
Alexey Sokolov
ca3b76368d
Suspend registration on CAP REQ
...
Fix #1820
2024-02-10 00:53:44 +00:00
Alexey Sokolov
4753228d6d
Fix test
2024-02-10 00:30:23 +00:00
Alexey Sokolov
2b3b224bca
Make modperl support AddServerDependentCapability
2024-01-14 12:11:00 +00:00
Alexey Sokolov
efd136c01c
Make modpython work with server-dependent caps
2024-01-14 11:12:32 +00:00