]> granicus.if.org Git - apache/commitdiff
avoid calling ssl_util_vhostid() (and apr_sprintf underneath) at
authorDoug MacEachern <dougm@apache.org>
Wed, 28 Nov 2001 05:44:50 +0000 (05:44 +0000)
committerDoug MacEachern <dougm@apache.org>
Wed, 28 Nov 2001 05:44:50 +0000 (05:44 +0000)
request time by calling it at startup time and saving the value in the
SSLSrvConfigRec.
PR:
Obtained from:
Submitted by:
Reviewed by:

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

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

index 619c5dd1ff99287c7b13aa654596deb52e563c5f..37f92c5c25a105dc8a5293a56f149787408faef7 100644 (file)
@@ -221,7 +221,6 @@ static int ssl_hook_pre_connection(conn_rec *c)
 {
     SSLSrvConfigRec *sc = mySrvConfig(c->base_server);
     SSL *ssl;
-    unsigned char *cpVHostID;
     char *cpVHostMD5;
     SSLConnRec *sslconn = apr_pcalloc(c->pool, sizeof(*sslconn));
 
@@ -241,9 +240,9 @@ static int ssl_hook_pre_connection(conn_rec *c)
      * Remember the connection information for
      * later access inside callback functions
      */
-    cpVHostID = (unsigned char *)ssl_util_vhostid(c->pool,c->base_server);
+
     ssl_log(c->base_server, SSL_LOG_INFO, "Connection to child %d established "
-            "(server %s, client %s)", c->id, cpVHostID, 
+            "(server %s, client %s)", c->id, sc->szVHostID, 
             c->remote_ip != NULL ? c->remote_ip : "unknown");
 
     /*
@@ -263,7 +262,7 @@ static int ssl_hook_pre_connection(conn_rec *c)
         return DECLINED; /* XXX */
     }
     SSL_clear(ssl);
-    cpVHostMD5 = ap_md5(c->pool, cpVHostID);
+    cpVHostMD5 = ap_md5(c->pool, sc->szVHostID);
     if (!SSL_set_session_id_context(ssl, (unsigned char *)cpVHostMD5,
                                     MD5_DIGESTSIZE*2)) {
         ssl_log(c->base_server, SSL_LOG_ERROR|SSL_ADD_SSLERR,
index 8bd0c71b8a5bbbea6891169f35607452138bb5d4..06c035e17705e4c48f0eaefc3667dec1403e1449 100644 (file)
@@ -497,6 +497,7 @@ typedef struct {
  *  and all <VirtualHost> contexts)
  */
 typedef struct {
+    const char  *szVHostID;
     BOOL         bEnabled;
     apr_table_t *ap_server_ctx;
     const char  *szPublicCertFile[SSL_AIDX_MAX];
index beb907876684ef359fe782f2333236c5f9d8790c..d37df7d0bb67659c52267af758a834e3d001c09d 100644 (file)
@@ -190,6 +190,7 @@ void *ssl_config_server_merge(apr_pool_t *p, void *basev, void *addv)
     SSLSrvConfigRec *add  = (SSLSrvConfigRec *)addv;
     SSLSrvConfigRec *new  = (SSLSrvConfigRec *)apr_palloc(p, sizeof(SSLSrvConfigRec));
 
+    cfgMergeString(szVHostID);
     cfgMergeBool(bEnabled);
     cfgMergeString(szCACertificatePath);
     cfgMergeString(szCACertificateFile);
index a13aa7199aec77434afc12e06c78ebfb5ebe46fa..ab98d808b9dac116d784ecb16a6b6d4d3acb72de 100644 (file)
@@ -476,7 +476,7 @@ void ssl_init_ConfigureServer(server_rec *s, apr_pool_t *p, SSLSrvConfigRec *sc)
     /*
      * Create the server host:port string because we need it a lot
      */
-    cpVHostID = ssl_util_vhostid(p, s);
+    sc->szVHostID = cpVHostID = ssl_util_vhostid(p, s);
 
     /*
      * Now check for important parameters and the