Skip to content

Commit df11061

Browse files
Added error handling
1 parent 44f8d9c commit df11061

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

internal/session/interact.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ func (m *Manager) CreateSession(username, ipAddress, userAgent string) (uuid.UUI
2121

2222
/* check if session exists -> if yes, reset the timer and return the session ID */
2323
if session, exists := m.sessionsMap[username]; exists {
24-
m.RefreshTimer(username)
24+
if err := m.RefreshTimer(username); err != nil {
25+
m.errCh <- err
26+
return uuid.Nil, fmt.Errorf("sessions exists, but failed to refresh the timer")
27+
}
2528
return session.ID, nil
2629
}
2730

@@ -60,7 +63,10 @@ func (m *Manager) CreateSession(username, ipAddress, userAgent string) (uuid.UUI
6063
m.sessionsMap[username] = session
6164

6265
/* store session to Redis */
63-
m.saveSessionRedis(session)
66+
if err := m.saveSessionRedis(session); err != nil {
67+
m.errCh <- err
68+
return uuid.Nil, fmt.Errorf("failed to store session to Redis")
69+
}
6470

6571
return sessionID, nil
6672
}
@@ -238,11 +244,18 @@ func (m *Manager) RefreshTimer(username string) error {
238244

239245
/* reset the session timer */
240246
session.Timer = time.AfterFunc(time.Duration(config.BackendConfig.AppInfo.SessionTimeout)*time.Hour,
241-
func() { m.ExpireSession(username) },
247+
func() {
248+
if err := m.ExpireSession(username); err != nil {
249+
m.errCh <- err
250+
}
251+
},
242252
)
243253

244254
/* update Redis for session */
245-
m.saveSessionRedis(session)
255+
if err := m.saveSessionRedis(session); err != nil {
256+
m.errCh <- err
257+
return fmt.Errorf("failed to store session to Redis")
258+
}
246259

247260
return nil
248261
}

0 commit comments

Comments
 (0)