Merge pull request '[agent/codex:gpt-5.4-mini] Read docs/RFC.md fully. Find ONE feature described in the sp...' (#39) from main into dev

This commit is contained in:
Virgil 2026-04-03 21:17:33 +00:00
commit fce7e80c40
2 changed files with 47 additions and 5 deletions

View file

@ -423,7 +423,7 @@ func (service *Service) ResolveTXTRecords(name string) (ResolveTXTResult, bool)
return ResolveTXTResult{}, false
}
return ResolveTXTResult{
TXT: append([]string(nil), record.TXT...),
TXT: cloneStrings(record.TXT),
}, true
}
@ -573,10 +573,10 @@ func (service *Service) findRecord(name string) (NameRecords, bool) {
func resolveResult(record NameRecords) ResolveAllResult {
return ResolveAllResult{
A: append([]string(nil), record.A...),
AAAA: append([]string(nil), record.AAAA...),
TXT: append([]string(nil), record.TXT...),
NS: append([]string(nil), record.NS...),
A: cloneStrings(record.A),
AAAA: cloneStrings(record.AAAA),
TXT: cloneStrings(record.TXT),
NS: cloneStrings(record.NS),
}
}
@ -699,6 +699,13 @@ func serializeRecordValues(values []string) string {
return strings.Join(copied, ",")
}
func cloneStrings(values []string) []string {
if len(values) == 0 {
return []string{}
}
return append([]string(nil), values...)
}
func findWildcardMatch(name string, records map[string]NameRecords) (NameRecords, bool) {
bestMatch := ""
for candidate := range records {

View file

@ -1229,6 +1229,41 @@ func TestServiceResolveAllSynthesizesNSForDerivedZoneApex(t *testing.T) {
}
}
func TestServiceResolveAllReturnsEmptyArraysForMissingRecordValues(t *testing.T) {
service := NewService(ServiceOptions{
Records: map[string]NameRecords{
"gateway.charon.lthn": {
A: []string{"10.10.10.10"},
},
"node.charon.lthn": {
AAAA: []string{"2600:1f1c:7f0:4f01::2"},
},
},
})
result, ok := service.ResolveAll("gateway.charon.lthn")
if !ok {
t.Fatal("expected record to resolve")
}
if result.AAAA == nil || len(result.AAAA) != 0 {
t.Fatalf("expected empty AAAA slice, got %#v", result.AAAA)
}
if result.TXT == nil || len(result.TXT) != 0 {
t.Fatalf("expected empty TXT slice, got %#v", result.TXT)
}
if result.NS == nil || len(result.NS) != 0 {
t.Fatalf("expected empty NS slice, got %#v", result.NS)
}
raw, err := json.Marshal(result)
if err != nil {
t.Fatalf("expected result to marshal: %v", err)
}
if string(raw) != `{"a":["10.10.10.10"],"aaaa":[],"txt":[],"ns":[]}` {
t.Fatalf("expected empty arrays in JSON, got %s", raw)
}
}
func TestServiceServeReturnsNXDOMAINWhenMissing(t *testing.T) {
service := NewService(ServiceOptions{})