Browse Source

Remove also session files at start

Vova Tkach 6 years ago
parent
commit
ed9edb1bc4
1 changed files with 23 additions and 16 deletions
  1. 23 16
      session.go

+ 23 - 16
session.go

@@ -11,29 +11,36 @@ import (
 	"github.com/vladimirok5959/golang-server-sessions/session"
 )
 
+func session_clean_do(www_dir string, stop chan bool) {
+	files, err := ioutil.ReadDir(www_dir)
+	if err == nil {
+		for _, file := range files {
+			select {
+			case <-stop:
+				break
+			default:
+				tmpdir := www_dir + string(os.PathSeparator) + file.Name() + string(os.PathSeparator) + "tmp"
+				if utils.IsDirExists(tmpdir) {
+					session.Clean(tmpdir)
+				}
+			}
+		}
+	}
+}
+
 func session_clean_start(www_dir string) (chan bool, chan bool) {
 	ch := make(chan bool)
 	stop := make(chan bool)
+
+	// Cleanup at start
+	session_clean_do(www_dir, stop)
+
 	go func() {
 		for {
-			// Destroy old session files on each host
-			// Every one hour
 			select {
 			case <-time.After(1 * time.Hour):
-				files, err := ioutil.ReadDir(www_dir)
-				if err == nil {
-					for _, file := range files {
-						select {
-						case <-stop:
-							break
-						default:
-							tmpdir := www_dir + string(os.PathSeparator) + file.Name() + string(os.PathSeparator) + "tmp"
-							if utils.IsDirExists(tmpdir) {
-								session.Clean(tmpdir)
-							}
-						}
-					}
-				}
+				// Cleanup every one hour
+				session_clean_do(www_dir, stop)
 			case <-ch:
 				ch <- true
 				return