Просмотр исходного кода

bug fixes; additional reload logging

Rod Hynes 9 лет назад
Родитель
Сommit
a96eedc012
2 измененных файлов с 26 добавлено и 13 удалено
  1. 24 12
      psiphon/server/services.go
  2. 2 1
      psiphon/server/trafficRules.go

+ 24 - 12
psiphon/server/services.go

@@ -214,21 +214,33 @@ func NewSupportServices(config *Config) (*SupportServices, error) {
 //
 func (support *SupportServices) Reload() {
 
-	err := support.TrafficRulesSet.Reload(support.Config.TrafficRulesFilename)
-	if err != nil {
-		log.WithContextFields(LogFields{"error": err}).Error("reload traffic rules failed")
-		// Keep running with previous state of support.TrafficRulesSet
+	if support.Config.TrafficRulesFilename != "" {
+		err := support.TrafficRulesSet.Reload(support.Config.TrafficRulesFilename)
+		if err != nil {
+			log.WithContextFields(LogFields{"error": err}).Error("reload traffic rules failed")
+			// Keep running with previous state of support.TrafficRulesSet
+		} else {
+			log.WithContext().Info("reloaded traffic rules")
+		}
 	}
 
-	err = support.PsinetDatabase.Reload(support.Config.PsinetDatabaseFilename)
-	if err != nil {
-		log.WithContextFields(LogFields{"error": err}).Error("reload psinet database failed")
-		// Keep running with previous state of support.PsinetDatabase
+	if support.Config.PsinetDatabaseFilename != "" {
+		err := support.PsinetDatabase.Reload(support.Config.PsinetDatabaseFilename)
+		if err != nil {
+			log.WithContextFields(LogFields{"error": err}).Error("reload psinet database failed")
+			// Keep running with previous state of support.PsinetDatabase
+		} else {
+			log.WithContext().Info("reloaded psinet database")
+		}
 	}
 
-	err = support.GeoIPService.ReloadDatabase(support.Config.GeoIPDatabaseFilename)
-	if err != nil {
-		log.WithContextFields(LogFields{"error": err}).Error("reload GeoIP database failed")
-		// Keep running with previous state of support.GeoIPService
+	if support.Config.GeoIPDatabaseFilename != "" {
+		err := support.GeoIPService.ReloadDatabase(support.Config.GeoIPDatabaseFilename)
+		if err != nil {
+			log.WithContextFields(LogFields{"error": err}).Error("reload GeoIP database failed")
+			// Keep running with previous state of support.GeoIPService
+		} else {
+			log.WithContext().Info("reloaded GeoIP database")
+		}
 	}
 }

+ 2 - 1
psiphon/server/trafficRules.go

@@ -156,7 +156,8 @@ func (set *TrafficRulesSet) Reload(ruleSetFilename string) error {
 		return psiphon.ContextError(err)
 	}
 
-	*set = newSet
+	set.DefaultRules = newSet.DefaultRules
+	set.RegionalRules = newSet.RegionalRules
 
 	return nil
 }