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];