32 lines
975 B
Diff
32 lines
975 B
Diff
From 61c1586082d21ad793447c3c4510230b492ffbc0 Mon Sep 17 00:00:00 2001
|
|
From: Irine Sistiana <49315432+IrineSistiana@users.noreply.github.com>
|
|
Date: Wed, 20 Sep 2023 09:31:39 +0800
|
|
Subject: [PATCH 2/6] server: don't exit udp server on tempory read err
|
|
|
|
---
|
|
pkg/server/udp.go | 8 +++++++-
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/pkg/server/udp.go b/pkg/server/udp.go
|
|
index 247455b..4dc1087 100644
|
|
--- a/pkg/server/udp.go
|
|
+++ b/pkg/server/udp.go
|
|
@@ -62,7 +62,13 @@ func ServeUDP(c *net.UDPConn, h Handler, opts UDPServerOpts) error {
|
|
for {
|
|
n, oobn, _, remoteAddr, err := c.ReadMsgUDPAddrPort(*rb, ob)
|
|
if err != nil {
|
|
- return fmt.Errorf("unexpected read err: %w", err)
|
|
+ if n == 0 {
|
|
+ // err with zero read. Most likely becasue c was closed.
|
|
+ return fmt.Errorf("unexpected read err: %w", err)
|
|
+ }
|
|
+ // err with some read. Tempory err.
|
|
+ logger.Warn("read err", zap.Error(err))
|
|
+ continue
|
|
}
|
|
|
|
q := new(dns.Msg)
|
|
--
|
|
2.34.8
|
|
|