summaryrefslogtreecommitdiffhomepage
path: root/server/fsm.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/fsm.go')
-rw-r--r--server/fsm.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/server/fsm.go b/server/fsm.go
index b40305f6..7bced26c 100644
--- a/server/fsm.go
+++ b/server/fsm.go
@@ -682,9 +682,20 @@ func (h *FSMHandler) sendMessageloop() error {
fsm.bgpMessageStateUpdate(0, false)
return nil
}
+ if err := conn.SetWriteDeadline(time.Now().Add(time.Second * 30)); err != nil {
+ h.errorCh <- true
+ conn.Close()
+ return fmt.Errorf("failed to set write deadline")
+ }
_, err = conn.Write(b)
if err != nil {
+ log.WithFields(log.Fields{
+ "Topic": "Peer",
+ "Key": fsm.peerConfig.NeighborAddress,
+ "Data": err,
+ }).Warn("failed to send")
h.errorCh <- true
+ conn.Close()
return fmt.Errorf("closed")
}
fsm.bgpMessageStateUpdate(m.Header.Type, false)