Procházet zdrojové kódy

fix(vpn): remove ccd users after deletion

Remove and rgenerate ccd/ contents after every emit. This ensures
when a user is deleted it's ccd/ file will be deleted as well.
Mustafa Arici před 8 roky
rodič
revize
4f26b70642
1 změnil soubory, kde provedl 18 přidání a 4 odebrání
  1. 18 4
      vpn.go

+ 18 - 4
vpn.go

@@ -488,10 +488,25 @@ func emitCCD() error {
 		return err
 	}
 
-	// Create and write rendered ccd data.
-	os.Mkdir(_DefaultVPNCCDPath, 0755)
+	// Clean and then create and write rendered ccd data.
+	err = os.RemoveAll(_DefaultVPNCCDPath)
+	if err != nil {
+		if os.IsNotExist(err) {
+		} else {
+			return err
+		}
+	}
+
+	if _, err := os.Stat(_DefaultVPNCCDPath); err != nil {
+	}
+
+	err = os.Mkdir(_DefaultVPNCCDPath, 0755)
+	if err != nil {
+		if !os.IsExist(err) {
+			return err
+		}
+	}
 
-	counter := 2
 	for _, user := range users {
 		var result bytes.Buffer
 		params := struct {
@@ -517,7 +532,6 @@ func emitCCD() error {
 		if err != nil {
 			return err
 		}
-		counter++
 	}
 	return nil
 }