]> granicus.if.org Git - apache/commitdiff
Sync 2.4.17-protocols-http2 2.4.17-protocols-http2
authorJim Jagielski <jim@apache.org>
Mon, 28 Sep 2015 13:00:59 +0000 (13:00 +0000)
committerJim Jagielski <jim@apache.org>
Mon, 28 Sep 2015 13:00:59 +0000 (13:00 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.17-protocols-http2@1705681 13f79535-47bb-0310-9956-ffa450edef68

1  2 
CHANGES
docs/manual/mod/core.xml
modules/ssl/ssl_engine_kernel.c
server/util.c

diff --cc CHANGES
index 0581df378f56b8603dec5d2f4233527c398990eb,1e56da965062beb3723a8280020b185805bc5184..95adda0f6d4616c7390ceff5ca0744940a268c4d
+++ b/CHANGES
@@@ -1,9 -1,11 +1,13 @@@
                                                           -*- 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]
index 03fd555f12c5cfa4596ffdbfe57fc974d6f23509,1620ccbbc1dbb119c2bcceca488e460a878da739..fc4e253cd3ff6e3f996391c7ea73d559c1e621f8
@@@ -3589,6 -3589,6 +3589,8 @@@ On Windows, from Apache 2.3.3 and later
  </directivesynopsis>
  
  
++>
++
  <directivesynopsis>
      <name>Protocols</name>
      <description>Protocols available for a server/virtual host</description>
index aef6b465350d0fc70cd4d0db46c64114bc6e8f50,0ac64bfeffb8e53609d6d198648520ad7d2e6f56..ac0c6701747535a519ae26ebdcf54b3b51c0e5cd
@@@ -194,17 -196,18 +195,19 @@@ int ssl_hook_ReadReq(request_rec *r
                              " 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)
diff --cc server/util.c
index 916213c380172eacec2a0b224bf4c3b9bcbe5a03,0bc04b18cc3d14fb0a207d07d5c26b1447b533a6..b56926a6b7f9e59d196036b13c413806bb428448
@@@ -1451,11 -1451,11 +1451,12 @@@ AP_DECLARE(int) ap_find_etag_weak(apr_p
      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;