]> granicus.if.org Git - apache/commitdiff
SSL_rand() does a mutex lock/unlock with threaded MPMs, so collapse
authorDoug MacEachern <dougm@apache.org>
Thu, 29 Nov 2001 05:17:38 +0000 (05:17 +0000)
committerDoug MacEachern <dougm@apache.org>
Thu, 29 Nov 2001 05:17:38 +0000 (05:17 +0000)
two calls that seed pid and time into one.
PR:
Obtained from:
Submitted by:
Reviewed by:

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92233 13f79535-47bb-0310-9956-ffa450edef68

modules/ssl/ssl_engine_rand.c

index 36a57bce05b140e1258a5560822c876fbcffefc4..7b41ae0ef92167e4a3f0a3e34f2b7aec8377a517 100644 (file)
@@ -81,8 +81,6 @@ int ssl_rand_seed(server_rec *s, apr_pool_t *p, ssl_rsctx_t nCtx, char *prefix)
     int nReq, nDone;
     apr_file_t *fp;
     int i, n, l;
-    time_t t;
-    pid_t pid;
 
     mc = myModConfig(s);
     nReq  = 0;
@@ -125,20 +123,23 @@ int ssl_rand_seed(server_rec *s, apr_pool_t *p, ssl_rsctx_t nCtx, char *prefix)
             }
 #endif
             else if (pRandSeed->nSrc == SSL_RSSRC_BUILTIN) {
+                struct {
+                    time_t t;
+                    pid_t pid;
+                } my_seed;
+
                 /*
                  * seed in the current time (usually just 4 bytes)
                  */
-                t = time(NULL);
-                l = sizeof(time_t);
-                RAND_seed((unsigned char *)&t, l);
-                nDone += l;
+                my_seed.t = time(NULL);
 
                 /*
                  * seed in the current process id (usually just 4 bytes)
                  */
-                pid = mc->pid;
-                l = sizeof(pid_t);
-                RAND_seed((unsigned char *)&pid, l);
+                my_seed.pid = mc->pid;
+
+                l = sizeof(my_seed);
+                RAND_seed((unsigned char *)&my_seed, l);
                 nDone += l;
                 
                 /*