]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Add IP address conversion utility functions, irc::sockets::aptosa and irc::sockets...
[user/henk/code/inspircd.git] / src / inspircd.cpp
index 7c82b706b0991d87e83f10f8d5f7e279fc9ea7a7..11ea679e791d839306c3efc0d4f0a3c21973b152 100644 (file)
@@ -357,7 +357,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
        FailedPortList pl;
        int do_version = 0, do_nofork = 0, do_debug = 0,
            do_nolog = 0, do_root = 0, do_testsuite = 0;    /* flag variables */
-       char c = 0;
+       int c = 0;
 
        // Initialize so that if we exit before proper initialization they're not deleted
        this->Logs = 0;
@@ -445,7 +445,8 @@ InspIRCd::InspIRCd(int argc, char** argv)
                { 0, 0, 0, 0 }
        };
 
-       while ((c = getopt_long_only(argc, argv, ":f:", longopts, NULL)) != -1)
+       int index;
+       while ((c = getopt_long_only(argc, argv, ":f:", longopts, &index)) != -1)
        {
                switch (c)
                {
@@ -460,8 +461,11 @@ InspIRCd::InspIRCd(int argc, char** argv)
                        case 0:
                                /* getopt_long_only() set an int variable, just keep going */
                        break;
+                       case '?':
+                               /* Unknown parameter */
                        default:
-                               /* Unknown parameter! DANGER, INTRUDER.... err.... yeah. */
+                               /* Fall through to handle other weird values too */
+                               printf("Unknown parameter '%s'\n", argv[index]);
                                printf("Usage: %s [--nofork] [--nolog] [--debug] [--logfile <filename>]\n\
                                                  [--runasroot] [--version] [--config <config>] [--testsuite]\n", argv[0]);
                                Exit(EXIT_STATUS_ARGV);
@@ -762,8 +766,7 @@ int InspIRCd::Run()
 #endif
 
                /* Check if there is a config thread which has finished executing but has not yet been freed */
-               RehashFinishMutex.Lock();
-               if (this->ConfigThread && this->ConfigThread->GetExitFlag())
+               if (this->ConfigThread && this->ConfigThread->IsDone())
                {
                        /* Rehash has completed */
 
@@ -798,7 +801,6 @@ int InspIRCd::Run()
                        delete ConfigThread;
                        ConfigThread = NULL;
                }
-               RehashFinishMutex.Unlock();
 
                /* time() seems to be a pretty expensive syscall, so avoid calling it too much.
                 * Once per loop iteration is pleanty.