fix(fix4): enforce runtime contract and orchestrator guardrails
This commit is contained in:
@@ -15,26 +15,6 @@ import (
|
||||
)
|
||||
|
||||
func UpdateConfig(key string, value string) error {
|
||||
if key == constant.Hysteria2Enable {
|
||||
if value == "1" {
|
||||
hysteria2Config, err := GetHysteria2Config()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if hysteria2Config.Listen == nil || *hysteria2Config.Listen == "" {
|
||||
logrus.Errorf("hysteria2 config is empty")
|
||||
return errors.New("hysteria2 config is empty")
|
||||
}
|
||||
// Запуск Hysteria2
|
||||
if err = StartHysteria2(); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
if err := StopHysteria2(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return dao.UpdateConfig([]string{key}, map[string]interface{}{"value": value})
|
||||
}
|
||||
|
||||
|
||||
+14
-16
@@ -17,27 +17,25 @@ var kickMutex sync.Mutex
|
||||
|
||||
func CronHandleAccount() {
|
||||
go func() {
|
||||
hysteriaEnable, err := dao.GetConfig("key = ?", constant.Hysteria2Enable)
|
||||
if !Hysteria2IsRunning() {
|
||||
return
|
||||
}
|
||||
|
||||
apiPort, err := GetHysteria2ApiPort()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if hysteriaEnable.Value != nil && *hysteriaEnable.Value == "1" {
|
||||
apiPort, err := GetHysteria2ApiPort()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
trafficSecretConfig, err := dao.GetConfig("key = ?", constant.Hysteria2TrafficStatsSecret)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// Сохранение данных трафика
|
||||
go saveAccountTraffic(apiPort, *trafficSecretConfig.Value)
|
||||
|
||||
// Принудительное отключение
|
||||
go kickAccount(apiPort, *trafficSecretConfig.Value)
|
||||
trafficSecretConfig, err := dao.GetConfig("key = ?", constant.Hysteria2TrafficStatsSecret)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// Сохранение данных трафика
|
||||
go saveAccountTraffic(apiPort, *trafficSecretConfig.Value)
|
||||
|
||||
// Принудительное отключение
|
||||
go kickAccount(apiPort, *trafficSecretConfig.Value)
|
||||
}()
|
||||
}
|
||||
|
||||
|
||||
@@ -27,10 +27,6 @@ func StartServer(crtPath string, keyPath string) error {
|
||||
}
|
||||
|
||||
func StopServer() error {
|
||||
if err := StopHysteria2(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
|
||||
defer cancel()
|
||||
if err := server.Shutdown(ctx); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user