/* The MPMs use plain fork() and not apr_proc_fork(), so we have to
* take care of the random generator manually in the child.
*/
+ apr_proc_t proc;
+
+ memset(&proc, 0, sizeof(proc));
+ proc.pid = getpid();
+
#if USE_APR_CRYPTO_PRNG
- apr_crypto_prng_after_fork();
+ apr_crypto_prng_after_fork(&proc);
#else
- apr_proc_t proc;
#if APR_HAS_THREADS
int threaded_mpm;
if (ap_mpm_query(AP_MPMQ_IS_THREADED, &threaded_mpm) == APR_SUCCESS
{
apr_thread_mutex_create(&rng_mutex, APR_THREAD_MUTEX_DEFAULT, pchild);
}
- proc.pid = getpid();
- apr_random_after_fork(&proc);
#endif
+ apr_random_after_fork(&proc);
#endif /* USE_APR_CRYPTO_PRNG */
}