]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r1873397 from trunk:
authorRuediger Pluem <rpluem@apache.org>
Fri, 7 Nov 2025 08:23:08 +0000 (08:23 +0000)
committerRuediger Pluem <rpluem@apache.org>
Fri, 7 Nov 2025 08:23:08 +0000 (08:23 +0000)
PR62989: DOCTYPE tags in server-generated HTML.

Submitted By: Andra Farkas <deepbluemistake gmail.com>, Giovanni Bechis <giovanni paclan.it>
Reviewed by: rpluem, jorton, covener

Github: closes #553

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1929571 13f79535-47bb-0310-9956-ffa450edef68

15 files changed:
CHANGES
STATUS
changes-entries/md_v2.6.1.txt [deleted file]
changes-entries/md_v2.6.2.txt [deleted file]
changes-entries/pr69743.txt [deleted file]
docs/docroot/index.html
include/httpd.h
modules/examples/mod_example_hooks.c
modules/generators/mod_autoindex.c
modules/generators/mod_status.c
modules/http/http_protocol.c
modules/ldap/util_ldap.c
modules/mappers/mod_imagemap.c
modules/proxy/mod_proxy_balancer.c
modules/proxy/mod_proxy_ftp.c

diff --git a/CHANGES b/CHANGES
index 08b311994197aadc7b1542a1708e3ec76f3a87e3..f608213a84b8c9d3b1ecd43ea9dad098c1584c3a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,27 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.4.66
 
+  *) mod_ssl: Add SSLVHostSNIPolicy directive to control the virtual
+     host compatibility policy.  PR 69743.  [Joe Orton]
+
+  *) mod_md: update to version 2.6.2
+     - Fix error retry delay calculation to not already doubling the wait
+       on the first error.
+
+  *) mod_md: update to version 2.6.1
+     - Increasing default `MDRetryDelay` to 30 seconds to generate less bursty
+       traffic on errored renewals for the ACME CA. This leads to error retries
+        of 30s, 1 minute, 2, 4, etc. up to daily attempts.
+     - Checking that configuring `MDRetryDelay` will result in a positive
+       duration. A delay of 0 is not accepted.
+     - Fix a bug in checking Content-Type of responses from the ACME server.
+     - Added ACME ARI support (rfc9773) to the module. Enabled by default. New
+       directive "MDRenewViaARI on|off" for controlling this.
+     - Removing tailscale support. It has not been working for a long time
+       as the company decided to change their APIs. Away with the dead code,
+       documentation and tests.
+     - Fixed a compilation issue with pre-industrial versions of libcurl.
+
 Changes with Apache 2.4.65
 
   *) SECURITY: CVE-2025-54090: Apache HTTP Server: 'RewriteCond expr'
diff --git a/STATUS b/STATUS
index 478fe7ea9e22b48add1e07d17fb86ae7cadd4565..b655880142ca0b37c37a1cc3e1faf8e1849f8e85 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -175,14 +175,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
      2.4.x patch: svn merge -c 1927792 ^/httpd/httpd/trunk .
      +1: icing, rpluem, jorton
 
-  *) various: Update DOCTYPE tags in server-generated HTML to 4.01
-     Trunk version of patch:
-        https://svn.apache.org/r1873397
-     Backport version for 2.4.x of patch:
-       https://patch-diff.githubusercontent.com/raw/apache/httpd/pull/553.diff
-     Can be applied via apply_backport_pr.sh 553
-     +1: rpluem, jorton, covener
-
   *) mpm_common: Add new ListenTCPDeferAccept directive that allows to specify
      the value set for the TCP_DEFER_ACCEPT socket option on listen sockets.
      Trunk version of patch:
