aboutsummaryrefslogtreecommitdiff
path: root/lib/dns/server.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2024-04-12 17:12:13 +0700
committerShulhan <ms@kilabit.info>2024-04-12 17:12:13 +0700
commit8e0c347f8a2fcf7e0f754b84fcaa3a7049e20af5 (patch)
treed5f6680bcb5a8aefe67a6ded2ad9f3e11b971baa /lib/dns/server.go
parent6361b4a088ee67e34887430b4a57f330c08d15b3 (diff)
downloadpakakeh.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.go11
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