diff --git a/cmd/lns/discovery.go b/cmd/lns/discovery.go index 193b6c1..0e9658b 100644 --- a/cmd/lns/discovery.go +++ b/cmd/lns/discovery.go @@ -110,7 +110,13 @@ func ParseDNSFromComment(comment string) *NameRecord { } record := &NameRecord{} - entries := splitComma(dnsField) + // Split on pipe (preferred) or fall back to comma (legacy) + var entries []string + if core.Contains(dnsField, "|") { + entries = splitPipe(dnsField) + } else { + entries = splitComma(dnsField) + } for _, entry := range entries { parts := splitColon(entry, 3) if len(parts) < 3 { @@ -137,6 +143,25 @@ func ParseDNSFromComment(comment string) *NameRecord { return record } +func splitPipe(input string) []string { + parts := make([]string, 0) + current := "" + for _, character := range input { + if character == '|' { + if current != "" { + parts = append(parts, current) + } + current = "" + } else { + current += string(character) + } + } + if current != "" { + parts = append(parts, current) + } + return parts +} + func splitComma(input string) []string { parts := make([]string, 0) current := "" diff --git a/lns b/lns index fea80a0..88fd320 100755 Binary files a/lns and b/lns differ