mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
* Store the correct server_rec in the connection record configuration and
adjust the remaining part of mod_ssl to use this server_rec instead of c->base_server. modules/ssl/ssl_private.h: - server_rec member to SSLConnRec struct - Add macros to extract data from connection_rec mySrvFromConn(c) mySrvConfigFromConn(c) myModConfigFromConn(c) modules/ssl/ssl_engine_io.c modules/ssl/ssl_util_ocsp.c modules/ssl/ssl_engine_kernel.c modules/ssl/mod_ssl.c modules/ssl/ssl_engine_log.c - Use the new macros to extract data fron connection_rec and use the server_rec stored in SSLConnRec instead of c->base_server whereever appropriate. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@757463 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -290,6 +290,8 @@ static SSLConnRec *ssl_init_connection_ctx(conn_rec *c)
|
||||
|
||||
sslconn = apr_pcalloc(c->pool, sizeof(*sslconn));
|
||||
|
||||
sslconn->server = c->base_server;
|
||||
|
||||
myConnConfigSet(c, sslconn);
|
||||
|
||||
return sslconn;
|
||||
@@ -297,9 +299,10 @@ static SSLConnRec *ssl_init_connection_ctx(conn_rec *c)
|
||||
|
||||
int ssl_proxy_enable(conn_rec *c)
|
||||
{
|
||||
SSLSrvConfigRec *sc = mySrvConfig(c->base_server);
|
||||
SSLSrvConfigRec *sc;
|
||||
|
||||
SSLConnRec *sslconn = ssl_init_connection_ctx(c);
|
||||
sc = mySrvConfig(sslconn->server);
|
||||
|
||||
if (!sc->proxy_enabled) {
|
||||
ap_log_cerror(APLOG_MARK, APLOG_ERR, 0, c,
|
||||
@@ -317,10 +320,16 @@ int ssl_proxy_enable(conn_rec *c)
|
||||
|
||||
int ssl_engine_disable(conn_rec *c)
|
||||
{
|
||||
SSLSrvConfigRec *sc = mySrvConfig(c->base_server);
|
||||
SSLSrvConfigRec *sc;
|
||||
|
||||
SSLConnRec *sslconn;
|
||||
SSLConnRec *sslconn = myConnConfig(c);
|
||||
|
||||
if (sslconn) {
|
||||
sc = mySrvConfig(sslconn->server);
|
||||
}
|
||||
else {
|
||||
sc = mySrvConfig(c->base_server);
|
||||
}
|
||||
if (sc->enabled == SSL_ENABLED_FALSE) {
|
||||
return 0;
|
||||
}
|
||||
@@ -334,20 +343,23 @@ int ssl_engine_disable(conn_rec *c)
|
||||
|
||||
int ssl_init_ssl_connection(conn_rec *c, request_rec *r)
|
||||
{
|
||||
SSLSrvConfigRec *sc = mySrvConfig(c->base_server);
|
||||
SSLSrvConfigRec *sc;
|
||||
SSL *ssl;
|
||||
SSLConnRec *sslconn = myConnConfig(c);
|
||||
char *vhost_md5;
|
||||
modssl_ctx_t *mctx;
|
||||
|
||||
/*
|
||||
* Seed the Pseudo Random Number Generator (PRNG)
|
||||
*/
|
||||
ssl_rand_seed(c->base_server, c->pool, SSL_RSCTX_CONNECT, "");
|
||||
server_rec *server;
|
||||
|
||||
if (!sslconn) {
|
||||
sslconn = ssl_init_connection_ctx(c);
|
||||
}
|
||||
server = sslconn->server;
|
||||
sc = mySrvConfig(server);
|
||||
|
||||
/*
|
||||
* Seed the Pseudo Random Number Generator (PRNG)
|
||||
*/
|
||||
ssl_rand_seed(server, c->pool, SSL_RSCTX_CONNECT, "");
|
||||
|
||||
mctx = sslconn->is_proxy ? sc->proxy : sc->server;
|
||||
|
||||
@@ -360,7 +372,7 @@ int ssl_init_ssl_connection(conn_rec *c, request_rec *r)
|
||||
ap_log_cerror(APLOG_MARK, APLOG_ERR, 0, c,
|
||||
"Unable to create a new SSL connection from the SSL "
|
||||
"context");
|
||||
ssl_log_ssl_error(APLOG_MARK, APLOG_ERR, c->base_server);
|
||||
ssl_log_ssl_error(APLOG_MARK, APLOG_ERR, server);
|
||||
|
||||
c->aborted = 1;
|
||||
|
||||
@@ -375,7 +387,7 @@ int ssl_init_ssl_connection(conn_rec *c, request_rec *r)
|
||||
{
|
||||
ap_log_cerror(APLOG_MARK, APLOG_ERR, 0, c,
|
||||
"Unable to set session id context to `%s'", vhost_md5);
|
||||
ssl_log_ssl_error(APLOG_MARK, APLOG_ERR, c->base_server);
|
||||
ssl_log_ssl_error(APLOG_MARK, APLOG_ERR, server);
|
||||
|
||||
c->aborted = 1;
|
||||
|
||||
@@ -424,9 +436,15 @@ static apr_port_t ssl_hook_default_port(const request_rec *r)
|
||||
|
||||
static int ssl_hook_pre_connection(conn_rec *c, void *csd)
|
||||
{
|
||||
SSLSrvConfigRec *sc = mySrvConfig(c->base_server);
|
||||
SSLSrvConfigRec *sc;
|
||||
SSLConnRec *sslconn = myConnConfig(c);
|
||||
|
||||
if (sslconn) {
|
||||
sc = mySrvConfig(sslconn->server);
|
||||
}
|
||||
else {
|
||||
sc = mySrvConfig(c->base_server);
|
||||
}
|
||||
/*
|
||||
* Immediately stop processing if SSL is disabled for this connection
|
||||
*/
|
||||
|
Reference in New Issue
Block a user