1
0
mirror of https://github.com/apache/httpd.git synced 2025-07-30 20:03:10 +03:00

minor ssl_init_CheckServers() enhancements:

- pass the ptemp (temporary pool) so we don't need to create a subpool
  and destroy it ourselves.

- change ssl_ds_table usage to apr_hash_t


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93887 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Doug MacEachern
2002-03-13 01:15:14 +00:00
parent e7f00d8c09
commit ec39586ace

View File

@ -332,7 +332,7 @@ int ssl_init_Module(apr_pool_t *p, apr_pool_t *plog,
/*
* Configuration consistency checks
*/
ssl_init_CheckServers(base_server, p);
ssl_init_CheckServers(base_server, ptemp);
/*
* Announce mod_ssl and SSL library in HTTP Server field
@ -850,11 +850,12 @@ void ssl_init_ConfigureServer(server_rec *s, apr_pool_t *p,
void ssl_init_CheckServers(server_rec *base_server, apr_pool_t *p)
{
server_rec *s, **ps;
server_rec *s, *ps;
SSLSrvConfigRec *sc;
ssl_ds_table *table;
apr_pool_t *subpool;
char *key;
apr_hash_t *table;
const char *key;
apr_ssize_t klen;
BOOL conflict = FALSE;
/*
@ -887,8 +888,7 @@ void ssl_init_CheckServers(server_rec *base_server, apr_pool_t *p)
* just the certificate/keys of one virtual host (which one cannot be said
* easily - but that doesn't matter here).
*/
apr_pool_create(&subpool, p);
table = ssl_ds_table_make(subpool, sizeof(server_rec *));
table = apr_hash_make(p);
for (s = base_server; s; s = s->next) {
sc = mySrvConfig(s);
@ -897,31 +897,27 @@ void ssl_init_CheckServers(server_rec *base_server, apr_pool_t *p)
continue;
}
key = apr_psprintf(subpool, "%pA:%u",
key = apr_psprintf(p, "%pA:%u",
&s->addrs->host_addr, s->addrs->host_port);
if ((ps = ssl_ds_table_get(table, key))) {
klen = strlen(key);
if ((ps = (server_rec *)apr_hash_get(table, key, klen))) {
ssl_log(base_server, SSL_LOG_WARN,
"Init: SSL server IP/port conflict: "
"%s (%s:%d) vs. %s (%s:%d)",
ssl_util_vhostid(p, s),
(s->defn_name ? s->defn_name : "unknown"),
s->defn_line_number,
ssl_util_vhostid(p, *ps),
((*ps)->defn_name ? (*ps)->defn_name : "unknown"),
(*ps)->defn_line_number);
ssl_util_vhostid(p, ps),
(ps->defn_name ? ps->defn_name : "unknown"),
ps->defn_line_number);
conflict = TRUE;
continue;
}
ps = ssl_ds_table_push(table, key);
*ps = s;
apr_hash_set(table, key, klen, s);
}
ssl_ds_table_kill(table);
/* XXX - It was giving some problem earlier - check it out - TBD */
apr_pool_destroy(subpool);
if (conflict) {
ssl_log(base_server, SSL_LOG_WARN,
"Init: You should not use name-based "