diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/HPM.h | 6 | ||||
-rw-r--r-- | src/common/console.c | 5 | ||||
-rw-r--r-- | src/common/core.c | 11 |
3 files changed, 9 insertions, 13 deletions
diff --git a/src/common/HPM.h b/src/common/HPM.h index e55397022..efa5d8370 100644 --- a/src/common/HPM.h +++ b/src/common/HPM.h @@ -42,11 +42,7 @@ #define DLL HINSTANCE #else // ! WIN32 #include <dlfcn.h> - #ifdef RTLD_DEEPBIND // Certain linux distributions require this, but it's not available everywhere - #define plugin_open(x) dlopen((x),RTLD_NOW|RTLD_DEEPBIND) - #else // ! RTLD_DEEPBIND - #define plugin_open(x) dlopen((x),RTLD_NOW) - #endif // RTLD_DEEPBIND + #define plugin_open(x) dlopen((x), RTLD_NOW) #define plugin_import(x,y,z) (z)dlsym((x),(y)) #define plugin_close(x) dlclose(x) #define plugin_geterror(buf) ((void)buf, dlerror()) diff --git a/src/common/console.c b/src/common/console.c index 0b0a900f6..e7edd7e1e 100644 --- a/src/common/console.c +++ b/src/common/console.c @@ -133,7 +133,10 @@ int console_parse_key_pressed(void) **/ CPCMD_C(exit, server) { - core->runflag = 0; + if (core->shutdown_callback != NULL) + core->shutdown_callback(); + else + core->runflag = CORE_ST_STOP; } /** diff --git a/src/common/core.c b/src/common/core.c index 1bd332eec..406bb7629 100644 --- a/src/common/core.c +++ b/src/common/core.c @@ -80,9 +80,6 @@ // And don't complain to us if the XYZ plugin you installed wiped your hard disk, or worse. // Note: This feature is deprecated, and should not be used. -/// Called when a terminate signal is received. -void (*shutdown_callback)(void) = NULL; - struct core_interface core_s; struct core_interface *core = &core_s; @@ -128,8 +125,8 @@ static BOOL WINAPI console_handler(DWORD c_event) case CTRL_CLOSE_EVENT: case CTRL_LOGOFF_EVENT: case CTRL_SHUTDOWN_EVENT: - if( shutdown_callback != NULL ) - shutdown_callback(); + if (core->shutdown_callback != NULL) + core->shutdown_callback(); else core->runflag = CORE_ST_STOP;// auto-shutdown break; @@ -158,8 +155,8 @@ static void sig_proc(int sn) case SIGTERM: if (++is_called > 3) exit(EXIT_SUCCESS); - if( shutdown_callback != NULL ) - shutdown_callback(); + if (core->shutdown_callback != NULL) + core->shutdown_callback(); else core->runflag = CORE_ST_STOP;// auto-shutdown break; |