[WIP] Optimizations: code readiness optimizations

This commit is contained in:
Alex P 2025-10-23 01:24:58 +03:00
parent 6f82e8642c
commit 1671a7706b
2 changed files with 8 additions and 7 deletions

View File

@ -96,11 +96,11 @@ func handleRequestSessionApprovalRPC(session *Session) (any, error) {
}
func validateNickname(nickname string) error {
if len(nickname) < 2 {
return errors.New("nickname must be at least 2 characters")
if len(nickname) < minNicknameLength {
return fmt.Errorf("nickname must be at least %d characters", minNicknameLength)
}
if len(nickname) > 30 {
return errors.New("nickname must be 30 characters or less")
if len(nickname) > maxNicknameLength {
return fmt.Errorf("nickname must be %d characters or less", maxNicknameLength)
}
if !isValidNickname(nickname) {
return errors.New("nickname can only contain letters, numbers, spaces, and - _ . @")

View File

@ -25,8 +25,9 @@ const (
// Timing constants for session management
const (
// Broadcast throttling (DoS protection)
globalBroadcastDelay = 100 * time.Millisecond // Minimum time between global session broadcasts
sessionBroadcastDelay = 50 * time.Millisecond // Minimum time between broadcasts to a single session
globalBroadcastDelay = 100 * time.Millisecond // Minimum time between global session broadcasts
sessionBroadcastDelay = 50 * time.Millisecond // Minimum time between broadcasts to a single session
broadcastQueueCapacity = 100 // Maximum pending broadcasts before drops occur
// Session timeout defaults
defaultPendingSessionTimeout = 1 * time.Minute // Timeout for pending sessions (DoS protection)
@ -154,7 +155,7 @@ func NewSessionManager(logger *zerolog.Logger) *SessionManager {
logger: logger,
maxSessions: maxSessions,
primaryTimeout: primaryTimeout,
broadcastQueue: make(chan struct{}, 100),
broadcastQueue: make(chan struct{}, broadcastQueueCapacity),
}
ctx, cancel := context.WithCancel(context.Background())