Merge branch 'Beta' into Meta

This commit is contained in:
Skyxim 2022-08-29 13:08:29 +08:00
commit 5987f8e3b5
3 changed files with 9 additions and 3 deletions

View File

@ -72,6 +72,9 @@ func (h *Hysteria) ListenPacketContext(ctx context.Context, metadata *C.Metadata
hyDialer: func() (net.PacketConn, error) { hyDialer: func() (net.PacketConn, error) {
return dialer.ListenPacket(ctx, "udp", "", h.Base.DialOptions(opts...)...) return dialer.ListenPacket(ctx, "udp", "", h.Base.DialOptions(opts...)...)
}, },
remoteAddr: func(addr string) (net.Addr, error) {
return resolveUDPAddrWithPrefer("udp", addr, h.prefer)
},
} }
udpConn, err := h.client.DialUDP(&hdc) udpConn, err := h.client.DialUDP(&hdc)
if err != nil { if err != nil {

View File

@ -104,7 +104,7 @@ func resolveUDPAddrWithPrefer(network, address string, prefer C.DNSPrefer) (*net
ip = fallback ip = fallback
} }
default: default:
// C.IPv4Prefer, C.DualStack and other // C.IPv4Prefer, C.DualStack and other
var ips []netip.Addr var ips []netip.Addr
ips, err = resolver.ResolveAllIPProxyServerHost(host) ips, err = resolver.ResolveAllIPProxyServerHost(host)
var fallback netip.Addr var fallback netip.Addr
@ -119,7 +119,10 @@ func resolveUDPAddrWithPrefer(network, address string, prefer C.DNSPrefer) (*net
} }
} }
} }
ip = fallback
if !ip.IsValid() && fallback.IsValid() {
ip = fallback
}
} }
} }

View File

@ -169,7 +169,7 @@ proxies:
# ipv4-prefer优先使用 IPv4 对于 TCP 会进行双栈解析,并发链接但是优先使用 IPv4 链接, # ipv4-prefer优先使用 IPv4 对于 TCP 会进行双栈解析,并发链接但是优先使用 IPv4 链接,
# UDP 则为双栈解析,获取结果中的第一个 IPv4 # UDP 则为双栈解析,获取结果中的第一个 IPv4
# ipv6-prefer 同 ipv4-prefer # ipv6-prefer 同 ipv4-prefer
# 现有协议都支持此参数 # 现有协议都支持此参数TCP 效果仅在开启 tcp-concurrent 生效
- name: "ss2" - name: "ss2"
type: ss type: ss
server: server server: server