From ceaf4649dc317e248d0b0df6cf78c1798f287e1a Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Mon, 12 Apr 2021 03:03:18 -0400 Subject: [PATCH] show dialog on unexpected socket close code --- abaddon.cpp | 7 +++++++ discord/objects.hpp | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/abaddon.cpp b/abaddon.cpp index 2123dbd..93fce4c 100644 --- a/abaddon.cpp +++ b/abaddon.cpp @@ -240,6 +240,13 @@ void Abaddon::DiscordOnDisconnect(bool is_reconnecting, GatewayCloseCode close_c m_main_window->UpdateComponents(); if (close_code == GatewayCloseCode::AuthenticationFailed) { Gtk::MessageDialog dlg(*m_main_window, "Discord rejected your token", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); + dlg.set_position(Gtk::WIN_POS_CENTER); + dlg.run(); + } else if (close_code != GatewayCloseCode::Normal) { + Gtk::MessageDialog dlg(*m_main_window, + "Lost connection with Discord's gateway. Try reconnecting (code " + std::to_string(static_cast(close_code)) + ")", + false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); + dlg.set_position(Gtk::WIN_POS_CENTER); dlg.run(); } } diff --git a/discord/objects.hpp b/discord/objects.hpp index 0f5c437..d236736 100644 --- a/discord/objects.hpp +++ b/discord/objects.hpp @@ -71,6 +71,23 @@ enum class GatewayEvent : int { }; enum class GatewayCloseCode : uint16_t { + // standard + Normal = 1000, + GoingAway = 1001, + ProtocolError = 1002, + Unsupported = 1003, + NoStatus = 1005, + Abnormal = 1006, + UnsupportedPayload = 1007, + PolicyViolation = 1008, + TooLarge = 1009, + MandatoryExtension = 1010, + ServerError = 1011, + ServiceRestart = 1012, + TryAgainLater = 1013, + BadGateway = 1014, + TLSHandshakeFailed = 1015, + // discord UnknownError = 4000, UnknownOpcode = 4001,