diff --git a/backend/app/service/app_install.go b/backend/app/service/app_install.go index 34088feb2..f02fde28e 100644 --- a/backend/app/service/app_install.go +++ b/backend/app/service/app_install.go @@ -221,27 +221,35 @@ func (a *AppInstallService) Update(req request.AppInstalledUpdate) error { return err } changePort := false + var ( + oldPorts []int + newPorts []int + ) port, ok := req.Params["PANEL_APP_PORT_HTTP"] if ok { portN := int(math.Ceil(port.(float64))) if portN != installed.HttpPort { + oldPorts = append(oldPorts, installed.HttpPort) changePort = true httpPort, err := checkPort("PANEL_APP_PORT_HTTP", req.Params) if err != nil { return err } installed.HttpPort = httpPort + newPorts = append(newPorts, httpPort) } } ports, ok := req.Params["PANEL_APP_PORT_HTTPS"] if ok { portN := int(math.Ceil(ports.(float64))) if portN != installed.HttpsPort { + oldPorts = append(oldPorts, installed.HttpsPort) httpsPort, err := checkPort("PANEL_APP_PORT_HTTPS", req.Params) if err != nil { return err } installed.HttpsPort = httpsPort + newPorts = append(newPorts, httpsPort) } } @@ -286,6 +294,11 @@ func (a *AppInstallService) Update(req request.AppInstalledUpdate) error { return buserr.WithErr(constant.ErrUpdateBuWebsite, err) } } + if changePort { + go func() { + _ = OperateFirewallPort(oldPorts, newPorts) + }() + } return nil }