Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Jan 2024 11:49:30 GMT
From:      Adam Weinberger <adamw@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 2d925f150358 - main - www/caddy{,-custom}: Fix start/stop with admin API disabled
Message-ID:  <202401171149.40HBnUwp090898@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by adamw:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2d925f150358bf061d4fec9bb8caa009e0a56442

commit 2d925f150358bf061d4fec9bb8caa009e0a56442
Author:     Adam Weinberger <adamw@FreeBSD.org>
AuthorDate: 2024-01-17 11:41:24 +0000
Commit:     Adam Weinberger <adamw@FreeBSD.org>
CommitDate: 2024-01-17 11:49:24 +0000

    www/caddy{,-custom}: Fix start/stop with admin API disabled
    
    Caddy largely relies on the admin API for state control, like
    start/stop/reload. However, the admin API endpoints are inherently
    a security risk.
    
    Although the admin API is enabled by default, many users may choose
    to disable it. However, the rc(8) script then needs an alternative
    approach to controlling the daemon.
    
    We already sortof supported signal-based control, but it didn't always
    work, because there are multiple error messages that indicate that
    the admin API is disabled (and none of them actually say that in a clear
    way).
    
    This commit fixes start and stop with the admin API disabled. The
    reload command (and reloadssl) still require the admin API to be
    enabled and will fail if the admin API is disabled.
    
    PR:             255106
    Submitted by:   scf
---
 www/caddy-custom/Makefile       | 2 +-
 www/caddy-custom/files/caddy.in | 4 +++-
 www/caddy/Makefile              | 1 +
 www/caddy/files/caddy.in        | 4 +++-
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/www/caddy-custom/Makefile b/www/caddy-custom/Makefile
index 9b12d33b97af..19ddef881324 100644
--- a/www/caddy-custom/Makefile
+++ b/www/caddy-custom/Makefile
@@ -4,7 +4,7 @@
 
 PORTNAME=	caddy-custom
 PORTVERSION=	${CADDY_VERSION}.${XCADDY_VERSION}
-PORTREVISION=	11
+PORTREVISION=	12
 CATEGORIES=	www
 DISTFILES=	# none
 
diff --git a/www/caddy-custom/files/caddy.in b/www/caddy-custom/files/caddy.in
index ac1098bcd130..fc1f74e1de55 100644
--- a/www/caddy-custom/files/caddy.in
+++ b/www/caddy-custom/files/caddy.in
@@ -150,7 +150,9 @@ caddy_prestop()
         echo "done"
         exit 0
     else
-        if echo "${result}" | grep -q "connection refused"; then
+        if echo "${result}" | grep -q -e "connection refused" \
+            -e "connect: no such file or directory"; then
+
             echo "admin interface unavailable; using pidfile"
             return 0
         else
diff --git a/www/caddy/Makefile b/www/caddy/Makefile
index 6d9545d465bd..b6bf4f6044db 100644
--- a/www/caddy/Makefile
+++ b/www/caddy/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	caddy
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2.7.6
+PORTREVISION=	1
 CATEGORIES=	www
 DIST_SUBDIR=	caddy
 
diff --git a/www/caddy/files/caddy.in b/www/caddy/files/caddy.in
index 37babe7889d3..34b0157f1d00 100644
--- a/www/caddy/files/caddy.in
+++ b/www/caddy/files/caddy.in
@@ -150,7 +150,9 @@ caddy_prestop()
         echo "done"
         exit 0
     else
-        if echo "${result}" | grep -q "connection refused"; then
+        if echo "${result}" | grep -q -e "connection refused" \
+            -e "connect: no such file or directory"; then
+
             echo "admin interface unavailable; using pidfile"
             return 0
         else



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202401171149.40HBnUwp090898>