You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ic...@apache.org on 2026/04/10 08:51:56 UTC

svn commit: r1932946 - in httpd/httpd/branches/2.4.x: . changes-entries modules/md

Author: icing
Date: Fri Apr 10 08:51:56 2026
New Revision: 1932946

Log:
Merge /httpd/httpd/trunk:r1932945

  *) mod_md: update to version 2.6.9
     - Pebble 2.9+ reports another error when terms of service agreement is
       not set. Treating all "userActionRequired" errors as permanent now.

Added:
   httpd/httpd/branches/2.4.x/changes-entries/md_v2.6.9.txt
      - copied unchanged from r1932945, httpd/httpd/trunk/changes-entries/md_v2.6.9.txt
Modified:
   httpd/httpd/branches/2.4.x/   (props changed)
   httpd/httpd/branches/2.4.x/modules/md/md_acme.c
   httpd/httpd/branches/2.4.x/modules/md/md_version.h

Copied: httpd/httpd/branches/2.4.x/changes-entries/md_v2.6.9.txt (from r1932945, httpd/httpd/trunk/changes-entries/md_v2.6.9.txt)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ httpd/httpd/branches/2.4.x/changes-entries/md_v2.6.9.txt	Fri Apr 10 08:51:56 2026	(r1932946, copy of r1932945, httpd/httpd/trunk/changes-entries/md_v2.6.9.txt)
@@ -0,0 +1,3 @@
+  *) mod_md: update to version 2.6.9
+     - Pebble 2.9+ reports another error when terms of service agreement is
+       not set. Treating all "userActionRequired" errors as permanent now.

Modified: httpd/httpd/branches/2.4.x/modules/md/md_acme.c
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/md/md_acme.c	Fri Apr 10 08:44:53 2026	(r1932945)
+++ httpd/httpd/branches/2.4.x/modules/md/md_acme.c	Fri Apr 10 08:51:56 2026	(r1932946)
@@ -49,6 +49,7 @@ struct acme_problem_status_t {
 };
 
 static acme_problem_status_t Problems[] = {
+    { "acme:error:agreementRequired",            APR_EGENERAL, 1 },
     { "acme:error:badCSR",                       APR_EINVAL,   1 },
     { "acme:error:badNonce",                     APR_EAGAIN,   0 },
     { "acme:error:badSignatureAlgorithm",        APR_EINVAL,   1 },
@@ -61,7 +62,7 @@ static acme_problem_status_t Problems[]
     { "acme:error:serverInternal",               APR_EGENERAL, 0 },
     { "acme:error:unauthorized",                 APR_EACCES,   0 },
     { "acme:error:unsupportedIdentifier",        APR_BADARG,   1 },
-    { "acme:error:userActionRequired",           APR_EAGAIN,   0 },
+    { "acme:error:userActionRequired",           APR_EGENERAL, 1 },
     { "acme:error:badRevocationReason",          APR_EINVAL,   1 },
     { "acme:error:caa",                          APR_EGENERAL, 0 },
     { "acme:error:dns",                          APR_EGENERAL, 0 },
@@ -182,22 +183,24 @@ static apr_status_t inspect_problem(md_a
             
             req->resp_json = problem;
             ptype = md_json_gets(problem, MD_KEY_TYPE, NULL); 
-            pdetail = md_json_gets(problem, MD_KEY_DETAIL, NULL);
-            req->rv = problem_status_get(ptype);
-            md_result_problem_set(req->result, req->rv, ptype, pdetail,
-                                  md_json_getj(problem, MD_KEY_SUBPROBLEMS, NULL));
-            
-            
-            
-            if (APR_STATUS_IS_EAGAIN(req->rv)) {
-                md_log_perror(MD_LOG_MARK, MD_LOG_DEBUG, req->rv, req->p,
-                              "acme reports %s: %s", ptype, pdetail);
-            }
-            else {
-                md_log_perror(MD_LOG_MARK, MD_LOG_WARNING, req->rv, req->p,
-                              "acme problem %s: %s", ptype, pdetail);
+
+            if (ptype) {
+                req->rv = problem_status_get(ptype);
+                pdetail = md_json_gets(problem, MD_KEY_DETAIL, NULL);
+
+                md_result_problem_set(req->result, req->rv, ptype, pdetail,
+                                      md_json_getj(problem, MD_KEY_SUBPROBLEMS, NULL));
+
+                if (APR_STATUS_IS_EAGAIN(req->rv)) {
+                    md_log_perror(MD_LOG_MARK, MD_LOG_DEBUG, req->rv, req->p,
+                                  "acme reports %s: %s", ptype, pdetail);
+                }
+                else {
+                    md_log_perror(MD_LOG_MARK, MD_LOG_WARNING, req->rv, req->p,
+                                  "acme problem %s: %s", ptype, pdetail);
+                }
+                return req->rv;
             }
-            return req->rv;
         }
     }
     

Modified: httpd/httpd/branches/2.4.x/modules/md/md_version.h
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/md/md_version.h	Fri Apr 10 08:44:53 2026	(r1932945)
+++ httpd/httpd/branches/2.4.x/modules/md/md_version.h	Fri Apr 10 08:51:56 2026	(r1932946)
@@ -27,7 +27,7 @@
  * @macro
  * Version number of the md module as c string
  */
-#define MOD_MD_VERSION "2.6.8"
+#define MOD_MD_VERSION "2.6.9-git"
 
 /**
  * @macro
@@ -35,7 +35,7 @@
  * release. This is a 24 bit number with 8 bits for major number, 8 bits
  * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
  */
-#define MOD_MD_VERSION_NUM 0x020608
+#define MOD_MD_VERSION_NUM 0x020609
 
 #define MD_ACME_DEF_URL         "https://acme-v02.api.letsencrypt.org/directory"