diff -r 50505dc3f8a6 -r f5102a892ed4 src/server/daemon/webserver.c --- a/src/server/daemon/webserver.c Sun May 26 22:05:41 2013 +0200 +++ b/src/server/daemon/webserver.c Mon May 27 12:28:56 2013 +0200 @@ -54,6 +54,7 @@ extern struct FuncStruct webserver_funcs[]; +static RestartCallback *atrestart; int webserver_init() { // init NSPR @@ -158,11 +159,37 @@ return 0; } +void webserver_shutdown() { + printf("webserver_shutdown\n"); + + // execute restart callbacks + RestartCallback *re = atrestart; + while(re) { + re->func(re->data); + re = re->next; + } +} void webserver_atrestart(void (*fn)(void *), void *data) { - /* - * TODO: implement later - * only for mod_jk at this time - */ + RestartCallback *cb = malloc(sizeof(RestartCallback)); + cb->func = fn; + cb->data = data; + cb->next = NULL; + + if(atrestart) { + RestartCallback *elm = atrestart; + while(elm) { + if(!elm->next) { + elm->next = cb; + break; + } + elm = elm->next; + } + } else { + atrestart = cb; + } } +int nsapi_runtime_version() { + return 303; +}