]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/dynamic.cpp
(TEST CODE) remote ping, do not use until debugged
[user/henk/code/inspircd.git] / src / dynamic.cpp
index 06aaf3ccdc31a78dc74736b3f65a4fab4df429df..dfc02ac245c444c37e667596d1319e1263e4b919 100644 (file)
@@ -52,6 +52,17 @@ DLLManager::DLLManager(char *fname)
                }
        }
        err = "Module is not statically compiled into the ircd";
+#else
+#ifdef IS_CYGWIN
+       // Cygwin behaviour is handled slightly differently
+       // With the advent of dynamic modules. Because Windows
+       // wont let you overwrite a file which is currently in
+       // Use, we can safely attempt to load the module from its
+       // Current location :)
+
+       h = dlopen(fname, RTLD_NOW );
+       err = (char*)dlerror();
+
 #else
        // Copy the library to a temp location, this makes recompiles
        // a little safer if the ircd is running at the time as the
@@ -60,7 +71,7 @@ DLLManager::DLLManager(char *fname)
        FILE* x = fopen(fname,"rb");
        char tmpfile_template[255];
        char buffer[65536];
-       snprintf(tmpfile_template, 255, "/tmp/inspircd_file.so.%d.XXXXXXXXXX",getpid());
+       snprintf(tmpfile_template, 255, "%s/inspircd_file.so.%d.XXXXXXXXXX",Config->TempDir,getpid());
        int fd = mkstemp(tmpfile_template);
        while (!feof(x))
        {
@@ -78,6 +89,7 @@ DLLManager::DLLManager(char *fname)
        if (!Config->debugging)
                unlink(tmpfile_template);
 #endif
+#endif
 }
 
 DLLManager::~DLLManager()