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

Method applyHomeOverlayContext

sdk/cliproxy/service.go:1425–1467  ·  view source on GitHub ↗
(ctx context.Context, remoteCfg *config.Config)

Source from the content-addressed store, hash-verified

1423}
1424
1425func (s *Service) applyHomeOverlayContext(ctx context.Context, remoteCfg *config.Config) error {
1426 if s == nil || remoteCfg == nil {
1427 return nil
1428 }
1429 if ctx == nil {
1430 ctx = context.Background()
1431 }
1432
1433 s.cfgMu.RLock()
1434 baseCfg := s.cfg
1435 s.cfgMu.RUnlock()
1436 if baseCfg == nil {
1437 return nil
1438 }
1439
1440 merged := *remoteCfg
1441 merged.Host = baseCfg.Host
1442 merged.Port = baseCfg.Port
1443 merged.TLS = baseCfg.TLS
1444 merged.Home = baseCfg.Home
1445 forceHomeRuntimeConfig(&merged)
1446
1447 logHomeConfigChanges(baseCfg, &merged)
1448 report, syncKey, didSync, errSync := s.syncHomePlugins(ctx, &merged)
1449 if didSync {
1450 if errSync != nil {
1451 log.Warnf("failed to sync home plugins: %v", errSync)
1452 }
1453 }
1454 s.applyConfigUpdate(&merged)
1455 if didSync {
1456 errLoad := homeplugins.MarkLoadResults(&report, s.pluginHost)
1457 if errLoad != nil {
1458 log.Warnf("failed to load home plugins after config update: %v", errLoad)
1459 }
1460 s.reportHomePluginStatus(ctx, &merged, report)
1461 if errSync == nil && errLoad == nil {
1462 s.markHomePluginsSynced(syncKey)
1463 }
1464 }
1465 s.processHomePluginTasks(ctx, &merged)
1466 return nil
1467}
1468
1469func logHomeConfigChanges(oldCfg, newCfg *config.Config) {
1470 if oldCfg == nil || newCfg == nil || !newCfg.Home.Enabled || (!oldCfg.Debug && !newCfg.Debug) {

Calls 8

syncHomePluginsMethod · 0.95
applyConfigUpdateMethod · 0.95
markHomePluginsSyncedMethod · 0.95
MarkLoadResultsFunction · 0.92
forceHomeRuntimeConfigFunction · 0.85
logHomeConfigChangesFunction · 0.85