diff --git a/app/dispatcher/impl/default.go b/app/dispatcher/impl/default.go index b8a9b64e8..e02a84c36 100644 --- a/app/dispatcher/impl/default.go +++ b/app/dispatcher/impl/default.go @@ -70,13 +70,11 @@ func (d *DefaultDispatcher) Dispatch(ctx context.Context, destination net.Destin } else { go func() { domain, err := snifer(ctx, sniferList, outbound) - if err != nil { - log.Trace(newError("failed to snif").Base(err)) - return + if err == nil { + log.Trace(newError("sniffed domain: ", domain)) + destination.Address = net.ParseAddress(domain) + ctx = proxy.ContextWithTarget(ctx, destination) } - log.Trace(newError("sniffed domain: ", domain)) - destination.Address = net.ParseAddress(domain) - ctx = proxy.ContextWithTarget(ctx, destination) d.routedDispatch(ctx, outbound, destination) }() } diff --git a/app/dispatcher/impl/sniffer.go b/app/dispatcher/impl/sniffer.go index faa26655d..c566c89cf 100644 --- a/app/dispatcher/impl/sniffer.go +++ b/app/dispatcher/impl/sniffer.go @@ -45,7 +45,7 @@ func SniffHTTP(b []byte) (string, error) { value := strings.ToLower(string(bytes.Trim(parts[1], " "))) if key == "host" { domain := strings.Split(value, ":") - return domain[0], nil + return strings.TrimSpace(domain[0]), nil } } return "", ErrMoreData