From: Doug MacEachern Date: Thu, 22 Nov 2001 02:44:35 +0000 (+0000) Subject: avoid a couple of calls to ssl_util_vhostid() and apr_psprintf() X-Git-Tag: 2.0.29~49 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=03d6bfb025b12eef20d9fe702a80e1a4657b7697;p=apache avoid a couple of calls to ssl_util_vhostid() and apr_psprintf() unless loglevel >= SSL_LOG_INFO PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92122 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/ssl/mod_ssl.c b/modules/ssl/mod_ssl.c index d494cfa238..d30871ecae 100644 --- a/modules/ssl/mod_ssl.c +++ b/modules/ssl/mod_ssl.c @@ -229,6 +229,7 @@ static int ssl_hook_pre_connection(conn_rec *c) * Create SSL context */ myConnConfigSet(c, sslconn); + sslconn->log_level = sc->nLogLevel; /* * Immediately stop processing if SSL is disabled for this connection diff --git a/modules/ssl/mod_ssl.h b/modules/ssl/mod_ssl.h index e9be23bde6..9634499049 100644 --- a/modules/ssl/mod_ssl.h +++ b/modules/ssl/mod_ssl.h @@ -459,8 +459,11 @@ typedef struct { const char *verify_info; const char *verify_error; int verify_depth; + int log_level; /* for avoiding expensive logging */ } SSLConnRec; +#define SSLConnLogApplies(sslconn, level) (sslconn->log_level >= level) + typedef struct { apr_pool_t *pPool; BOOL bFixed; diff --git a/modules/ssl/ssl_engine_kernel.c b/modules/ssl/ssl_engine_kernel.c index 697892bb05..bb8bd104b7 100644 --- a/modules/ssl/ssl_engine_kernel.c +++ b/modules/ssl/ssl_engine_kernel.c @@ -146,10 +146,14 @@ apr_status_t ssl_hook_CloseConnection(SSLFilterRec *filter) SSL_smart_shutdown(ssl); /* and finally log the fact that we've closed the connection */ - ssl_log(conn->base_server, SSL_LOG_INFO, - "Connection to child %d closed with %s shutdown (server %s, client %s)", - conn->id, cpType, ssl_util_vhostid(conn->pool, conn->base_server), - conn->remote_ip != NULL ? conn->remote_ip : "unknown"); + if (SSLConnLogApplies(sslconn, SSL_LOG_INFO)) { + ssl_log(conn->base_server, SSL_LOG_INFO, + "Connection to child %d closed with %s shutdown" + "(server %s, client %s)", + conn->id, cpType, + ssl_util_vhostid(conn->pool, conn->base_server), + conn->remote_ip != NULL ? conn->remote_ip : "unknown"); + } /* deallocate the SSL connection */ SSL_free(ssl); @@ -242,7 +246,7 @@ int ssl_hook_Translate(request_rec *r) /* * Log information about incoming HTTPS requests */ - if (ap_is_initial_req(r)) + if (ap_is_initial_req(r) && SSLConnLogApplies(sslconn, SSL_LOG_INFO)) { ssl_log(r->server, SSL_LOG_INFO, "%s HTTPS request received for child %d (server %s)", r->connection->keepalives <= 0 ? @@ -251,6 +255,7 @@ int ssl_hook_Translate(request_rec *r) r->connection->keepalives+1), r->connection->id, ssl_util_vhostid(r->pool, r->server)); + } /* SetEnvIf ssl-*-shutdown flags can only be per-server, * so they won't change across keepalive requests