]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/ircd.c
More rb_socketpair() return value checks.
[irc/rqf/shadowircd.git] / src / ircd.c
index 9089ae805633c0ca54a74998e3880940dfbf58df..6a8a3d4c1bac63861a7c6eae9e5854ab870f3f79 100644 (file)
@@ -66,6 +66,7 @@
 #include "serno.h"
 #include "sslproc.h"
 #include "chmode.h"
+#include "privilege.h"
 
 /* /quote set variables */
 struct SetOptions GlobalSetOptions;
@@ -188,7 +189,7 @@ init_sys(void)
                if(maxconnections <= MAX_BUFFER)
                {
                        fprintf(stderr, "ERROR: Shell FD limits are too low.\n");
-                       fprintf(stderr, "ERROR: ircd-ratbox reserves %d FDs, shell limits must be above this\n", MAX_BUFFER);
+                       fprintf(stderr, "ERROR: charybdis reserves %d FDs, shell limits must be above this\n", MAX_BUFFER);
                        exit(EXIT_FAILURE);
                }
                return;
@@ -453,7 +454,7 @@ ircd_log_cb(const char *str)
 static void
 ircd_restart_cb(const char *str)
 {
-       inotice(L_MAIN, "libratbox has called the restart callback: %s", str);
+       inotice("libratbox has called the restart callback: %s", str);
        restart(str);
 }
 
@@ -474,7 +475,7 @@ ircd_die_cb(const char *str)
                inotice("libratbox has called the die callback..aborting: %s", str);
        }
        else
-               inotice(L_MAIN, "libratbox has called the die callback..aborting");
+               inotice("libratbox has called the die callback..aborting");
 
        unlink(pidFileName);
        exit(EXIT_FAILURE);
@@ -597,6 +598,7 @@ main(int argc, char *argv[])
        if(printVersion)
        {
                printf("ircd: version %s(%s)\n", ircd_version, serno);
+               printf("ircd: %s\n", rb_lib_version());
                exit(EXIT_SUCCESS);
        }
 
@@ -625,12 +627,21 @@ main(int argc, char *argv[])
                if(!server_state_foreground)
                        make_daemon();
                inotice("starting %s ...", ircd_version);
+               inotice("%s", rb_lib_version());
        }
 
        /* Init the event subsystem */
        rb_lib_init(ircd_log_cb, ircd_restart_cb, ircd_die_cb, !server_state_foreground, maxconnections, DNODE_HEAP_SIZE, FD_HEAP_SIZE);
        rb_linebuf_init(LINEBUF_HEAP_SIZE);
 
+       if(ConfigFileEntry.use_egd && (ConfigFileEntry.egdpool_path != NULL))
+       {
+               rb_init_prng(ConfigFileEntry.egdpool_path, RB_PRNG_EGD);
+       } else
+               rb_init_prng(NULL, RB_PRNG_DEFAULT);
+
+       seed_random(NULL);
+
        init_main_logfile();
        newconf_init();
        init_s_conf();
@@ -654,6 +665,7 @@ main(int argc, char *argv[])
 #endif
        init_auth();            /* Initialise the auth code */
        init_resolver();        /* Needs to be setup before the io loop */
+       privilegeset_set_new("default", "", 0);
 
        if (testing_conf)
                fprintf(stderr, "\nBeginning config test\n");