-*- coding: utf-8 -*-
Changes with Apache 2.4.17
+ *) mod_h2: added donated http/2 implementation to build system. Similar
+ configuration options to mod_ssl. [Stefan Eissing]
+ *) mod_logio: Fix logging of %^FB (time to first byte) on the first request on
+ an SSL connection. PR 58454.
+ [Konstantin J. Chernov <k.j.chernov gmail.com>]
+
*) mod_cache: r->err_headers_out is not merged into
r->headers when mod_cache is enabled and the response
is cached for the first time. [Edward Lu]
" provided in HTTP request", servername);
return HTTP_BAD_REQUEST;
}
- rv = apr_parse_addr_port(&host, &scope_id, &port, r->hostname, r->pool);
- if (rv != APR_SUCCESS || scope_id) {
- return HTTP_BAD_REQUEST;
- }
- if (strcasecmp(host, servername)) {
+ if (r->server != handshakeserver) {
+ /*
+ * We are really not in Kansas anymore...
+ * The request does not select the virtual host that was
+ * selected by the SNI.
+ */
ap_log_error(APLOG_MARK, APLOG_ERR, 0, r->server, APLOGNO(02032)
- "Hostname %s provided via SNI and hostname %s provided"
- " via HTTP select a different server",
- servername, r->hostname);
- return HTTP_MISDIRECTED_REQUEST;
+ "Hostname %s provided via SNI and hostname %s provided"
+ " via HTTP are different", servername, host);
+ if (r->connection->keepalives > 0) {
+ return HTTP_MISDIRECTED_REQUEST;
+ }
+ return HTTP_BAD_REQUEST;
}
}
else if (((sc->strict_sni_vhost_check == SSL_ENABLED_TRUE)
return find_list_item(p, line, tok, AP_ETAG_WEAK);
}
++
/* Grab a list of tokens of the format 1#token (from RFC7230) */
AP_DECLARE(const char *) ap_parse_token_list_strict(apr_pool_t *p,
- const char *str_in,
- apr_array_header_t **tokens,
- int skip_invalid)
+ const char *str_in,
+ apr_array_header_t **tokens,
+ int skip_invalid)
{
int in_leading_space = 1;
int in_trailing_space = 0;