show dialog on unexpected socket close code

This commit is contained in:
ouwou 2021-04-12 03:03:18 -04:00
parent 4af7dacb0f
commit ceaf4649dc
2 changed files with 24 additions and 0 deletions

View File

@ -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<unsigned>(close_code)) + ")",
false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
dlg.set_position(Gtk::WIN_POS_CENTER);
dlg.run();
}
}

View File

@ -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,