1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-08 15:02:10 +03:00

COMPAT BREAK: This may change the hash keys used to cache privkeys

across a reload so don't backport this to 2.4.  Otherwise it's only
user-visible in logging output.

* modules/ssl/ssl_engine_init.c (ssl_init_Module): Derive the vhost_id
  *after* potentially setting sc->enabled to default-on, since the
  port used may change if not specified explicitly.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1828913 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Joe Orton
2018-04-11 16:11:21 +00:00
parent 90bfc436ee
commit 5968cd3a3e

View File

@@ -250,9 +250,6 @@ apr_status_t ssl_init_Module(apr_pool_t *p, apr_pool_t *plog,
sc->server->sc = sc; sc->server->sc = sc;
} }
/*
* Create the server host:port string because we need it a lot
*/
if (sc->vhost_id) { if (sc->vhost_id) {
/* already set. This should only happen if this config rec is /* already set. This should only happen if this config rec is
* shared with another server. Argh! */ * shared with another server. Argh! */
@@ -260,8 +257,6 @@ apr_status_t ssl_init_Module(apr_pool_t *p, apr_pool_t *plog,
"%s, SSLSrvConfigRec shared from %s", "%s, SSLSrvConfigRec shared from %s",
ssl_util_vhostid(p, s), sc->vhost_id); ssl_util_vhostid(p, s), sc->vhost_id);
} }
sc->vhost_id = ssl_util_vhostid(p, s);
sc->vhost_id_len = strlen(sc->vhost_id);
/* Default to enabled if SSLEngine is not set explicitly, and /* Default to enabled if SSLEngine is not set explicitly, and
* the protocol is https. */ * the protocol is https. */
@@ -271,6 +266,11 @@ apr_status_t ssl_init_Module(apr_pool_t *p, apr_pool_t *plog,
sc->enabled = SSL_ENABLED_TRUE; sc->enabled = SSL_ENABLED_TRUE;
} }
/* Derive the vhost id only after potentially defaulting-on
* sc->enabled since the port used may change. */
sc->vhost_id = ssl_util_vhostid(p, s);
sc->vhost_id_len = strlen(sc->vhost_id);
/* Fix up stuff that may not have been set. If sc->enabled is /* Fix up stuff that may not have been set. If sc->enabled is
* UNSET, then SSL is disabled on this vhost. */ * UNSET, then SSL is disabled on this vhost. */
if (sc->enabled == SSL_ENABLED_UNSET) { if (sc->enabled == SSL_ENABLED_UNSET) {