예제 #1
0
// Release releases resource and save data to provider.
func (s *MemcacheStore) Release() error {
	data, err := session.EncodeGob(s.data)
	if err != nil {
		return err
	}

	return s.c.Set(NewItem(s.sid, data, s.expire))
}
예제 #2
0
파일: redis.go 프로젝트: mbrukman/grafana
// Release releases resource and save data to provider.
func (s *RedisStore) Release() error {
	data, err := session.EncodeGob(s.data)
	if err != nil {
		return err
	}

	return s.c.SetEx(s.sid, s.duration, string(data)).Err()
}
예제 #3
0
파일: mysql.go 프로젝트: mbrukman/grafana
// Release releases resource and save data to provider.
func (s *MysqlStore) Release() error {
	data, err := session.EncodeGob(s.data)
	if err != nil {
		return err
	}

	_, err = s.c.Exec("UPDATE session SET data=?, expiry=? WHERE `key`=?",
		data, time.Now().Unix(), s.sid)
	return err
}
예제 #4
0
// Release releases resource and save data to provider.
func (s *CouchbaseSessionStore) Release() error {
	defer s.b.Close()

	data, err := session.EncodeGob(s.data)
	if err != nil {
		return err
	}

	return s.b.Set(s.sid, int(s.maxlifetime), data)
}
예제 #5
0
// save postgres session values to database.
// must call this method to save values to database.
func (s *PostgresStore) Release() error {
	data, err := session.EncodeGob(s.data)
	if err != nil {
		return err
	}

	_, err = s.c.Exec("UPDATE session SET data=$1, expiry=$2 WHERE key=$3",
		data, time.Now().Unix(), s.sid)
	return err
}
예제 #6
0
파일: ledis.go 프로젝트: mbrukman/grafana
// Release releases resource and save data to provider.
func (s *LedisStore) Release() error {
	data, err := session.EncodeGob(s.data)
	if err != nil {
		return err
	}

	if err = s.c.Set([]byte(s.sid), data); err != nil {
		return err
	}
	_, err = s.c.Expire([]byte(s.sid), s.expire)
	return err
}