Files
ginuerzh d7656ef3de tests/e2e: concurrent UDP endpoints must share a reverse tunnel intact
Covers gost#911 at the wire level: four UDP source sockets send through one
RUDP reverse tunnel bound on a relay server, and every datagram must come
back byte-identical to its own endpoint.

A frame torn by an interleaved writer shows up twice — as a corrupted
payload, and as the torn frame leaving half a header in the stream, which the
far end reads as "unexpected EOF" and answers by rebuilding the whole tunnel.
So the suite asserts both: no endpoint sees a corrupted datagram, and no
endpoint sees a receive gap long enough to be a teardown and rebind.

Verified against a binary built before the fix (4 endpoints, 35% loss, 1.4s
gaps, suite fails) and after it (0% loss, no corruption, 0.2s gaps, passes).
2026-10-03 16:27:05 +08:00

16 lines
424 B
YAML

# Public-facing relay server for gost#911: allows UDP BIND so an internal host
# can bind a reverse UDP tunnel through it. The host asks the server to bind
# the tunnel's UDP port, so that port lives here — on the relay server, not on
# the host behind NAT.
services:
- name: service-0
addr: ":8430"
handler:
type: relay
metadata:
bind: true
listener:
type: tcp
log:
level: debug