Skip to content

Commit

Permalink
fix unclean exit after failed login
Browse files Browse the repository at this point in the history
  • Loading branch information
d99kris committed Jun 8, 2024
1 parent 09fc235 commit 8a1710b
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 19 deletions.
2 changes: 1 addition & 1 deletion src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ int main(int argc, char* argv[])
Log::SetPath(logPath);

THREAD_REGISTER();
Util::RegisterSignalHandlers();
Util::InitAppSignalHandlers();

const std::string appVersion = Version::GetUiAppVersion();
LOG_INFO("%s", appVersion.c_str());
Expand Down
2 changes: 1 addition & 1 deletion src/nmail.1
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
.TH NMAIL "1" "May 2024" "nmail v4.65" "User Commands"
.TH NMAIL "1" "June 2024" "nmail v4.66" "User Commands"
.SH NAME
nmail \- ncurses mail
.SH SYNOPSIS
Expand Down
4 changes: 2 additions & 2 deletions src/ui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2021,7 +2021,7 @@ void Ui::Run()
DrawAll();
int64_t uiIdleTime = 0;
LOG_INFO("entering ui loop");
Util::RegisterIgnoredSignalHandlers(); // ignore ctrl-c while ui is running
Util::InitUiSignalHandlers();
raw();

while (s_Running)
Expand Down Expand Up @@ -2126,7 +2126,7 @@ void Ui::Run()
}

noraw();
Util::RestoreIgnoredSignalHandlers();
Util::CleanupUiSignalHandlers();
LOG_INFO("exiting ui loop");

return;
Expand Down
19 changes: 8 additions & 11 deletions src/util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1411,7 +1411,6 @@ std::map<int, std::string> Util::GetIgnoredSignals()
{
static const std::map<int, std::string> ignoredSignals =
{
{ SIGINT, "SIGINT" },
{ SIGPIPE, "SIGPIPE" },
};
return ignoredSignals;
Expand All @@ -1424,7 +1423,7 @@ std::string Util::GetSigName(int p_Signal)
return (it != signames.end()) ? it->second : std::to_string(p_Signal);
}

void Util::RegisterSignalHandlers()
void Util::InitAppSignalHandlers()
{
const std::map<int, std::string>& crashingSignals = GetCrashingSignals();
for (const auto& crashingSignal : crashingSignals)
Expand All @@ -1437,24 +1436,22 @@ void Util::RegisterSignalHandlers()
{
signal(terminatingSignal.first, SignalTerminateHandler);
}
}

void Util::RegisterIgnoredSignalHandlers()
{
const std::map<int, std::string>& ignoredSignals = GetIgnoredSignals();
for (const auto& ignoredSignal : ignoredSignals)
{
signal(ignoredSignal.first, SIG_IGN);
}
}

void Util::RestoreIgnoredSignalHandlers()
void Util::InitUiSignalHandlers()
{
const std::map<int, std::string>& ignoredSignals = GetIgnoredSignals();
for (const auto& ignoredSignal : ignoredSignals)
{
signal(ignoredSignal.first, SIG_DFL);
}
signal(SIGINT, SIG_IGN);
}

void Util::CleanupUiSignalHandlers()
{
signal(SIGINT, SIG_DFL);
}

void Util::SignalCrashHandler(int p_Signal)
Expand Down
6 changes: 3 additions & 3 deletions src/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,9 @@ class Util
static std::string FromOctString(const std::string& p_Str);
static void HexToRGB(const std::string p_Str, uint32_t& p_R, uint32_t& p_G, uint32_t& p_B);

static void RegisterSignalHandlers();
static void RegisterIgnoredSignalHandlers();
static void RestoreIgnoredSignalHandlers();
static void InitAppSignalHandlers();
static void InitUiSignalHandlers();
static void CleanupUiSignalHandlers();
static void SignalCrashHandler(int p_Signal);
static void SignalTerminateHandler(int p_Signal);

Expand Down
2 changes: 1 addition & 1 deletion src/version.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#include "version.h"

#define NMAIL_VERSION "4.65"
#define NMAIL_VERSION "4.66"

std::string Version::GetBuildOs()
{
Expand Down

0 comments on commit 8a1710b

Please sign in to comment.