Phase 4.1: Error handling, edge cases, and robustness (#11)
CI / test (push) Failing after 2m36s

This commit was merged in pull request #11.
This commit is contained in:
2026-06-07 17:24:00 +00:00
parent 76f5010a5e
commit fe1afe2a97
12 changed files with 1118 additions and 22 deletions
+6
View File
@@ -138,6 +138,12 @@ func summaryTypeLabel(respType string) string {
return "name does not exist"
case "servfail":
return "resulted in SERVFAIL"
case "refused":
return "query refused by server"
case "notimp":
return "query type not implemented by server"
case "cname_loop":
return "resulted in a CNAME loop"
case "error":
return "resulted in an error"
case "referral":
+15 -1
View File
@@ -210,8 +210,22 @@ func (f *textFormatter) formatResultLine(result traverse.TraversalResult) string
return f.colorize(fmt.Sprintf("%s name does not exist", prob), colorYellow)
case traverse.RespSERVFAIL:
return f.colorize(fmt.Sprintf("%s resulted in SERVFAIL", prob), colorRed)
case traverse.RespREFUSED:
return f.colorize(fmt.Sprintf("%s query refused by server", prob), colorRed)
case traverse.RespNOTIMPL:
return f.colorize(fmt.Sprintf("%s query type not implemented by server", prob), colorRed)
case traverse.RespCNAMELoop:
msg := "CNAME loop detected"
if result.Response.ErrorMessage != "" {
msg = result.Response.ErrorMessage
}
return f.colorize(fmt.Sprintf("%s %s", prob, msg), colorRed)
case traverse.RespError:
return f.colorize(fmt.Sprintf("%s resulted in an error", prob), colorRed)
msg := "resulted in an error"
if result.Response.ErrorMessage != "" {
msg = result.Response.ErrorMessage
}
return f.colorize(fmt.Sprintf("%s %s", prob, msg), colorRed)
default:
return fmt.Sprintf("%s %s", prob, result.Response.Type)
}