From: Doug MacEachern Date: Thu, 29 Nov 2001 05:04:22 +0000 (+0000) Subject: call getpid() once at child init and save in the SSLModConfigRec X-Git-Tag: 2.0.30~348 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1c3ac886e0eb43ba83d24f66d74816518db88402;p=apache call getpid() once at child init and save in the SSLModConfigRec to avoid getpid() calls at request time PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92231 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/ssl/mod_ssl.h b/modules/ssl/mod_ssl.h index 4d3615b3eb..6e547c913c 100644 --- a/modules/ssl/mod_ssl.h +++ b/modules/ssl/mod_ssl.h @@ -465,6 +465,7 @@ typedef struct { #define SSLConnLogApplies(sslconn, level) (sslconn->log_level >= level) typedef struct { + pid_t pid; apr_pool_t *pPool; BOOL bFixed; int nInitCount; diff --git a/modules/ssl/ssl_engine_init.c b/modules/ssl/ssl_engine_init.c index 3778fc9500..b3008f3d9e 100644 --- a/modules/ssl/ssl_engine_init.c +++ b/modules/ssl/ssl_engine_init.c @@ -964,6 +964,9 @@ STACK_OF(X509_NAME) *ssl_init_FindCAList(server_rec *s, apr_pool_t *pp, const ch void ssl_init_Child(apr_pool_t *p, server_rec *s) { + SSLModConfigRec *mc = myModConfig(s); + mc->pid = getpid(); /* only call getpid() once per-process */ + /* open the mutex lockfile */ ssl_mutex_reinit(s, p); return; diff --git a/modules/ssl/ssl_engine_rand.c b/modules/ssl/ssl_engine_rand.c index 6ccaa511e7..79a5a5171a 100644 --- a/modules/ssl/ssl_engine_rand.c +++ b/modules/ssl/ssl_engine_rand.c @@ -136,7 +136,7 @@ int ssl_rand_seed(server_rec *s, apr_pool_t *p, ssl_rsctx_t nCtx, char *prefix) /* * seed in the current process id (usually just 4 bytes) */ - pid = getpid(); + pid = mc->pid; l = sizeof(pid_t); RAND_seed((unsigned char *)&pid, l); nDone += l;