From 4dac3b93732ba1f36cffd7a4daa66951ad532ed4 Mon Sep 17 00:00:00 2001 From: Simone Margaritelli Date: Mon, 12 Apr 2021 12:39:19 +0200 Subject: [PATCH] fix: handle disconnection (nil gateway) in routes monitor --- session/session_routing.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/session/session_routing.go b/session/session_routing.go index 46fb6682..a280b5f6 100644 --- a/session/session_routing.go +++ b/session/session_routing.go @@ -25,7 +25,9 @@ func (s *Session) routeMon() { s.Events.Log(log.INFO, "gateway monitor started ...") - gw4 = s.Gateway + if gw4 = s.Gateway; gw4 == nil { + gw4 = &network.Endpoint{} + } gwIP6, err = routing.Gateway(routing.IPv6, s.Interface.Name()) if err != nil { @@ -43,10 +45,12 @@ func (s *Session) routeMon() { time.Sleep(5 * time.Second) gw4now, err := network.FindGateway(s.Interface) + if gw4now == nil { + gw4now = &network.Endpoint{} + } + if err != nil { s.Events.Log(log.ERROR, "error getting ipv4 gateway: %v", err) - } else if gw4now == nil { - s.Events.Log(log.ERROR, "null ipv4 gateway") } else { if gw4now.IpAddress != gw4.IpAddress || gw4now.HwAddress != gw4.HwAddress { s.Events.Add("gateway.change", GatewayChange{