diff --git a/internal/web/service/inbound_node.go b/internal/web/service/inbound_node.go index 74ce45f26..5e414864f 100644 --- a/internal/web/service/inbound_node.go +++ b/internal/web/service/inbound_node.go @@ -173,8 +173,6 @@ func (s *InboundService) ReconcileNode(ctx context.Context, rt *runtime.Remote, // rest were never imported, so their absence from the local DB must not // delete them from the node. Only a selected tag missing locally (the // panel deleted it while the node was unreachable) may be swept. - // The node reports a panel-created inbound with its n- prefix stripped, - // so the selected set must carry both forms or the sweep never matches. selected := nodeSelectedTagSet(n) for _, tag := range remoteTags { if _, want := desiredTags[tag]; want { diff --git a/internal/web/service/node_probe_body_cap_test.go b/internal/web/service/node_probe_body_cap_test.go index dda9f00a8..320f66d0d 100644 --- a/internal/web/service/node_probe_body_cap_test.go +++ b/internal/web/service/node_probe_body_cap_test.go @@ -12,9 +12,7 @@ import ( "github.com/mhsanaei/3x-ui/v3/internal/database/model" ) -// A node answers the probe over a connection the master does not control in the -// skip/pin TLS modes, so an oversized status body must be rejected rather than -// buffered whole by encoding/json. +// An oversized status body must be rejected, not buffered whole by encoding/json. func TestProbeRejectsOversizedStatusBody(t *testing.T) { srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.Header().Set("Content-Type", "application/json") @@ -41,7 +39,12 @@ func TestProbeRejectsOversizedStatusBody(t *testing.T) { } svc := &NodeService{} - if _, err := svc.Probe(context.Background(), n); err == nil { + patch, err := svc.Probe(context.Background(), n) + if err == nil { t.Fatal("Probe accepted a 3 MiB status body, want an error") } + // Pin the rejection to the capped decode, not a transport or envelope failure. + if !strings.HasPrefix(patch.LastError, "decode response: ") { + t.Fatalf("LastError = %q, want a \"decode response: \" rejection", patch.LastError) + } }