fix: address code review issues on PR #9
CI / test (pull_request) Waiting to run

- gofmt main.go to fix tab indentation in main() body
- stats.go ComputeSummary: return nil when Answers and ByType are empty
- dns/types.go: remove duplicate ParseQueryType (dead code)
- formatter.go: log hook errors to stderr when Debug > 0; add Debug to Config
- text.go referralID: remove redundant depth==0 branch
- text.go writeServers: remove version lookup placeholder string

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
Gary Hansen
2026-06-08 02:32:58 +10:00
co-authored by Copilot multica-agent
parent 5a54834c5f
commit 8e7beacc22
14 changed files with 268 additions and 294 deletions
+1
View File
@@ -203,6 +203,7 @@ ShowSummaryResults: cfg.ShowSummaryResults,
Verbose: cfg.Verbose, Verbose: cfg.Verbose,
Quiet: cfg.Quiet, Quiet: cfg.Quiet,
Color: os.Getenv("NO_COLOR") == "", Color: os.Getenv("NO_COLOR") == "",
Debug: cfg.Debug,
} }
ctx := context.Background() ctx := context.Background()
-1
View File
@@ -328,4 +328,3 @@ func TestQueryNoTCPFallbackWhenDisabled(t *testing.T) {
t.Error("expected truncated response to be returned as-is") t.Error("expected truncated response to be returned as-is")
} }
} }
-29
View File
@@ -1,9 +1,6 @@
package dns package dns
import ( import (
"fmt"
"strings"
"github.com/miekg/dns" "github.com/miekg/dns"
) )
@@ -40,32 +37,6 @@ func QNameType(qtype uint16) string {
return dns.TypeToString[qtype] return dns.TypeToString[qtype]
} }
func ParseQueryType(s string) (uint16, error) {
s = strings.ToUpper(strings.TrimSpace(s))
switch s {
case "A":
return TypeA, nil
case "AAAA":
return TypeAAAA, nil
case "NS":
return TypeNS, nil
case "CNAME":
return TypeCNAME, nil
case "MX":
return TypeMX, nil
case "TXT":
return TypeTXT, nil
case "SOA":
return TypeSOA, nil
case "PTR":
return TypePTR, nil
case "ANY":
return TypeANY, nil
default:
return 0, fmt.Errorf("invalid query type: %s", s)
}
}
func DefaultEDNS0UDPSize() int { func DefaultEDNS0UDPSize() int {
return 2048 return 2048
} }
+10 -3
View File
@@ -1,6 +1,7 @@
package output package output
import ( import (
"fmt"
"io" "io"
"os" "os"
@@ -28,6 +29,7 @@ type Config struct {
Verbose bool Verbose bool
Quiet bool Quiet bool
Color bool Color bool
Debug int
} }
func DefaultConfig() *Config { func DefaultConfig() *Config {
@@ -69,16 +71,21 @@ func AttachHooks(cfg *Config, formatter Formatter) *traverse.TraverserHooks {
if cfg == nil || formatter == nil { if cfg == nil || formatter == nil {
return nil return nil
} }
logErr := func(context string, err error) {
if err != nil && cfg.Debug > 0 {
fmt.Fprintf(os.Stderr, "Debug: formatter %s: %v\n", context, err)
}
}
return &traverse.TraverserHooks{ return &traverse.TraverserHooks{
OnEvent: func(event traverse.TraversalEvent) { OnEvent: func(event traverse.TraversalEvent) {
switch { switch {
case event.IsResolve && cfg.ShowResolves: case event.IsResolve && cfg.ShowResolves:
_ = formatter.WriteResolve(event) logErr("WriteResolve", formatter.WriteResolve(event))
case !event.IsResolve && cfg.ShowProgress: case !event.IsResolve && cfg.ShowProgress:
_ = formatter.WriteProgress(event) logErr("WriteProgress", formatter.WriteProgress(event))
} }
if event.Stage == traverse.EventComplete && cfg.ShowAllStats { if event.Stage == traverse.EventComplete && cfg.ShowAllStats {
_ = formatter.WriteResult(event.Result) logErr("WriteResult", formatter.WriteResult(event.Result))
} }
}, },
} }
+3
View File
@@ -73,6 +73,9 @@ func ComputeSummary(results []traverse.TraversalResult) *SummaryStats {
return stats.Answers[i].RData < stats.Answers[j].RData return stats.Answers[i].RData < stats.Answers[j].RData
}) })
if len(stats.Answers) == 0 && len(stats.ByType) == 0 {
return nil
}
return stats return stats
} }
+1 -8
View File
@@ -99,11 +99,7 @@ func (f *textFormatter) writeServers(results []traverse.TraversalResult) error {
for _, name := range names { for _, name := range names {
for _, ip := range servers[name] { for _, ip := range servers[name] {
version := "" if _, err := fmt.Fprintf(f.w, "%*s: %-15s\n", width, name, ip); err != nil {
if f.cfg.ShowVersions {
version = " (version lookup pending)"
}
if _, err := fmt.Fprintf(f.w, "%*s: %-15s%s\n", width, name, ip, version); err != nil {
return err return err
} }
} }
@@ -234,9 +230,6 @@ func referralID(ref *traverse.Referral) string {
if ref == nil { if ref == nil {
return "" return ""
} }
if ref.Depth == 0 {
return "1"
}
return fmt.Sprintf("%d", ref.Depth+1) return fmt.Sprintf("%d", ref.Depth+1)
} }