0
mirror of https://github.com/XTLS/Xray-core.git synced 2025-06-17 13:57:15 +03:00

Add init check

This commit is contained in:
风扇滑翔翼
2025-06-10 20:02:57 +00:00
committed by GitHub
parent 892e92bb27
commit f4246e9314

View File

@ -328,13 +328,22 @@ func NewPacketWriter(conn net.Conn, h *Handler, ctx context.Context, UDPOverride
counter = statConn.WriteCounter
}
if c, ok := iConn.(*internet.PacketConnWrapper); ok {
// If target is a domain, it will be resolved in dialer
// check this behavior and add it to map
outbounds := session.OutboundsFromContext(ctx)
targetAddr := outbounds[len(outbounds)-1].Target.Address
resolvedUDPAddr := make(map[string]net.Address)
if targetAddr.Family().IsDomain() {
RemoteAddress, _, _ := net.SplitHostPort(conn.RemoteAddr().String())
resolvedUDPAddr[targetAddr.String()] = net.ParseAddress(RemoteAddress)
}
return &PacketWriter{
PacketConnWrapper: c,
Counter: counter,
Handler: h,
Context: ctx,
UDPOverride: UDPOverride,
resolvedUDPAddr: make(map[string]net.Address),
resolvedUDPAddr: resolvedUDPAddr,
}
}