fix(clients): bound the auto-renew interval at a century

An interval renewal turned the client's reset days into milliseconds
with no bound, so a value that wraps int64 (a node reports it unchecked)
sent the catch-up loop stepping through time for seconds per client
while the traffic writer held the database. Intervals above 36500 days
no longer renew, and every client write refuses them.
This commit is contained in:
MHSanaei
2026-10-31 14:32:31 +01:00
parent 47e9ef1a07
commit 351a01ff0c
4 changed files with 29 additions and 0 deletions
@@ -20,6 +20,7 @@ func TestClientRenewalWriteValidation(t *testing.T) {
{"weekly and interval", 7, 0, 3, "client weekly renewal cannot be combined with reset or resetDay"},
{"weekly and monthly", 0, 1, 3, "client weekly renewal cannot be combined with reset or resetDay"},
{"invalid weekday", 0, 0, 8, "client resetWeekday must be between 0 and 7, got: 8"},
{"oversized interval", maxClientResetDays + 1, 0, 0, "client reset must not exceed 36500 days"},
} {
t.Run(operation+"/"+schedule.name, func(t *testing.T) {
setupConflictDB(t)