Update On Fri Apr 26 20:27:55 CEST 2024

This commit is contained in:
github-action[bot]
2024-04-26 20:27:56 +02:00
parent 21f49f5dec
commit 0493652c70
114 changed files with 2762 additions and 828 deletions

View File

@@ -19,7 +19,7 @@ import (
func loadConfig() (cfg *config.Config, err error) {
if ConfigPath != "" {
cfg = config.NewConfig(ConfigPath)
if err := cfg.LoadConfig(); err != nil {
if err := cfg.LoadConfig(true); err != nil {
return nil, err
}
} else {

View File

@@ -49,8 +49,8 @@ func (c *Config) NeedSyncFromServer() bool {
return strings.Contains(c.PATH, "http")
}
func (c *Config) LoadConfig() error {
if c.ReloadInterval > 0 && time.Since(c.lastLoadTime).Seconds() < float64(c.ReloadInterval) {
func (c *Config) LoadConfig(force bool) error {
if c.ReloadInterval > 0 && time.Since(c.lastLoadTime).Seconds() < float64(c.ReloadInterval) && !force {
c.l.Warnf("Skip Load Config, last load time: %s", c.lastLoadTime)
return nil
}

View File

@@ -116,7 +116,7 @@ func (s *Server) WatchAndReload(ctx context.Context) {
case <-ctx.Done():
return
case <-s.reloadCH:
if err := s.Reload(); err != nil {
if err := s.Reload(false); err != nil {
s.l.Errorf("auto reloading relay conf meet error: %s will retry in next loop", err)
}
}

View File

@@ -9,7 +9,7 @@ import (
// make sure Server implements the reloader.Reloader interface
var _ reloader.Reloader = (*Server)(nil)
func (s *Server) Reload() error {
func (s *Server) Reload(force bool) error {
// k:name v: *Config
oldRelayCfgM := make(map[string]*conf.Config)
for _, v := range s.cfg.RelayConfigs {
@@ -18,7 +18,7 @@ func (s *Server) Reload() error {
allRelayLabelList := make([]string, 0)
// NOTE: this is for reuse cached clash sub, because clash sub to relay config will change port every time when call
if err := s.cfg.LoadConfig(); err != nil {
if err := s.cfg.LoadConfig(force); err != nil {
s.l.Error("load new cfg meet error", zap.Error(err))
return err
}

View File

@@ -1,5 +1,5 @@
package reloader
type Reloader interface {
Reload() error
Reload(force bool) error
}

View File

@@ -52,7 +52,7 @@ func (s *Server) HandleClashProxyProvider(c echo.Context) error {
func (s *Server) handleClashProxyProvider(c echo.Context, subName string, grouped bool) error {
if s.relayServerReloader != nil {
if err := s.relayServerReloader.Reload(); err != nil {
if err := s.relayServerReloader.Reload(true); err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
}
} else {
@@ -85,7 +85,7 @@ func (s *Server) HandleReload(c echo.Context) error {
return echo.NewHTTPError(http.StatusBadRequest, "reload not support")
}
err := s.relayServerReloader.Reload()
err := s.relayServerReloader.Reload(true)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
}

View File

@@ -152,7 +152,7 @@ func (xs *XrayServer) Start(ctx context.Context) error {
return
case <-ticker.C:
newCfg := config.NewConfig(xs.cfg.PATH)
if err := newCfg.LoadConfig(); err != nil {
if err := newCfg.LoadConfig(false); err != nil {
// TODO refine
xs.l.Error("Reload Config meet error will retry in next loop", zap.Error(err))
continue