fix: OnStart ctx bug, rename session→user, full logout cleanup
All checks were successful
check / check (push) Successful in 1m57s
All checks were successful
check / check (push) Successful in 1m57s
- Use context.Background() for cleanup goroutine instead of OnStart ctx which is cancelled after startup completes - Rename GetSessionCount→GetUserCount, DeleteStaleSessions→ DeleteStaleUsers to reflect that sessions represent users - HandleLogout now fully cleans up when last client disconnects: parts all channels (notifying members via QUIT), removes empty channels, and deletes the session/user record - docker build passes, all tests green, 0 lint issues
This commit is contained in:
@@ -796,8 +796,8 @@ func (database *Database) DeleteClient(
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetSessionCount returns the number of active sessions.
|
||||
func (database *Database) GetSessionCount(
|
||||
// GetUserCount returns the number of active users.
|
||||
func (database *Database) GetUserCount(
|
||||
ctx context.Context,
|
||||
) (int64, error) {
|
||||
var count int64
|
||||
@@ -808,7 +808,7 @@ func (database *Database) GetSessionCount(
|
||||
).Scan(&count)
|
||||
if err != nil {
|
||||
return 0, fmt.Errorf(
|
||||
"get session count: %w", err,
|
||||
"get user count: %w", err,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -838,9 +838,9 @@ func (database *Database) ClientCountForSession(
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// DeleteStaleSessions removes clients not seen since the
|
||||
// cutoff and cleans up orphaned sessions.
|
||||
func (database *Database) DeleteStaleSessions(
|
||||
// DeleteStaleUsers removes clients not seen since the
|
||||
// cutoff and cleans up orphaned users (sessions).
|
||||
func (database *Database) DeleteStaleUsers(
|
||||
ctx context.Context,
|
||||
cutoff time.Time,
|
||||
) (int64, error) {
|
||||
|
||||
Reference in New Issue
Block a user