From: Stefan Eissing Date: Fri, 10 Apr 2026 08:44:53 +0000 (+0000) Subject: update to mod_md v2.6.9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b85ec65b9015832142a0a8b51b96cf72b0a1bd78;p=thirdparty%2Fapache%2Fhttpd.git update to mod_md v2.6.9 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1932945 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/changes-entries/md_v2.6.9.txt b/changes-entries/md_v2.6.9.txt new file mode 100644 index 0000000000..3db80f35b3 --- /dev/null +++ b/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. diff --git a/modules/md/md_acme.c b/modules/md/md_acme.c index 099d3a450e..a62438da4d 100644 --- a/modules/md/md_acme.c +++ b/modules/md/md_acme.c @@ -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_acme_req_t *req, const md_http_response_t 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; } } diff --git a/modules/md/md_version.h b/modules/md/md_version.h index 010437229a..1cd6b82e89 100644 --- a/modules/md/md_version.h +++ b/modules/md/md_version.h @@ -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"