diff --git a/action.go b/action.go index f1542e0..a3098a2 100644 --- a/action.go +++ b/action.go @@ -291,7 +291,7 @@ func (service *Service) handleResolveAll(ctx context.Context, values map[string] func (service *Service) handleReverseLookup(ctx context.Context, values map[string]any) (any, bool, error) { _ = ctx - ip, err := stringActionValueFromKeys(values, actionArgIP, actionArgAddress) + ip, err := stringActionValueFromKeys(values, actionArgIP, actionArgAddress, actionArgName, actionArgHost, actionArgHostName) if err != nil { return nil, false, err } diff --git a/service_test.go b/service_test.go index 872bfb4..22205c7 100644 --- a/service_test.go +++ b/service_test.go @@ -3560,6 +3560,23 @@ func TestServiceHandleActionReverseHealthServeAndDiscover(t *testing.T) { t.Fatalf("unexpected reverse result: %#v", reverse.Names) } + ptrPayload, ok, err := service.HandleAction(ActionReverse, map[string]any{ + "name": "20.10.10.10.in-addr.arpa.", + }) + if err != nil { + t.Fatalf("unexpected reverse action error for PTR name: %v", err) + } + if !ok { + t.Fatal("expected reverse action to accept PTR-style names") + } + ptr, ok := ptrPayload.(ReverseLookupResult) + if !ok { + t.Fatalf("expected ReverseLookupResult payload for PTR name, got %T", ptrPayload) + } + if len(ptr.Names) != 1 || ptr.Names[0] != "gateway.charon.lthn" { + t.Fatalf("unexpected PTR reverse result: %#v", ptr.Names) + } + healthPayload, ok, err := service.HandleAction(ActionHealth, nil) if err != nil { t.Fatalf("unexpected health action error: %v", err)