Commit Graph

403 Commits

Author SHA1 Message Date
zarazaex69
b9b8c8137e fix(e2e): skip soak test on auth failure instead of failing 2026-05-26 02:54:14 +03:00
zarazaex69
10c7c655b6 fix(vp8channel): reset peer state on KCP restart 2026-05-26 02:50:29 +03:00
zarazaex69
1f26687c48 test(e2e): support multiple carriers in real soak test 2026-05-26 01:14:05 +03:00
zarazaex69
4fce5773f8 fix(goolom): remove premature onReconnect callback invocation 2026-05-26 01:05:31 +03:00
zarazaex69
743dc5c1bf fix(client): return after liveness reconnect to avoid deadlock #72 2026-05-25 23:33:51 +03:00
zarazaex69
9597a4ebb6 test(e2e): add chaos mode to local soak test 2026-05-25 22:54:00 +03:00
zarazaex69
7a416cbde7 test(e2e): add real-carrier throughput soak test 2026-05-25 22:44:03 +03:00
zarazaex69
b797858857 perf(seichannel): increase frame rate and batch size defaults 2026-05-25 22:39:41 +03:00
zarazaex69
e9a49239ef test(e2e): update seichannel options to match vp8channel settings 2026-05-25 22:38:38 +03:00
zarazaex69
09f591a26b fix(seichannel): scale ack timeout with fragment count and skip
re-enqueue on retry
2026-05-25 22:21:42 +03:00
zarazaex69
af9eeea740 docs: add meet.cryptopro.ru as alternative Jitsi server option 2026-05-25 15:43:28 +03:00
zarazaex69
fe85457754 fix(jitsi): add RTCP keepalive to prevent JVB session expiry 2026-05-25 12:57:18 +03:00
zarazaex69
e64ed167cc refactor(jitsi): extract openBridgeWS and openBridgeSCTP helpers 2026-05-25 11:39:22 +03:00
zarazaex69
c2170c058b feat(jitsi): add SCTP fallback when colibri-ws is unavailable
- Fixed instances that were not working x3
2026-05-25 10:41:23 +03:00
zarazaex69
12a28e6cbf chore: replace default jitsi URL with meet1.arbitr.ru 2026-05-25 10:08:26 +03:00
zarazaex69
e677261fd5 refactor: improve error wrapping and extract constructor helper 2026-05-25 04:06:26 +03:00
zarazaex69
83a94948ae fix(vp8channel): latch peer epoch on first frame received 2026-05-24 18:05:43 +03:00
zarazaex69
6d529c16a8 fix(vp8channel): latch peer only after handshake confirms it
Previously the client latched on the first epoch it saw, which could
be another client in the room. Now it accepts frames from all epochs
until onData delivers the first KCP message (handshake welcome),
then locks to that epoch and ignores others.

Fixes #67
2026-05-24 17:49:02 +03:00
zarazaex69
11dfdcb512 fix(vp8channel): demote noisy 'ignoring frame' log to trace 2026-05-24 17:36:19 +03:00
zarazaex69
d0b0b8e9db fix(vp8channel): client ignores frames from other participants
In single-peer mode (client), frames from unknown epochs are now
silently dropped instead of triggering a reconnect loop. This
prevents the client from mistaking another client's VP8 track
for a server restart.

Part of #67
2026-05-24 17:33:51 +03:00
zarazaex69
cefd260e5d fix(vp8channel): support multiple simultaneous clients in same room
Implement PeerTransport interface (SendTo/SupportsPeerRouting) so the
server can route KCP traffic to individual peers by their epoch.

When OnPeerData is set (server mode), each remote epoch gets its own
KCP runtime instead of triggering a reconnect loop.

Also add DNS retry in protect.NewHTTPClient to handle transient
resolver failures.

