MCPcopy Create free account
hub / github.com/chainreactors/EvilProxy / reloadConfig

Method reloadConfig

internal/watcher/config_reload.go:88–144  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

86}
87
88func (w *Watcher) reloadConfig() bool {
89 log.Debug("=========================== CONFIG RELOAD ============================")
90 log.Debugf("starting config reload from: %s", w.configPath)
91
92 newConfig, errLoadConfig := config.LoadConfig(w.configPath)
93 if errLoadConfig != nil {
94 log.Errorf("failed to reload config: %v", errLoadConfig)
95 return false
96 }
97
98 if w.mirroredAuthDir != "" {
99 newConfig.AuthDir = w.mirroredAuthDir
100 } else {
101 if resolvedAuthDir, errResolveAuthDir := util.ResolveAuthDir(newConfig.AuthDir); errResolveAuthDir != nil {
102 log.Errorf("failed to resolve auth directory from config: %v", errResolveAuthDir)
103 } else {
104 newConfig.AuthDir = resolvedAuthDir
105 }
106 }
107
108 w.clientsMutex.Lock()
109 var oldConfig *config.Config
110 _ = yaml.Unmarshal(w.oldConfigYaml, &oldConfig)
111 w.oldConfigYaml, _ = yaml.Marshal(newConfig)
112 w.config = newConfig
113 w.clientsMutex.Unlock()
114
115 var affectedOAuthProviders []string
116 if oldConfig != nil {
117 _, affectedOAuthProviders = diff.DiffOAuthExcludedModelChanges(oldConfig.OAuthExcludedModels, newConfig.OAuthExcludedModels)
118 }
119
120 util.SetLogLevel(newConfig)
121 if oldConfig != nil && oldConfig.Debug != newConfig.Debug {
122 log.Debugf("log level updated - debug mode changed from %t to %t", oldConfig.Debug, newConfig.Debug)
123 }
124
125 if oldConfig != nil {
126 details := diff.BuildConfigChangeDetails(oldConfig, newConfig)
127 if len(details) > 0 {
128 log.Debugf("config changes detected:")
129 for _, d := range details {
130 log.Debugf(" %s", d)
131 }
132 } else {
133 log.Debugf("no material config field changes detected")
134 }
135 }
136
137 authDirChanged := oldConfig == nil || oldConfig.AuthDir != newConfig.AuthDir
138 retryConfigChanged := oldConfig != nil && (oldConfig.RequestRetry != newConfig.RequestRetry || oldConfig.MaxRetryInterval != newConfig.MaxRetryInterval || oldConfig.MaxRetryCredentials != newConfig.MaxRetryCredentials)
139 forceAuthRefresh := oldConfig != nil && (oldConfig.ForceModelPrefix != newConfig.ForceModelPrefix || !reflect.DeepEqual(oldConfig.OAuthModelAlias, newConfig.OAuthModelAlias) || retryConfigChanged)
140
141 log.Infof("config successfully reloaded, triggering client reload")
142 w.reloadClients(authDirChanged, affectedOAuthProviders, forceAuthRefresh)
143 return true
144}

Calls 6

reloadClientsMethod · 0.95
LoadConfigFunction · 0.92
ResolveAuthDirFunction · 0.92
SetLogLevelFunction · 0.92
BuildConfigChangeDetailsFunction · 0.92