Rational number support in upstream server weight.

This commit is contained in:
Igor Sysoev
2020-03-30 19:47:01 +03:00
parent 68c6b67ffc
commit 01e957ef64
2 changed files with 38 additions and 24 deletions

View File

@@ -732,7 +732,7 @@ static nxt_conf_vldt_object_t nxt_conf_vldt_upstream_members[] = {
static nxt_conf_vldt_object_t nxt_conf_vldt_upstream_server_members[] = {
{ nxt_string("weight"),
NXT_CONF_VLDT_INTEGER,
NXT_CONF_VLDT_NUMBER,
&nxt_conf_vldt_server_weight,
NULL },
@@ -2060,18 +2060,18 @@ static nxt_int_t
nxt_conf_vldt_server_weight(nxt_conf_validation_t *vldt,
nxt_conf_value_t *value, void *data)
{
int64_t int_value;
double num_value;
int_value = nxt_conf_get_number(value);
num_value = nxt_conf_get_number(value);
if (int_value <= 0) {
if (num_value < 0) {
return nxt_conf_vldt_error(vldt, "The \"weight\" number must be "
"greater than 0.");
"positive.");
}
if (int_value > NXT_INT32_T_MAX) {
if (num_value > 1000000) {
return nxt_conf_vldt_error(vldt, "The \"weight\" number must "
"not exceed %d.", NXT_INT32_T_MAX);
"not exceed 1,000,000");
}
return NXT_OK;