mirror of
https://github.com/jwetzell/showbridge-go.git
synced 2026-04-26 21:05:30 +00:00
fix udp server not closing with router context
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"net"
|
"net"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UDPServer struct {
|
type UDPServer struct {
|
||||||
@@ -68,8 +69,14 @@ func (us *UDPServer) Run() error {
|
|||||||
slog.Debug("router context done in module", "id", us.config.Id)
|
slog.Debug("router context done in module", "id", us.config.Id)
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
|
listener.SetDeadline(time.Now().Add(time.Millisecond * 200))
|
||||||
|
|
||||||
numBytes, _, err := listener.ReadFromUDP(buffer)
|
numBytes, _, err := listener.ReadFromUDP(buffer)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
//NOTE(jwetzell) we hit deadline
|
||||||
|
if opErr, ok := err.(*net.OpError); ok && opErr.Timeout() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
message := buffer[:numBytes]
|
message := buffer[:numBytes]
|
||||||
|
|||||||
Reference in New Issue
Block a user