Mercurial > hg > nginx
diff src/core/ngx_file.c @ 155:46eb23d9471d
nginx-0.0.1-2003-10-22-20:38:26 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 22 Oct 2003 16:38:26 +0000 |
parents | 7ebc8b7fb816 |
children | afc333135a6b |
line wrap: on
line diff
--- a/src/core/ngx_file.c +++ b/src/core/ngx_file.c @@ -164,3 +164,44 @@ int ngx_next_temp_number(int collision) return ngx_temp_number++; } + + +char *ngx_conf_set_path_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) +{ + char *p = conf; + + int i, n; + ngx_str_t *value; + ngx_path_t *path, **pp; + + pp = (ngx_path_t **) (p + cmd->offset); + + if (*pp) { + return "is duplicate"; + } + + ngx_test_null(path, ngx_pcalloc(cf->pool, sizeof(ngx_path_t)), NULL); + + *pp = path; + + value = (ngx_str_t *) cf->args->elts; + + path->name = value[1]; + + path->len = 0; + + for (i = 0, n = 2; n < cf->args->nelts; i++, n++) { + path->level[i] = ngx_atoi(value[n].data, value[n].len); + if (path->level[i] == NGX_ERROR || path->level[i] == 0) { + return "invalid value"; + } + + path->len += path->level[i] + 1; + } + + while (i < 3) { + path->level[i++] = 0; + } + + return NULL; +}