diff --git a/src/ws/init.go b/src/ws/init.go index d58fb77..c71865a 100644 --- a/src/ws/init.go +++ b/src/ws/init.go @@ -43,9 +43,10 @@ func WelcomeAgents(ws *websocket.Conn, welcome WSWelcome, t string) { } } -func gcConn(conn *websocket.Conn) (err error) { +func gcConnOnError(ws *websocket.Conn) (err error) { for index, value := range LISTENERS { - if value.ConnectionPS == conn || value.ConnectionRR == conn { + if value.ConnectionPS == ws || value.ConnectionRR == ws { + ws.Close() delete(LISTENERS, index) } } diff --git a/src/ws/reqrep.go b/src/ws/reqrep.go index f6f10b6..0e4d300 100644 --- a/src/ws/reqrep.go +++ b/src/ws/reqrep.go @@ -50,12 +50,13 @@ func HandleWSRR(c echo.Context, cfg *config.Config) error { switch apievent.MsgType { case "bootstrap": + log.Printf("bootstrap: %s\n", apievent.Hostname) for index, value := range LISTENERS { if index != apievent.Hostname { err = websocket.Message.Send(value.ConnectionPS, msg) if err != nil { log.Println(err) - gcConn(ws) + gcConnOnError(ws) } } } @@ -73,7 +74,7 @@ func HandleWSRR(c echo.Context, cfg *config.Config) error { err = websocket.Message.Send(value.ConnectionPS, msg) if err != nil { log.Println(err) - gcConn(ws) + gcConnOnError(ws) } } log.Printf("ws: Inserted event") @@ -82,7 +83,7 @@ func HandleWSRR(c echo.Context, cfg *config.Config) error { err = websocket.Message.Send(value.ConnectionPS, msg) if err != nil { log.Println(err) - gcConn(ws) + gcConnOnError(ws) } } default: