Commit 088d07d2 authored by Doug MacEachern's avatar Doug MacEachern
Browse files

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/modules/ssl@92216 13f79535-47bb-0310-9956-ffa450edef68
parent ac2aa4aa
Loading
Loading
Loading
Loading
+1 −1
Changes for mod_ssl.c: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -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,
+1 −0
Changes for mod_ssl.h: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -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];
+1 −0
Changes for ssl_engine_init.c: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -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