From 7a2b996f18e2d2a12f442079830c28fb1c85530f Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@hotmail.de>
Date: Sun, 22 Mar 2020 20:33:15 +0100
Subject: [PATCH] Fix high CPU usage on 5XX error codes

---
 src/ChatPage.cpp | 31 +++++--------------------------
 1 file changed, 5 insertions(+), 26 deletions(-)

diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp
index 7b706c761..5312ea432 100644
--- a/src/ChatPage.cpp
+++ b/src/ChatPage.cpp
@@ -974,36 +974,15 @@ ChatPage::trySync()
                           const auto err_code   = mtx::errors::to_string(err->matrix_error.errcode);
                           const int status_code = static_cast<int>(err->status_code);
 
-                          if (status_code <= 0 || status_code >= 600) {
-                                  if (!http::is_logged_in())
-                                          return;
-
-                                  emit tryDelayedSyncCb();
+                          if (http::is_logged_in() && err->matrix_error.errcode ==
+                                                        mtx::errors::ErrorCode::M_UNKNOWN_TOKEN) {
+                                  emit dropToLoginPageCb(msg);
                                   return;
                           }
 
                           nhlog::net()->error("sync error: {} {}", status_code, err_code);
-
-                          switch (status_code) {
-                          case 502:
-                          case 504:
-                          case 524: {
-                                  emit trySyncCb();
-                                  return;
-                          }
-                          default: {
-                                  if (!http::is_logged_in())
-                                          return;
-
-                                  if (err->matrix_error.errcode ==
-                                      mtx::errors::ErrorCode::M_UNKNOWN_TOKEN)
-                                          emit dropToLoginPageCb(msg);
-                                  else
-                                          emit tryDelayedSyncCb();
-
-                                  return;
-                          }
-                          }
+                          emit tryDelayedSyncCb();
+                          return;
                   }
 
                   nhlog::net()->debug("sync completed: {}", res.next_batch);
-- 
GitLab