fix: restrict xhttp browser dialer mode and remove added tests

Agent-Logs-Url: https://github.com/XTLS/Xray-core/sessions/071df77b-69fb-4b1f-a14d-9dab447e1efa

Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-26 17:16:42 +00:00
committed by GitHub
parent a54c54a559
commit 5906445c68
2 changed files with 17 additions and 63 deletions
@@ -1,10 +1,6 @@
package browser_dialer
import (
"net/http"
"strings"
"testing"
)
import "testing"
func TestParseBrowserDialerAddressRequireUUIDPath(t *testing.T) {
valid := "127.0.0.1:8080/123e4567-e89b-12d3-a456-426614174000"
@@ -24,61 +20,3 @@ func TestParseBrowserDialerAddressRequireUUIDPath(t *testing.T) {
}
}
}
func TestGetDialerByAddressReusesExistingServerForSameListenAddress(t *testing.T) {
listenAddr := "127.0.0.1:39000"
server := &dialerServer{
server: &http.Server{Addr: listenAddr},
pageRoutes: make(map[string]*dialerInstance),
}
mu.Lock()
oldDialers, oldServers := sockoptDialers, dialerServers
sockoptDialers = make(map[string]*dialerInstance)
dialerServers = map[string]*dialerServer{listenAddr: server}
mu.Unlock()
t.Cleanup(func() {
mu.Lock()
sockoptDialers = oldDialers
dialerServers = oldServers
mu.Unlock()
})
if _, err := getDialerByAddress(listenAddr + "/123e4567-e89b-12d3-a456-426614174000"); err != nil {
t.Fatalf("failed to create first dialer: %v", err)
}
if _, err := getDialerByAddress(listenAddr + "/123e4567-e89b-12d3-a456-426614174001"); err != nil {
t.Fatalf("failed to create second dialer on same listener: %v", err)
}
if len(dialerServers) != 1 {
t.Fatalf("expected one shared listener, got %d", len(dialerServers))
}
}
func TestGetDialerByAddressRejectsSamePortDifferentAddress(t *testing.T) {
listenAddr := "127.0.0.1:39001"
server := &dialerServer{
server: &http.Server{Addr: listenAddr},
pageRoutes: make(map[string]*dialerInstance),
}
mu.Lock()
oldDialers, oldServers := sockoptDialers, dialerServers
sockoptDialers = make(map[string]*dialerInstance)
dialerServers = map[string]*dialerServer{listenAddr: server}
mu.Unlock()
t.Cleanup(func() {
mu.Lock()
sockoptDialers = oldDialers
dialerServers = oldServers
mu.Unlock()
})
_, err := getDialerByAddress("127.0.0.2:39001/123e4567-e89b-12d3-a456-426614174011")
if err == nil {
t.Fatal("expected error for same port with different listen address")
}
if !strings.Contains(err.Error(), "cannot use the same port with a different listen address") {
t.Fatalf("unexpected error: %v", err)
}
}