diff options
| author | Shulhan <ms@kilabit.info> | 2024-04-12 17:12:13 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2024-04-12 17:12:13 +0700 |
| commit | 8e0c347f8a2fcf7e0f754b84fcaa3a7049e20af5 (patch) | |
| tree | d5f6680bcb5a8aefe67a6ded2ad9f3e11b971baa /lib/dns/server.go | |
| parent | 6361b4a088ee67e34887430b4a57f330c08d15b3 (diff) | |
| download | pakakeh.go-8e0c347f8a2fcf7e0f754b84fcaa3a7049e20af5.tar.xz | |
lib/dns: return errInvalidMessage when received message cannot be parsed
By returning error errInvalidMessage, the caller can check whether the
issue is in connection or in the message itself.
If the issue is not in the message, the caller needs to re-create the
connection.
Diffstat (limited to 'lib/dns/server.go')
| -rw-r--r-- | lib/dns/server.go | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/dns/server.go b/lib/dns/server.go index 43795c2e..ec5835f4 100644 --- a/lib/dns/server.go +++ b/lib/dns/server.go @@ -810,9 +810,9 @@ func (srv *Server) dohForwarder(tag, nameserver string) { res, err = forwarder.Query(req.message) if err != nil { - log.Printf(`%s %s: forward failed for %q: %s`, + log.Printf(`%s %s: forward failed for %s: %s`, logp, tag, req.message.Question.Name, err) - if !errors.Is(err, errUnpack) { + if !errors.Is(err, errInvalidMessage) { isRunning = false } continue @@ -891,7 +891,7 @@ func (srv *Server) tlsForwarder(tag, nameserver string) { if err != nil { log.Printf(`%s %s: forward failed for %s: %s`, logp, tag, req.message.Question.Name, err) - if !errors.Is(err, errUnpack) { + if !errors.Is(err, errInvalidMessage) { isRunning = false } continue @@ -1040,9 +1040,8 @@ func (srv *Server) udpForwarder(tag, nameserver string) { res, err = forwarder.Query(req.message) if err != nil { log.Printf(`%s %s: forward failed for %s: %s`, - logp, tag, - req.message.Question.Name, err) - if !errors.Is(err, errUnpack) { + logp, tag, req.message.Question.Name, err) + if !errors.Is(err, errInvalidMessage) { isRunning = false } continue |
