src/server/safs/init.c

changeset 84
afd57ce39ec9
parent 77
f1cff81e425a
child 90
279f343bbf6c
--- a/src/server/safs/init.c	Mon Jul 01 18:05:13 2013 +0200
+++ b/src/server/safs/init.c	Mon Jul 08 11:10:54 2013 +0200
@@ -73,6 +73,9 @@
     // load function symbols
     int b = 0;
     for(int i=0;;i++) {
+        if(funcs[i] == '-') {
+            funcs[i] = '_';
+        }
         if(funcs[i] == ','  || funcs[i] == 0) {
             if(funcs[i] == 0) {
                 b = 1;
@@ -80,10 +83,11 @@
 
             funcs[i] = 0;
 
-            // we have a function name
+            // we have a function name         
             void *sym = dlsym(lib, funcs);
             if(sym == NULL) {
                 fprintf(stderr, "Cannot load symbol %s\n", funcs);
+                dlclose(lib);
                 return REQ_ABORTED;
             }
             struct FuncStruct fc;
@@ -99,6 +103,6 @@
             i = 0;
         }
     }
-
+    
     return REQ_PROCEED;
 }

mercurial