diff --git a/changes-entries/md_v2.6.1.txt b/changes-entries/md_v2.6.1.txt
deleted file mode 100644 (file)
index f3d1c30..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-  *) mod_md: update to version 2.6.1
-     - Increasing default `MDRetryDelay` to 30 seconds to generate less bursty
-       traffic on errored renewals for the ACME CA. This leads to error retries
-        of 30s, 1 minute, 2, 4, etc. up to daily attempts.
-     - Checking that configuring `MDRetryDelay` will result in a positive
-       duration. A delay of 0 is not accepted.
-     - Fix a bug in checking Content-Type of responses from the ACME server.
-     - Added ACME ARI support (rfc9773) to the module. Enabled by default. New
-       directive "MDRenewViaARI on|off" for controlling this.
-     - Removing tailscale support. It has not been working for a long time
-       as the company decided to change their APIs. Away with the dead code,
-       documentation and tests.
-     - Fixed a compilation issue with pre-industrial versions of libcurl.
diff --git a/changes-entries/md_v2.6.2.txt b/changes-entries/md_v2.6.2.txt
deleted file mode 100644 (file)
index d5194c2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-  *) mod_md: update to version 2.6.2
-     - Fix error retry delay calculation to not already doubling the wait
-       on the first error.
diff --git a/changes-entries/pr69743.txt b/changes-entries/pr69743.txt
deleted file mode 100644 (file)
index 72dfc8d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-  *) mod_ssl: Add SSLVHostSNIPolicy directive to control the virtual
-     host compatibility policy.  PR 69743.  [Joe Orton]
-
index f5f1c377b64ac12a85119591b453c83b1a4afdbf..a4e4d11f560d351efcc690b038f202d88239b6cf 100644 (file)
@@ -1 +1,9 @@
-<html><body><h1>It works!</h1></body></html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>It works! Apache httpd</title>
+</head>
+<body>
+<p>It works!</p>
+</body>
+</html>
index b4305b09f2fecb9d568a637f9c2d42037d08bc4f..573ef18381d5decd2ad1717bc4052b0d4e7a29b1 100644 (file)
@@ -249,6 +249,10 @@ extern "C" {
 #define DOCTYPE_HTML_4_0F "<!DOCTYPE HTML PUBLIC \"-//W3C//" \
                           "DTD HTML 4.0 Frameset//EN\"\n" \
                           "\"http://www.w3.org/TR/REC-html40/frameset.dtd\">\n"
+/** HTML 4.01 Doctype */
+#define DOCTYPE_HTML_4_01 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n"
+/** HTML 5 Doctype */
+#define DOCTYPE_HTML_5 "<!DOCTYPE html>\n"
 /** XHTML 1.0 Strict Doctype */
 #define DOCTYPE_XHTML_1_0S "<!DOCTYPE html PUBLIC \"-//W3C//" \
                            "DTD XHTML 1.0 Strict//EN\"\n" \
index d9379060681e704e0bc0bb4c6b73bb7ec68cc3d9..6bdd98996486d68f66c746e50c680c18ae18759c 100644 (file)
@@ -1006,7 +1006,7 @@ static int x_handler(request_rec *r)
      * Now send our actual output.  Since we tagged this as being
      * "text/html", we need to embed any HTML.
      */
-    ap_rputs(DOCTYPE_HTML_3_2, r);
+    ap_rputs(DOCTYPE_HTML_4_01, r);
     ap_rputs("<HTML>\n", r);
     ap_rputs(" <HEAD>\n", r);
     ap_rputs("  <TITLE>mod_example_hooks Module Content-Handler Output\n", r);
index 62804309ea607edc18dbd2418a48089ba1cb1dc8..715b49c7d746c4b7672caad22401208324c7370e 100644 (file)
@@ -179,7 +179,7 @@ static void emit_preamble(request_rec *r, int xhtml, const char *title)
                   " <head>\n  <title>Index of ", title,
                   "</title>\n", NULL);
     } else {
-        ap_rvputs(r, DOCTYPE_HTML_3_2,
+        ap_rvputs(r, DOCTYPE_HTML_4_01,
                   "<html>\n <head>\n"
                   "  <title>Index of ", title,
                   "</title>\n", NULL);
index c1c856d41ddb3080fd67cd1e6211c238dab06d21..f0cff67ac4581ddcfe680ea896a3368366951022 100644 (file)
@@ -419,7 +419,7 @@ static int status_handler(request_rec *r)
     ap_get_loadavg(&t);
 
     if (!short_report) {
-        ap_rputs(DOCTYPE_HTML_3_2
+        ap_rputs(DOCTYPE_HTML_4_01
                  "<html><head>\n"
                  "<title>Apache Status</title>\n"
                  "</head><body>\n"
index 3bc666e6d90536154d348334958e5b9e2cda8c4f..669a17d0b0251c323bc3811ed3a9e8ebfed7f408 100644 (file)
@@ -1520,7 +1520,7 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error)
          */
 
         ap_rvputs_proto_in_ascii(r,
-                  DOCTYPE_HTML_2_0
+                  DOCTYPE_HTML_4_01
                   "<html><head>\n<title>", title,
                   "</title>\n</head><body>\n<h1>", h1, "</h1>\n",
                   NULL);
index 3795fd42806251bdcfa424d611dfe9b6d3d4a351..cf57b3d23cc9c93e9e736ba58911d2d7752563ac 100644 (file)
@@ -176,7 +176,7 @@ static int util_ldap_handler(request_rec *r)
     if (r->header_only)
         return OK;
 
-    ap_rputs(DOCTYPE_HTML_3_2
+    ap_rputs(DOCTYPE_HTML_4_01
              "<html><head><title>LDAP Cache Information</title></head>\n", r);
     ap_rputs("<body bgcolor='#ffffff'><h1 align=center>LDAP Cache Information"
              "</h1>\n", r);
index b2dca7e1ee79672d43ff296a24d6196780782c9f..66d10bbb8c0bdef9689d5795be121fecac2b8cf2 100644 (file)
@@ -477,7 +477,7 @@ static void menu_header(request_rec *r, char *menu)
 {
     ap_set_content_type_ex(r, "text/html; charset=ISO-8859-1", 1);
 
-    ap_rvputs(r, DOCTYPE_HTML_3_2, "<html><head>\n<title>Menu for ",
+    ap_rvputs(r, DOCTYPE_HTML_4_01, "<html><head>\n<title>Menu for ",
               ap_escape_html(r->pool, r->uri),
               "</title>\n</head><body>\n", NULL);
 
index daec21ad6c3cec175e25f12f83ac8d9e40ca78fe..f5b228f0e327c7c68706316ce38eef967a89342f 100644 (file)
@@ -1620,7 +1620,7 @@ static void balancer_display_page(request_rec *r, proxy_server_conf *conf,
     }
     else {
         ap_set_content_type(r, "text/html; charset=ISO-8859-1");
-        ap_rputs(DOCTYPE_HTML_3_2
+        ap_rputs(DOCTYPE_HTML_4_01
                  "<html><head><title>Balancer Manager</title>\n", r);
         ap_rputs("<style type='text/css'>\n"
                  "table {\n"
index 5175e4558450c8394e83ef3c7c3a601c180de61f..0e9c9b29e245d3fb1b19f311a28e858b009bfd5a 100644 (file)
@@ -532,7 +532,7 @@ static apr_status_t proxy_send_dir_filter(ap_filter_t *f,
 
         /* print "ftp://host/" */
         escpath = ap_escape_html(p, path);
-        str = apr_psprintf(p, DOCTYPE_HTML_3_2
+        str = apr_psprintf(p, DOCTYPE_HTML_4_01
                 "<html>\n <head>\n  <title>%s%s%s</title>\n"
                 "<base href=\"%s%s%s\">\n"
                 " </head>\n"