Fixes #67
2026-05-24 17:27:02 +03:00
zarazaex69
cb6fe0980d feat(protect): add DNS retry logic to HTTP client 2026-05-24 17:27:02 +03:00
zarazaex69
98c6dec4a0 docs: normalize em dash to hyphen in Russian documentation and code comments 2026-05-24 05:31:55 +03:00
zarazaex69
cfe9565c21 test(e2e): remove standalone pion loopback PoC after integration into memoryStream 2026-05-24 04:46:53 +03:00
zarazaex69
4d22169be6 test(e2e): add in-memory WebRTC loopback for video transport testing 2026-05-24 04:45:06 +03:00
zarazaex69
f63aa0bc43 refactor(e2e): extract local soak transport error constants 2026-05-24 02:57:30 +03:00
zarazaex69
bb2e1ee1c8 test(e2e): allow multiple transports in local soak test via comma-separated list or 'all' 2026-05-24 02:42:13 +03:00
spkprsnts
5e4c2e27ee refactor(server): split socks5 connect logic
- Extract auth logic to helper functions
- Add linter directives for gosec and globals
2026-05-24 02:18:34 +05:00
spkprsnts
d5973cf2c7 feat(server): add username/password auth for outbound SOCKS5 proxy (RFC 1929) 2026-05-23 05:14:25 +05:00
zarazaex69
fb5ce90e61 refactor(e2e): extract soak pump helpers and modernize range lnt 2026-05-22 20:51:46 +03:00
zarazaex69
d8139a7178 refactor(muxconn): recycle plaintext buffers via sync.Pool 2026-05-22 20:37:17 +03:00
zarazaex69
99a7b12538 refactor(muxconn): replace mutex/cond buffer with channel pipeline 2026-05-22 19:55:13 +03:00
zarazaex69
e9373aabd8 perf(crypto): replace random nonces with salt+counter scheme 2026-05-22 19:38:29 +03:00
zarazaex69
d0b5074072 test(e2e): add local throughput soak test 2026-05-22 18:27:20 +03:00
zarazaex69
c45e12d5c6 chore: replace default Jitsi URL with meet.cryptopro.ru 2026-05-21 19:07:31 +03:00
zarazaex69
9bf81248c4 docs: replace 1.1.1.1 with 8.8.8.8 as default DNS server 2026-05-21 19:01:10 +03:00
zarazaex69
0ec244e0dc docs: update docs and remove wbstream room creation support 2026-05-21 18:51:38 +03:00
zarazaex69
19dba1691d test(e2e): handle clean exits in tunnel startup 2026-05-21 17:12:30 +03:00
zarazaex69
618b210926 fix: golangci 2026-05-21 14:30:18 +03:00
zarazaex69
5839b05763 fix: cancel go t -> startControlLoop 2026-05-21 14:17:39 +03:00
zarazaex69
4b7185f411 fix(client): survive liveness loss without killing SOCKS listener 2026-05-21 13:42:22 +03:00
zarazaex69
bfa6d73ad1 feat(vp8channel): batch multiple KCP packets per RTP sample 2026-05-20 00:12:01 +03:00
zarazaex69
74bb402289 fix(runtime): account for smux frame overhead in wire payload cap 2026-05-19 23:34:37 +03:00
zarazaex69
ccf3ff0988 fix: golangci 2026-05-19 22:02:56 +03:00
zarazaex69
2b6f77f0f6 refactor(vp8channel): add ResetPeer with epoch rotation and mutex #60 2026-05-19 21:58:12 +03:00
zarazaex69
085aadcad7 refactor: remove SaluteJazz carrier support 2026-05-19 21:39:07 +03:00
zarazaex69
d84fb78eef test(e2e): mark jitsi video and vp8 transports as unstable 2026-05-19 09:29:19 +03:00
zarazaex69
3bee3ddbe6 chore(vp8channel): update default fps to 60 and batch size to 64 2026-05-19 09:08:01 +03:00
zarazaex69
31796efe15 docs: replace meet.cryptopro.ru with meet.small-dm.ru as default 2026-05-18 23:37:10 +03:00
zarazaex69
d872f3c900 docs: replace jitsi.etudevs.ru with meet.cryptopro.ru 2026-05-18 22:30:51 +03:00