From 25d4b85e569f563e8b8def2cb3ab35cc83c545b6 Mon Sep 17 00:00:00 2001 From: Virgil Date: Sat, 4 Apr 2026 02:24:40 +0000 Subject: [PATCH] Add explicit DNS configuration aliases --- service.go | 25 +++++++++++++++++++++++++ service_test.go | 18 ++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/service.go b/service.go index b4fd7ef..5063dc6 100644 --- a/service.go +++ b/service.go @@ -178,11 +178,25 @@ type ServiceOptions struct { // }) type ServiceConfiguration = ServiceOptions +// DNSServiceConfiguration is the explicit DNS-prefixed configuration alias. +// +// service := dns.NewDNSServiceFromConfiguration(dns.DNSServiceConfiguration{ +// Records: map[string]dns.NameRecords{ +// "gateway.charon.lthn": {A: []string{"10.10.10.10"}}, +// }, +// }) +type DNSServiceConfiguration = ServiceOptions + // ServiceConfig is kept for compatibility with older call sites. // // Deprecated: use ServiceConfiguration instead. type ServiceConfig = ServiceOptions +// DNSServiceConfig is kept for compatibility with older call sites. +// +// Deprecated: use DNSServiceConfiguration instead. +type DNSServiceConfig = ServiceOptions + // DNSServiceOptions is the preferred long-form type name for service configuration. // // service := dns.NewDNSServiceFromOptions(dns.DNSServiceOptions{ @@ -317,6 +331,17 @@ func NewDNSServiceFromOptions(options DNSServiceOptions) *Service { return NewDNSService(options) } +// NewDNSServiceFromConfiguration is the explicit constructor name for the DNS configuration alias. +// +// service := dns.NewDNSServiceFromConfiguration(dns.DNSServiceConfiguration{ +// Records: map[string]dns.NameRecords{ +// "gateway.charon.lthn": {A: []string{"10.10.10.10"}}, +// }, +// }) +func NewDNSServiceFromConfiguration(options DNSServiceConfiguration) *Service { + return NewDNSService(options) +} + // NewDNSServiceWithContextRegistrar is an explicit constructor name for action wiring. // // service := dns.NewDNSServiceWithContextRegistrar(dns.DNSServiceOptions{}, actionRegistrar) diff --git a/service_test.go b/service_test.go index 7290311..e1ce7d6 100644 --- a/service_test.go +++ b/service_test.go @@ -175,6 +175,24 @@ func TestNewDNSServiceAliasToExistingConstructor(t *testing.T) { } } +func TestNewDNSServiceFromConfigurationAliasBuildsService(t *testing.T) { + service := NewDNSServiceFromConfiguration(DNSServiceConfiguration{ + Records: map[string]NameRecords{ + "gateway.charon.lthn": { + A: []string{"10.10.10.10"}, + }, + }, + }) + + result, ok := service.ResolveAddress("gateway.charon.lthn") + if !ok { + t.Fatal("expected service constructed from NewDNSServiceFromConfiguration alias to resolve") + } + if len(result.Addresses) != 1 || result.Addresses[0] != "10.10.10.10" { + t.Fatalf("unexpected resolve result from NewDNSServiceFromConfiguration: %#v", result.Addresses) + } +} + func TestNewDNSServiceWithRegistrarAliasRegistersActions(t *testing.T) { recorder := &actionRecorder{} service := NewDNSServiceWithRegistrar(ServiceOptions{}, recorder)