From 84c88755885e0b3a168fb4aed5a89eb6dead977a Mon Sep 17 00:00:00 2001 From: LE Xuan Sang Date: Thu, 22 Oct 2015 23:13:53 +0200 Subject: [PATCH] add release handler to unload all running plugin --- build/httpd | Bin 45548 -> 49780 bytes .../httpd.dSYM/Contents/Resources/DWARF/httpd | Bin 44165 -> 44414 bytes build/plugins/dummy.dylib | Bin 43012 -> 43012 bytes build/plugins/fileman.dylib | Bin 43052 -> 43164 bytes build/plugins/pluginsman.dylib | Bin 42668 -> 42668 bytes httpd.c | 5 ++++- plugin_manager.c | 18 +++++++++++++++++- plugins/fileman/fileman.c | 4 ++++ plugins/fileman/fileman.c.o | Bin 15104 -> 15536 bytes 9 files changed, 25 insertions(+), 2 deletions(-) diff --git a/build/httpd b/build/httpd index 1ab524edc54cd55c55e255175293abc01ea8e084..e7d5ab81f6bf8f253ca3062ce6e748ba937df393 100755 GIT binary patch delta 14846 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 diff --git a/build/httpd.dSYM/Contents/Resources/DWARF/httpd b/build/httpd.dSYM/Contents/Resources/DWARF/httpd index 0917e151557e4af1651e3fe46327d35d53e7da02..0f731fb59e65921f542e17d31387e325a28688c3 100644 GIT binary patch delta 12820 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 delta 12389 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 uGTqLT@Q{!|G6s&kFT{GXB{U(b)Q1t)yQwhKT diff --git a/build/plugins/dummy.dylib b/build/plugins/dummy.dylib index 812c85a2947ea99f9bd9c0b796b360dec401859f..0505c15c5fca6f60d4834bf1e53fd0d6eab4b817 100755 GIT binary patch delta 63 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 E0O^tz!TcZVzsSW3I6ml@31-TzSx E03Wp&=Kufz diff --git a/httpd.c b/httpd.c index e329964..58eba66 100644 --- a/httpd.c +++ b/httpd.c @@ -61,7 +61,9 @@ void load_config(const char* file) } init_file_system(); } - +void stop_serve(int dummy) { + unload_all_plugin(); +} int main(int argc, char* argv[]) { // load the config first @@ -81,6 +83,7 @@ int main(int argc, char* argv[]) //or reading to/from a closed socked connection signal(SIGPIPE, SIG_IGN); signal(SIGABRT, SIG_IGN); + signal(SIGINT, stop_serve); server_sock = startup(&port); LOG("httpd running on port %d\n", port); diff --git a/plugin_manager.c b/plugin_manager.c index e115770..eb39df6 100644 --- a/plugin_manager.c +++ b/plugin_manager.c @@ -415,17 +415,33 @@ void * plugin_from_file(char* name) */ void unload_all_plugin() { + LOG("Unload all plugins\n"); + void (*fn)(); + char* error; for(int i=0;inext) { + // execute the exit function if exists + // load the function + fn = (void (*)())dlsym(np->handle, "pexit"); + if ((error = dlerror()) != NULL) + { + LOG("Cant not find exit method from %s : %s \n", np->pname,error); + } + else + { + // execute it + (*fn)(); + } dlclose(np->handle); - free((void *) np->handle); + //free((void *) np->handle); free((void *) np->pname); } plugin_table[i] = NULL; } + exit(0); } /** diff --git a/plugins/fileman/fileman.c b/plugins/fileman/fileman.c index ec60dc8..0689f5d 100644 --- a/plugins/fileman/fileman.c +++ b/plugins/fileman/fileman.c @@ -186,3 +186,7 @@ void rmfolder(int c, const char* m, dictionary rq) //LOG("%s\n",rpath ); __t(c,__RESULT__,1,"OK"); } +void pexit() +{ + LOG("Exit file manager,plugins\n"); +} \ No newline at end of file diff --git a/plugins/fileman/fileman.c.o b/plugins/fileman/fileman.c.o index cbf59a5dbee6e71e6e076a414d3f5762197206e1..a0e5a9c86812febbfe590d10304760e4751c0f9a 100644 GIT binary patch delta 5474 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 VG1bB;^J{NjvAnTCkpgzk{{UGpra1rr delta 5131 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 e9J!5Pg%lW@Ry=wOW