src/server/daemon/webserver.c

changeset 68
f5102a892ed4
parent 66
74babc0082b7
child 73
79fa26ecd135
--- 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;
+}

mercurial