Configuration: automatic migration to the new "share" behavior.

This commit is contained in:
Zhidao HONG
2021-10-09 10:44:31 +08:00
parent af283833dd
commit 5fa5b1464f
8 changed files with 180 additions and 52 deletions

View File

@@ -1624,6 +1624,11 @@ static nxt_int_t
nxt_conf_vldt_share(nxt_conf_validation_t *vldt, nxt_conf_value_t *value,
void *data)
{
u_char *p;
nxt_str_t name, temp;
static nxt_str_t uri = nxt_string("$uri");
if (nxt_conf_type(value) == NXT_CONF_ARRAY) {
if (nxt_conf_array_elements_count(value) == 0) {
return nxt_conf_vldt_error(vldt, "The \"share\" array "
@@ -1636,6 +1641,22 @@ nxt_conf_vldt_share(nxt_conf_validation_t *vldt, nxt_conf_value_t *value,
/* NXT_CONF_STRING */
if (vldt->ver < 12600) {
nxt_conf_get_string(value, &name);
temp.length = name.length + uri.length;
temp.start = nxt_mp_get(vldt->conf_pool, temp.length);
if (nxt_slow_path(temp.start == NULL)) {
return NXT_ERROR;
}
p = nxt_cpymem(temp.start, name.start, name.length);
nxt_memcpy(p, uri.start, uri.length);
nxt_conf_set_string(value, &temp);
}
return nxt_conf_vldt_share_element(vldt, value);
}