From 95bf54942751bf31ddc1dbd37e4af6e06d6e342e Mon Sep 17 00:00:00 2001 From: EntireTwix Date: Wed, 19 May 2021 13:30:19 -0700 Subject: [PATCH] :sparkles: Save on cntrl+c interupt --- main.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/main.cpp b/main.cpp index b2acbd9..ad6fc7e 100644 --- a/main.cpp +++ b/main.cpp @@ -5,9 +5,21 @@ #include #include "bank_f.hpp" +#include +#include +#include +#include + using namespace std::chrono; using namespace drogon; +void SaveSig(int s) +{ + bank.Save(); + std::cout<<"\nSaving on close...\n"; + exit(1); +} + int main(int argc, char **argv) { if (argc != 4) @@ -24,6 +36,15 @@ int main(int argc, char **argv) //Loading users from users.json bank.Load(); + //Sig handling + struct sigaction sigIntHandler; + + sigIntHandler.sa_handler = SaveSig; + sigemptyset(&sigIntHandler.sa_mask); + sigIntHandler.sa_flags = 0; + + sigaction(SIGINT, &sigIntHandler, NULL); + //Admin Password bank.admin_pass = argv[1];