mirror of https://github.com/jetkvm/kvm.git
[WIP] Optimizations: code readiness optimizations
This commit is contained in:
parent
6f82e8642c
commit
1671a7706b
|
|
@ -96,11 +96,11 @@ func handleRequestSessionApprovalRPC(session *Session) (any, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func validateNickname(nickname string) error {
|
func validateNickname(nickname string) error {
|
||||||
if len(nickname) < 2 {
|
if len(nickname) < minNicknameLength {
|
||||||
return errors.New("nickname must be at least 2 characters")
|
return fmt.Errorf("nickname must be at least %d characters", minNicknameLength)
|
||||||
}
|
}
|
||||||
if len(nickname) > 30 {
|
if len(nickname) > maxNicknameLength {
|
||||||
return errors.New("nickname must be 30 characters or less")
|
return fmt.Errorf("nickname must be %d characters or less", maxNicknameLength)
|
||||||
}
|
}
|
||||||
if !isValidNickname(nickname) {
|
if !isValidNickname(nickname) {
|
||||||
return errors.New("nickname can only contain letters, numbers, spaces, and - _ . @")
|
return errors.New("nickname can only contain letters, numbers, spaces, and - _ . @")
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,9 @@ const (
|
||||||
// Timing constants for session management
|
// Timing constants for session management
|
||||||
const (
|
const (
|
||||||
// Broadcast throttling (DoS protection)
|
// Broadcast throttling (DoS protection)
|
||||||
globalBroadcastDelay = 100 * time.Millisecond // Minimum time between global session broadcasts
|
globalBroadcastDelay = 100 * time.Millisecond // Minimum time between global session broadcasts
|
||||||
sessionBroadcastDelay = 50 * time.Millisecond // Minimum time between broadcasts to a single session
|
sessionBroadcastDelay = 50 * time.Millisecond // Minimum time between broadcasts to a single session
|
||||||
|
broadcastQueueCapacity = 100 // Maximum pending broadcasts before drops occur
|
||||||
|
|
||||||
// Session timeout defaults
|
// Session timeout defaults
|
||||||
defaultPendingSessionTimeout = 1 * time.Minute // Timeout for pending sessions (DoS protection)
|
defaultPendingSessionTimeout = 1 * time.Minute // Timeout for pending sessions (DoS protection)
|
||||||
|
|
@ -154,7 +155,7 @@ func NewSessionManager(logger *zerolog.Logger) *SessionManager {
|
||||||
logger: logger,
|
logger: logger,
|
||||||
maxSessions: maxSessions,
|
maxSessions: maxSessions,
|
||||||
primaryTimeout: primaryTimeout,
|
primaryTimeout: primaryTimeout,
|
||||||
broadcastQueue: make(chan struct{}, 100),
|
broadcastQueue: make(chan struct{}, broadcastQueueCapacity),
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue