fix: 添加relay日志
This commit is contained in:
@@ -196,15 +196,26 @@ func generateKCPConversationID() (uint32, error) {
|
||||
return convID, nil
|
||||
}
|
||||
|
||||
func listenKCPPacketConn(listenAddr, bindDevice string, logger KCPPacketDebugLogger, nodeRole, nodeID string) (net.PacketConn, error) {
|
||||
// ResolveUDPListenConfig parses a UDP listen address and returns the socket
|
||||
// family that should be used for binding it.
|
||||
func ResolveUDPListenConfig(listenAddr string) (string, *net.UDPAddr, error) {
|
||||
udpAddr, err := net.ResolveUDPAddr("udp", listenAddr)
|
||||
if err != nil {
|
||||
return "", nil, fmt.Errorf("transport: resolve udp listen addr %s: %w", listenAddr, err)
|
||||
}
|
||||
|
||||
return udpListenNetwork(udpAddr), udpAddr, nil
|
||||
}
|
||||
|
||||
func listenKCPPacketConn(listenAddr, bindDevice string, logger KCPPacketDebugLogger, nodeRole, nodeID string) (net.PacketConn, error) {
|
||||
network, udpAddr, err := ResolveUDPListenConfig(listenAddr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("transport: resolve kcp listen addr %s: %w", listenAddr, err)
|
||||
}
|
||||
|
||||
rawConn, err := listenUDPConn("udp", udpAddr, bindDevice)
|
||||
rawConn, err := listenUDPConn(network, udpAddr, bindDevice)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("transport: listen udp for kcp on %s: %w", listenAddr, err)
|
||||
return nil, fmt.Errorf("transport: listen %s for kcp on %s: %w", network, udpListenAddr(udpAddr), err)
|
||||
}
|
||||
|
||||
packetConn, err := newKCPPacketConn(rawConn, logger, nodeRole, nodeID)
|
||||
@@ -280,3 +291,13 @@ func udpListenAddr(addr *net.UDPAddr) string {
|
||||
}
|
||||
return addr.String()
|
||||
}
|
||||
|
||||
func udpListenNetwork(addr *net.UDPAddr) string {
|
||||
if addr == nil || addr.IP == nil {
|
||||
return "udp"
|
||||
}
|
||||
if addr.IP.To4() != nil {
|
||||
return "udp4"
|
||||
}
|
||||
return "udp6"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user