fix: 添加relay日志

This commit is contained in:
2026-03-28 15:28:19 +08:00
parent 581c52f9b5
commit 17122f6e4c
8 changed files with 179 additions and 27 deletions

View File

@@ -18,7 +18,7 @@ func TestUDPRelayKCPForwardAndReturn(t *testing.T) {
hub, hubAddr, hubCleanup := startKCPHubForRelay(t)
defer hubCleanup()
relayAddr := startUDPRelay(t, hubAddr)
relayAddr, relay := startUDPRelay(t, hubAddr)
peerBConn := dialKCPPeer(t, hubAddr)
peerAConn := dialKCPPeer(t, relayAddr)
@@ -41,6 +41,11 @@ func TestUDPRelayKCPForwardAndReturn(t *testing.T) {
waitForRelay(t, func() bool {
return hub.HasPeer("peer-a") && hub.HasPeer("peer-b")
}, "both peers to be registered")
waitForRelay(t, func() bool {
relay.mu.RLock()
defer relay.mu.RUnlock()
return relay.clientAddr != nil
}, "relay to learn the downstream peer")
if err := peerBConn.Send(protocol.Message{
Type: protocol.MessageTypeText,
@@ -95,7 +100,7 @@ func TestUDPRelayKCPFileMessage(t *testing.T) {
hub, hubAddr, hubCleanup := startKCPHubForRelay(t)
defer hubCleanup()
relayAddr := startUDPRelay(t, hubAddr)
relayAddr, relay := startUDPRelay(t, hubAddr)
peerBConn := dialKCPPeer(t, hubAddr)
peerAConn := dialKCPPeer(t, relayAddr)
@@ -118,6 +123,11 @@ func TestUDPRelayKCPFileMessage(t *testing.T) {
waitForRelay(t, func() bool {
return hub.HasPeer("peer-a") && hub.HasPeer("peer-b")
}, "both peers to be registered")
waitForRelay(t, func() bool {
relay.mu.RLock()
defer relay.mu.RUnlock()
return relay.clientAddr != nil
}, "relay to learn the downstream peer")
if err := peerBConn.Send(protocol.Message{
Type: protocol.MessageTypeFile,
@@ -222,7 +232,7 @@ func dialKCPPeer(t *testing.T, serverAddr string) *transport.KCPConn {
return conn
}
func startUDPRelay(t *testing.T, upstreamAddr string) string {
func startUDPRelay(t *testing.T, upstreamAddr string) (string, *UDPRelay) {
t.Helper()
remoteAddr, err := net.ResolveUDPAddr("udp", upstreamAddr)
@@ -255,7 +265,7 @@ func startUDPRelay(t *testing.T, upstreamAddr string) string {
wg.Wait()
})
return conn.LocalAddr().String()
return conn.LocalAddr().String(), relay
}
func waitForRelay(t *testing.T, condition func() bool, description string) {