Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
- "github.com/Sirupsen/logrus"
"github.com/gin-gonic/gin"
"github.com/googollee/go-socket.io"
uuid "github.com/satori/go.uuid"
"github.com/gin-gonic/gin"
"github.com/googollee/go-socket.io"
uuid "github.com/satori/go.uuid"
// Sessions holds client sessions
type Sessions struct {
*Context
// Sessions holds client sessions
type Sessions struct {
*Context
- cookieMaxAge int64
- sessMap map[string]ClientSession
- mutex sync.Mutex
- log *logrus.Logger
- LogLevelSilly bool
- stop chan struct{} // signals intentional stop
+ cookieMaxAge int64
+ sessMap map[string]ClientSession
+ mutex sync.Mutex
+ stop chan struct{} // signals intentional stop
- s.log.Debugf("NEW session (%d): %s", len(s.sessMap), id)
+ s.Log.Debugf("NEW session (%d): %s", len(s.sessMap), id)
for {
select {
case <-s.stop:
for {
select {
case <-s.stop:
- s.log.Debugln("Stop monitorSessMap")
+ s.Log.Debugln("Stop monitorSessMap")
return
case <-time.After(sessionMonitorTime * time.Second):
if s.LogLevelSilly {
return
case <-time.After(sessionMonitorTime * time.Second):
if s.LogLevelSilly {
- s.log.Debugf("Sessions Map size: %d", len(s.sessMap))
- s.log.Debugf("Sessions Map : %v", s.sessMap)
+ s.Log.Debugf("Sessions Map size: %d", len(s.sessMap))
+ s.Log.Debugf("Sessions Map : %v", s.sessMap)
}
if len(s.sessMap) > maxSessions {
}
if len(s.sessMap) > maxSessions {
- s.log.Errorln("TOO MUCH sessions, cleanup old ones !")
+ s.Log.Errorln("TOO MUCH sessions, cleanup old ones !")
}
s.mutex.Lock()
for _, ss := range s.sessMap {
if ss.expireAt.Sub(time.Now()) < 0 {
}
s.mutex.Lock()
for _, ss := range s.sessMap {
if ss.expireAt.Sub(time.Now()) < 0 {
- s.log.Debugf("Delete expired session id: %s", ss.ID)
+ s.Log.Debugf("Delete expired session id: %s", ss.ID)
delete(s.sessMap, ss.ID)
}
}
delete(s.sessMap, ss.ID)
}
}
r := gin.New()
svr := &WebServer{
r := gin.New()
svr := &WebServer{
router: r,
api: nil,
sIOServer: nil,
router: r,
api: nil,
sIOServer: nil,
// CloudSyncConfig CloudSync (AKA Syncthing) specific data
type CloudSyncConfig struct {
SyncThingID string `json:"syncThingID"`
// CloudSyncConfig CloudSync (AKA Syncthing) specific data
type CloudSyncConfig struct {
SyncThingID string `json:"syncThingID"`
+
+ // Not exported fields (only used internally)
+ STSvrStatus string `json:"-"`
+ STSvrIsInSync bool `json:"-"`
+ STLocStatus string `json:"-"`
+ STLocIsInSync bool `json:"-"`