Se você olhar o arquivo de origem libxt_limit.c
, poderá encontrar a resposta. Especificamente, observe estas linhas em parse_rate
function:
*val = XT_LIMIT_SCALE * mult / r;
if (*val == 0)
/*
* The rate maps to infinity. (1/day is the minimum they can
* specify, so we are ok at that end).
*/
xtables_error(PARAMETER_PROBLEM, "Rate too fast \"%s\"\n", rate);
return 1;
A macro XT_LIMIT_SCALE
é 10.000 como você disse. O valor de mult
começa em 1 por segundos e atinge 24 * 60 * 60 por dias. O maior valor será o caso de dias de curso. Se você fizer as contas, você receberá a seguinte expressão:
10000 * 24 * 60 * 60 / 10000 = 864,000,000 / 10000 = ..
O número a ser dividido pode ser armazenado em um inteiro não assinado de 32 bits (uint32_t). No entanto, esse número será truncado se ficar maior (como no caso de XT_LIMIT_SCALE = 100,0000). O valor 10001
não causará esse problema, mas acho que não é um valor útil.