Alexey Sokolov
3e95cf44a6
Restore test
...
I somehow oversimplified it, breaking it
2026-07-23 02:35:29 +01:00
Alexey Sokolov
133f0ad585
typo
2026-07-23 02:10:28 +01:00
Alexey Sokolov
7d4879ab26
Cleanup previous PR, add integration test for multiple joins
2026-07-22 09:24:52 +01:00
RealKindOne
d2fc5d550a
Apply fixes for IsParting() pull request.
2026-07-22 01:58:01 -04:00
RealKindOne
a0d58c8fed
Add IsParting() flag to track PART commands waiting IRCd response.
...
Fixes potential desync where ZNC marks channel as parted before server
confirms the PART, which could cause issues if the server never replies.
Add unittests and integration tests.
2026-07-21 03:24:38 -04:00
RealKindOne
3ceae3ad26
Fix part/join not working when a client sends '/cycle' or '/hop' command.
2026-07-20 04:33:04 -04:00
RealKindOne
13268feefe
Revert "Revert "Fix JOIN command not joining detached channels on other clients.""
...
The revert was made by mistake due to misreading of 'znc -D'.
This reverts commit 6d470db241 .
2026-07-20 04:25:50 -04:00
Alexey Sokolov
6d470db241
Revert "Fix JOIN command not joining detached channels on other clients."
...
This reverts commit ba32b092e9 .
It broke /hop (/part+/join) due to race with server
2026-07-19 20:35:31 +01:00
RealKindOne
ba32b092e9
Fix JOIN command not joining detached channels on other clients.
2026-07-01 13:59:18 -04:00
Falk Rund
ad6a397ca4
Welcome to 2026
...
[skip ci]
2026-01-01 13:44:32 +01: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
2f02a9ea00
Merge branch 'master' into unix
2025-05-01 22:41:27 +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
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
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
fc0dd1431f
fix flaky chghost test
2025-02-25 18:41:02 +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
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
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
Alexey Sokolov
4b1a524a72
Move extended-join test to integration test
...
Fix build of modperl/modpython
2024-01-14 01:46:12 +00:00
Alexey Sokolov
b1009bd809
Code cleanup
...
Since now there are no server-dependent caps defined in the core
2024-01-14 00:27:21 +00:00
Alexey Sokolov
da3919245b
Improve test
2024-01-13 22:07:40 +00:00
Alexey Sokolov
99e6869b28
Add CCapability
2024-01-13 21:22:42 +00:00
Alexey Sokolov
236755444b
in theory support non-network modules too
2024-01-09 02:02:42 +00:00
Alexey Sokolov
b5a6ff528b
The test is now working
2024-01-07 22:55:52 +00:00
Alexey Sokolov
7ee389278f
Progress: CAP NEW is sent to client
2024-01-07 10:53:51 +00:00
Alexey Sokolov
1d3b33354f
Merge branch 'master' into cap302
2024-01-06 20:36:24 +00:00
Alexey Sokolov
66137bd89a
Progress
2024-01-05 00:45:41 +00:00
Falk Rund
17a004aa0b
Welcome to 2024
...
[skip ci]
2023-12-31 21:09:25 +01:00
Alexey Sokolov
4cbccac707
Merge branch 'master' into cap302
2023-11-19 10:53:47 +00:00