From 9386c589bf54828264af1aedfdd9992f0a963a14 Mon Sep 17 00:00:00 2001 From: Sheogorath Date: Tue, 18 Oct 2022 16:24:24 +0200 Subject: [PATCH] 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 --- cmd/doggo/cli.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cmd/doggo/cli.go b/cmd/doggo/cli.go index fe5d550..5e7e9ed 100644 --- a/cmd/doggo/cli.go +++ b/cmd/doggo/cli.go @@ -148,16 +148,25 @@ func main() { } // Resolve Queries. - var responses []resolvers.Response + var ( + responses []resolvers.Response + responseErrors []error + ) for _, q := range app.Questions { for _, rslv := range app.Resolvers { resp, err := rslv.Lookup(q) if err != nil { app.Logger.WithError(err).Error("error looking up DNS records") + responseErrors = append(responseErrors, err) } responses = append(responses, resp) } } + + if len(responses) == 0 && len(responseErrors) > 0 { + app.Logger.Exit(9) + } + app.Output(responses) // Quitting.