From 3d886fded6c3164710eecc29d5a177f1b82b6329 Mon Sep 17 00:00:00 2001 From: Jacky Date: Mon, 5 May 2025 04:06:22 +0000 Subject: [PATCH] fix(settings): add program restart logic when SSL settings change --- api/settings/settings.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/api/settings/settings.go b/api/settings/settings.go index 7dfcb692..03e82a94 100644 --- a/api/settings/settings.go +++ b/api/settings/settings.go @@ -4,6 +4,7 @@ import ( "fmt" "net/http" + "code.pfad.fr/risefront" "github.com/0xJacky/Nginx-UI/internal/cert" "github.com/0xJacky/Nginx-UI/internal/cron" "github.com/0xJacky/Nginx-UI/internal/nginx" @@ -86,8 +87,15 @@ func SaveSettings(c *gin.Context) { // Validate SSL certificates if HTTPS is enabled needReloadCert := false + needRestartProgram := false if json.Server.EnableHTTPS != cSettings.ServerSettings.EnableHTTPS { needReloadCert = true + needRestartProgram = true + } + + if json.Server.SSLCert != cSettings.ServerSettings.SSLCert || + json.Server.SSLKey != cSettings.ServerSettings.SSLKey { + needReloadCert = true } if json.Server.EnableHTTPS { @@ -114,11 +122,17 @@ func SaveSettings(c *gin.Context) { return } + GetSettings(c) + if needReloadCert { go func() { cert.ReloadServerTLSCertificate() }() } - GetSettings(c) + if needRestartProgram { + go func() { + risefront.Restart() + }() + } }