]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/proc.c
Add support for arc4random
[ngircd-alex.git] / src / ngircd / proc.c
index e062cd0b7c702494a3992e8bfe1beab2a348113a..d290f3bd100faed3cc17d8d24cd6396443a41131 100644 (file)
@@ -50,7 +50,9 @@ GLOBAL pid_t
 Proc_Fork(PROC_STAT *proc, int *pipefds, void (*cbfunc)(int, short), int timeout)
 {
        pid_t pid;
+#ifndef HAVE_ARC4RANDOM
        unsigned int seed;
+#endif
 
        assert(proc != NULL);
        assert(pipefds != NULL);
@@ -62,7 +64,9 @@ Proc_Fork(PROC_STAT *proc, int *pipefds, void (*cbfunc)(int, short), int timeout
                return -1;
        }
 
+#ifndef HAVE_ARC4RANDOM
        seed = (unsigned int)rand();
+#endif
        pid = fork();
        switch (pid) {
        case -1:
@@ -73,7 +77,9 @@ Proc_Fork(PROC_STAT *proc, int *pipefds, void (*cbfunc)(int, short), int timeout
                return -1;
        case 0:
                /* New child process: */
+#ifndef HAVE_ARC4RANDOM
                srand(seed ^ (unsigned int)time(NULL) ^ getpid());
+#endif
                Signals_Exit();
                signal(SIGTERM, Proc_GenericSignalHandler);
                signal(SIGALRM, Proc_GenericSignalHandler);