// implement session.Store.Free() func (s *store) Free() { s.Lock() defer s.Unlock() for _, v := range s.sessions { session.FreeSession(v) } s.sessions = nil }
// implement session.Store.Delete() func (s *store) Delete(sid string) error { s.Lock() defer s.Unlock() sess, found := s.sessions[sid] if !found { return nil } session.FreeSession(sess) return nil }
// implement session.Store.Release() func (s *store) Release(sess *session.Session) error { s.Lock() defer s.Unlock() str := bytes.NewBufferString("") de := gob.NewEncoder(str) de.Encode(session.SessionData(sess)) filepath := s.saveDir + sess.ID() return ioutil.WriteFile(filepath, str.Bytes(), mode) session.FreeSession(sess) return nil }