Prechádzať zdrojové kódy

fix(panel): silence update-check WARN spam when offline

The panel polls api.github.com on every page load. When the host has no
internet (DNS fails, GitHub blocked, etc.) jsonMsg's auto-WARN logging
floods the log with the same error every poll.

Bypass jsonMsg for getPanelUpdateInfo: log the error at Debug level and
return Success:false with the existing localized message so the frontend
popover behavior is unchanged.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
MHSanaei 2 dní pred
rodič
commit
2fd2cd0af1
1 zmenil súbory, kde vykonal 10 pridanie a 1 odobranie
  1. 10 1
      web/controller/server.go

+ 10 - 1
web/controller/server.go

@@ -7,6 +7,8 @@ import (
 	"strconv"
 	"time"
 
+	"github.com/mhsanaei/3x-ui/v2/logger"
+	"github.com/mhsanaei/3x-ui/v2/web/entity"
 	"github.com/mhsanaei/3x-ui/v2/web/global"
 	"github.com/mhsanaei/3x-ui/v2/web/service"
 	"github.com/mhsanaei/3x-ui/v2/web/websocket"
@@ -135,10 +137,17 @@ func (a *ServerController) getXrayVersion(c *gin.Context) {
 }
 
 // getPanelUpdateInfo retrieves the current and latest panel version.
+// Network failures (e.g. no internet, GitHub blocked) are logged at debug
+// level only — the panel keeps working offline and we don't want to spam
+// WARN every time a user opens the page.
 func (a *ServerController) getPanelUpdateInfo(c *gin.Context) {
 	info, err := a.panelService.GetUpdateInfo()
 	if err != nil {
-		jsonMsg(c, I18nWeb(c, "pages.index.panelUpdateCheckPopover"), err)
+		logger.Debug("panel update check failed:", err)
+		c.JSON(http.StatusOK, entity.Msg{
+			Success: false,
+			Msg:     I18nWeb(c, "pages.index.panelUpdateCheckPopover"),
+		})
 		return
 	}
 	jsonObj(c, info, nil)