From 2858b769dd637ed4b76a24ee02e33fdc3c778699 Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Wed, 18 Jul 2018 16:29:29 +0200 Subject: [PATCH] detect any ip --- proxy/freedom/freedom.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/proxy/freedom/freedom.go b/proxy/freedom/freedom.go index 8c958b309..fe69381d2 100644 --- a/proxy/freedom/freedom.go +++ b/proxy/freedom/freedom.go @@ -65,12 +65,21 @@ func (h *Handler) resolveIP(ctx context.Context, domain string) net.Address { return net.IPAddress(ips[dice.Roll(len(ips))]) } +func isValidAddress(addr *net.IPOrDomain) bool { + if addr == nil { + return false + } + + a := addr.AsAddress() + return a != net.AnyIP +} + // Process implements proxy.Outbound. func (h *Handler) Process(ctx context.Context, link *core.Link, dialer proxy.Dialer) error { destination, _ := proxy.TargetFromContext(ctx) if h.config.DestinationOverride != nil { server := h.config.DestinationOverride.Server - if server.Address != nil { + if isValidAddress(server.Address) { destination.Address = server.Address.AsAddress() } if server.Port != 0 {