]> granicus.if.org Git - apache/commitdiff
call getpid() once at child init and save in the SSLModConfigRec
authorDoug MacEachern <dougm@apache.org>
Thu, 29 Nov 2001 05:04:22 +0000 (05:04 +0000)
committerDoug MacEachern <dougm@apache.org>
Thu, 29 Nov 2001 05:04:22 +0000 (05:04 +0000)
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

modules/ssl/mod_ssl.h
modules/ssl/ssl_engine_init.c
modules/ssl/ssl_engine_rand.c

index 4d3615b3eb5444aa74ef2361899d385fdccb5ecb..6e547c913c7cbdb7b1cf0394f796edf35c5f3ca9 100644 (file)
@@ -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;
index 3778fc950055b3407989ca1957bef0b7e5cd2705..b3008f3d9e1414deb3b64ea3bc9e3216d5896e3f 100644 (file)
@@ -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;
index 6ccaa511e73acb18ba8559c30529e3800cb412f9..79a5a5171a672e6abf00eb5eff1342cd9f0204e0 100644 (file)
@@ -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;