From c247a3d9914affa6118de5a5b3c2277f4e5e8438 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 27 Aug 2013 16:11:39 -0400 Subject: Build fix in tap, handling of Windows shutdown signals. --- main.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index b0713da8..49530765 100644 --- a/main.cpp +++ b/main.cpp @@ -107,6 +107,23 @@ static void sighandlerQuit(int sig) } #endif +#ifdef __WINDOWS__ +static BOOL WINAPI _handlerRoutine(DWORD dwCtrlType) +{ + switch(dwCtrlType) { + case CTRL_C_EVENT: + case CTRL_BREAK_EVENT: + case CTRL_CLOSE_EVENT: + case CTRL_SHUTDOWN_EVENT: + Node *n = node; + if (n) + n->terminate(); + return TRUE; + } + return FALSE; +} +#endif + #ifdef __WINDOWS__ int _tmain(int argc, _TCHAR* argv[]) #else @@ -127,6 +144,7 @@ int main(int argc,char **argv) #ifdef __WINDOWS__ WSADATA wsaData; WSAStartup(MAKEWORD(2,2),&wsaData); + SetConsoleCtrlHandler(&_handlerRoutine,TRUE); #endif _initLibCrypto(); -- cgit v1.2.3