From 82c42fc32cff183dd0d42af5b0acb6103de355bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E3=81=AE=E3=81=8B=E3=81=88=E3=81=A7?= Date: Tue, 29 Nov 2022 09:27:28 +0800 Subject: [PATCH] Fix: HTTP sniff --- app/dispatcher/default.go | 2 +- app/reverse/portal.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/dispatcher/default.go b/app/dispatcher/default.go index 1b3313e136..a048aa07a8 100644 --- a/app/dispatcher/default.go +++ b/app/dispatcher/default.go @@ -182,7 +182,7 @@ func shouldOverride(result SniffResult, domainOverride []string) bool { protocolString = resComp.ProtocolForDomainResult() } for _, p := range domainOverride { - if strings.HasPrefix(p, protocolString) { + if strings.HasPrefix(protocolString, p) && strings.HasSuffix(protocolString, p) { return true } if resultSubset, ok := result.(SnifferIsProtoSubsetOf); ok { diff --git a/app/reverse/portal.go b/app/reverse/portal.go index 0b8a7cf13e..730523a98d 100644 --- a/app/reverse/portal.go +++ b/app/reverse/portal.go @@ -160,6 +160,9 @@ func (p *StaticMuxPicker) PickAvailable() (*mux.ClientWorker, error) { if w.draining { continue } + if w.client.Closed() { + continue + } if w.client.ActiveConnections() < minConn { minConn = w.client.ActiveConnections() minIdx = i