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;
+}