char * ndk_set_var_value (ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { ngx_str_t *value; ndk_set_var_t *filter; value = cf->args->elts; value++; filter = (ndk_set_var_t *) cmd->post; return ndk_set_var_value_core (cf, value, cf->args->nelts == 1 + 1 ? value : value + 1, filter); }
char * ngx_http_set_hashed_upstream(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { ngx_str_t *value; ndk_set_var_t filter; ngx_uint_t n; ngx_str_t *var; ngx_str_t *ulname; ndk_upstream_list_t *ul; ngx_str_t *v; value = cf->args->elts; var = &value[1]; ulname = &value[2]; n = ngx_http_script_variables_count(ulname); filter.func = (void *) ngx_http_set_misc_set_hashed_upstream; if (n) { /* upstream list name contains variables */ v = &value[2]; filter.size = 2; filter.data = NULL; filter.type = NDK_SET_VAR_MULTI_VALUE_DATA; return ndk_set_var_multi_value_core(cf, var, v, &filter); } ul = ndk_get_upstream_list(ndk_http_conf_get_main_conf(cf), ulname->data, ulname->len); if (ul == NULL) { ngx_log_error(NGX_LOG_ERR, cf->log, 0, "set_hashed_upstream: upstream list \"%V\" " "not defined yet", ulname); return NGX_CONF_ERROR; } v = &value[3]; filter.size = 1; filter.data = ul; filter.type = NDK_SET_VAR_VALUE_DATA; return ndk_set_var_value_core(cf, var, v, &filter); }