feat(cli): Add dig compatible error exit code 9

This patch implements the error exit code for "No reply from server"
that dig uses to indicate that it was unable to resolve an address due
to the inability to reach any resolver.

References:
https://linux.die.net/man/1/dig
This commit is contained in:
Sheogorath 2022-10-18 16:24:24 +02:00
parent 0da9178683
commit 7de223f297
No known key found for this signature in database
GPG key ID: C9B1C80737B9CE18

View file

@ -148,16 +148,25 @@ func main() {
} }
// Resolve Queries. // Resolve Queries.
var responses []resolvers.Response var (
responses []resolvers.Response
responseErrors []error
)
for _, q := range app.Questions { for _, q := range app.Questions {
for _, rslv := range app.Resolvers { for _, rslv := range app.Resolvers {
resp, err := rslv.Lookup(q) resp, err := rslv.Lookup(q)
if err != nil { if err != nil {
app.Logger.WithError(err).Error("error looking up DNS records") app.Logger.WithError(err).Error("error looking up DNS records")
responseErrors = append(responseErrors, err)
} }
responses = append(responses, resp) responses = append(responses, resp)
} }
} }
if len(responses) == 0 && len(responseErrors) > 0 {
app.Logger.Exit(9)
}
app.Output(responses) app.Output(responses)
// Quitting. // Quitting.