diff --git a/buny.go b/buny.go index 95d5e01..158686a 100644 --- a/buny.go +++ b/buny.go @@ -94,8 +94,6 @@ func bunyPresense(v xmpp.Presence) error { //nolint:gocognit,gocyclo ) gTomb.Kill(err) - - continue } return err @@ -127,8 +125,6 @@ func bunyPresense(v xmpp.Presence) error { //nolint:gocognit,gocyclo ) gTomb.Kill(err) - - continue } return err @@ -164,8 +160,6 @@ func bunyPresense(v xmpp.Presence) error { //nolint:gocognit,gocyclo ) gTomb.Kill(err) - - continue } return err @@ -198,8 +192,6 @@ func bunyPresense(v xmpp.Presence) error { //nolint:gocognit,gocyclo ) gTomb.Kill(err) - - continue } return err @@ -256,8 +248,6 @@ func bunyChat(v xmpp.Chat) error { ) gTomb.Kill(err) - - continue } return err @@ -291,8 +281,6 @@ func bunyChat(v xmpp.Chat) error { ) gTomb.Kill(err) - - continue } return err diff --git a/lib.go b/lib.go index 279b7b5..1ccede7 100644 --- a/lib.go +++ b/lib.go @@ -509,6 +509,8 @@ func establishConnection() { log.Errorf("Try to send initial KeepAlive, got error: %s", err) gTomb.Kill(err) + + return } log.Info("Connected") @@ -544,6 +546,8 @@ func joinMuc(room string) { log.Infof("Unable to send disco#info to MUC %s: %s", room, err) gTomb.Kill(err) + + return } // Ждём, пока muc нам вернёт список фичей. @@ -576,6 +580,8 @@ func joinMuc(room string) { log.Errorf("Unable to join to MUC: %s", room) gTomb.Kill(err) + + return } log.Infof("Joining to MUC: %s", room) @@ -684,7 +690,7 @@ func probeServerLiveness() { //nolint:gocognit gTomb.Kill(err) - continue + return // По-умолчанию, мы отправляем c2s пинг default: @@ -693,7 +699,7 @@ func probeServerLiveness() { //nolint:gocognit if err := talk.PingC2S(talk.JID(), config.Jabber.Server); err != nil { gTomb.Kill(err) - continue + return } serverPingTimestampTx = time.Now().Unix() @@ -704,7 +710,7 @@ func probeServerLiveness() { //nolint:gocognit if err := talk.PingC2S(talk.JID(), config.Jabber.Server); err != nil { gTomb.Kill(err) - continue + return } serverPingTimestampTx = time.Now().Unix() @@ -717,7 +723,7 @@ func probeServerLiveness() { //nolint:gocognit if _, err := talk.SendKeepAlive(); err != nil { gTomb.Kill(err) - continue + return } } } else { // Сервер не ответил на disco#info @@ -726,7 +732,7 @@ func probeServerLiveness() { //nolint:gocognit if _, err := talk.SendKeepAlive(); err != nil { gTomb.Kill(err) - continue + return } } } @@ -768,7 +774,8 @@ func probeMUCLiveness() { //nolint:gocognit if err := talk.PingS2S(talk.JID(), room+"/"+config.Jabber.Nick); err != nil { gTomb.Kill(err) - continue + + return } }(room) */ @@ -790,6 +797,8 @@ func probeMUCLiveness() { //nolint:gocognit if err := talk.PingS2S(talk.JID(), room); err != nil { err := fmt.Errorf("unable to ping MUC %s: %w", room, err) gTomb.Kill(err) + + return } }(room) } diff --git a/main.go b/main.go index 8c99e98..a67b701 100644 --- a/main.go +++ b/main.go @@ -171,37 +171,31 @@ func myLoop() { if err != nil { log.Errorf("Unable to get events from server: %s", err) + // Попробуем скрасить печальные будни generic-ошибок... switch { // Стрим не читается, он закрылся с той стороны во время чтения case errors.Is(err, io.EOF): - err := fmt.Errorf("tcp stream closed while reading, err=%w", err) - gTomb.Kill(err) - - continue + err = fmt.Errorf("tcp stream closed while reading, err=%w", err) // Пытаемся читать закрытый сокет case errors.Is(err, net.ErrClosed): - err := fmt.Errorf("unable to read closed socket, err=%w", err) - gTomb.Kill(err) - - continue + err = fmt.Errorf("unable to read closed socket, err=%w", err) // Не смогли записать в сокет case errors.Is(err, net.ErrWriteToConnected): - err := fmt.Errorf("unable to write to socket, err=%w", err) - gTomb.Kill(err) - - continue + err = fmt.Errorf("unable to write to socket, err=%w", err) // Не сетевая проблема default: // Это уже что-то странное. // Вероятно, ошибка парсинга xml. Собственно, баг сервера, тут мы ничего поделать не можем - err := fmt.Errorf("error during parsing received message, err=%w", err) - gTomb.Kill(err) - - continue + err = fmt.Errorf("error during parsing received message, err=%w", err) } + + gTomb.Kill(err) + + // Не забываем выходить на ошибке :( + return } parseEvent(chat)