From: Doug MacEachern Date: Wed, 28 Nov 2001 05:50:55 +0000 (+0000) Subject: calculate VHostID length at startup rather than request time. X-Git-Tag: 2.0.30~362 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=706c0cceeedfd9e498fd402aa72e332d6f5b5a99;p=apache calculate VHostID length at startup rather than request time. change ap_md5() call in ssl_hook_pre_connection() to ap_md5_binary() that uses the precalculated sc->nVHostID_length to avoid a strlen() call. PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92216 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/ssl/mod_ssl.c b/modules/ssl/mod_ssl.c index 37f92c5c25..621a3439f9 100644 --- a/modules/ssl/mod_ssl.c +++ b/modules/ssl/mod_ssl.c @@ -262,7 +262,7 @@ static int ssl_hook_pre_connection(conn_rec *c) return DECLINED; /* XXX */ } SSL_clear(ssl); - cpVHostMD5 = ap_md5(c->pool, sc->szVHostID); + cpVHostMD5 = ap_md5_binary(c->pool, sc->szVHostID, sc->nVHostID_length); if (!SSL_set_session_id_context(ssl, (unsigned char *)cpVHostMD5, MD5_DIGESTSIZE*2)) { ssl_log(c->base_server, SSL_LOG_ERROR|SSL_ADD_SSLERR, diff --git a/modules/ssl/mod_ssl.h b/modules/ssl/mod_ssl.h index 06c035e177..4d3615b3eb 100644 --- a/modules/ssl/mod_ssl.h +++ b/modules/ssl/mod_ssl.h @@ -498,6 +498,7 @@ typedef struct { */ typedef struct { const char *szVHostID; + int nVHostID_length; BOOL bEnabled; apr_table_t *ap_server_ctx; const char *szPublicCertFile[SSL_AIDX_MAX]; diff --git a/modules/ssl/ssl_engine_init.c b/modules/ssl/ssl_engine_init.c index ab98d808b9..3778fc9500 100644 --- a/modules/ssl/ssl_engine_init.c +++ b/modules/ssl/ssl_engine_init.c @@ -477,6 +477,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 */ sc->szVHostID = cpVHostID = ssl_util_vhostid(p, s); + sc->nVHostID_length = strlen(sc->szVHostID); /* * Now check for important parameters and the