Welcome! Log In Create A New Profile

Advanced

[nginx] Use NGX_MAX_PATH_LEVEL where appropriate.

July 06, 2016 09:22AM
details: http://hg.nginx.org/nginx/rev/8bf484eef9ab
branches:
changeset: 6617:8bf484eef9ab
user: Ruslan Ermilov <ru@nginx.com>
date: Wed Jul 06 13:22:29 2016 +0300
description:
Use NGX_MAX_PATH_LEVEL where appropriate.

The macro was unused since 0.7.44.

diffstat:

src/core/ngx_file.c | 19 +++++++++----------
src/core/ngx_file.h | 4 ++--
src/http/ngx_http_file_cache.c | 10 +++++-----
3 files changed, 16 insertions(+), 17 deletions(-)

diffs (126 lines):

diff -r 82b0cd4a0324 -r 8bf484eef9ab src/core/ngx_file.c
--- a/src/core/ngx_file.c Wed Jul 06 13:10:06 2016 +0300
+++ b/src/core/ngx_file.c Wed Jul 06 13:22:29 2016 +0300
@@ -225,7 +225,7 @@ ngx_create_hashed_filename(ngx_path_t *p

file[path->name.len + path->len] = '/';

- for (n = 0; n < 3; n++) {
+ for (n = 0; n < NGX_MAX_PATH_LEVEL; n++) {
level = path->level[n];

if (level == 0) {
@@ -249,7 +249,7 @@ ngx_create_path(ngx_file_t *file, ngx_pa

pos = path->name.len;

- for (i = 0; i < 3; i++) {
+ for (i = 0; i < NGX_MAX_PATH_LEVEL; i++) {
if (path->level[i] == 0) {
break;
}
@@ -399,6 +399,8 @@ char *
ngx_conf_merge_path_value(ngx_conf_t *cf, ngx_path_t **path, ngx_path_t *prev,
ngx_path_init_t *init)
{
+ ngx_uint_t i;
+
if (*path) {
return NGX_CONF_OK;
}
@@ -419,13 +421,10 @@ ngx_conf_merge_path_value(ngx_conf_t *cf
return NGX_CONF_ERROR;
}

- (*path)->level[0] = init->level[0];
- (*path)->level[1] = init->level[1];
- (*path)->level[2] = init->level[2];
-
- (*path)->len = init->level[0] + (init->level[0] ? 1 : 0)
- + init->level[1] + (init->level[1] ? 1 : 0)
- + init->level[2] + (init->level[2] ? 1 : 0);
+ for (i = 0; i < NGX_MAX_PATH_LEVEL; i++) {
+ (*path)->level[i] = init->level[i];
+ (*path)->len += init->level[i] + (init->level[i] ? 1 : 0);
+ }

if (ngx_add_path(cf, path) != NGX_OK) {
return NGX_CONF_ERROR;
@@ -518,7 +517,7 @@ ngx_add_path(ngx_conf_t *cf, ngx_path_t
return NGX_ERROR;
}

- for (n = 0; n < 3; n++) {
+ for (n = 0; n < NGX_MAX_PATH_LEVEL; n++) {
if (p[i]->level[n] != path->level[n]) {
if (path->conf_file == NULL) {
if (p[i]->conf_file == NULL) {
diff -r 82b0cd4a0324 -r 8bf484eef9ab src/core/ngx_file.h
--- a/src/core/ngx_file.h Wed Jul 06 13:10:06 2016 +0300
+++ b/src/core/ngx_file.h Wed Jul 06 13:22:29 2016 +0300
@@ -49,7 +49,7 @@ typedef void (*ngx_path_loader_pt) (void
typedef struct {
ngx_str_t name;
size_t len;
- size_t level[3];
+ size_t level[NGX_MAX_PATH_LEVEL];

ngx_path_manager_pt manager;
ngx_path_loader_pt loader;
@@ -62,7 +62,7 @@ typedef struct {

typedef struct {
ngx_str_t name;
- size_t level[3];
+ size_t level[NGX_MAX_PATH_LEVEL];
} ngx_path_init_t;


diff -r 82b0cd4a0324 -r 8bf484eef9ab src/http/ngx_http_file_cache.c
--- a/src/http/ngx_http_file_cache.c Wed Jul 06 13:10:06 2016 +0300
+++ b/src/http/ngx_http_file_cache.c Wed Jul 06 13:22:29 2016 +0300
@@ -101,7 +101,7 @@ ngx_http_file_cache_init(ngx_shm_zone_t
return NGX_ERROR;
}

- for (n = 0; n < 3; n++) {
+ for (n = 0; n < NGX_MAX_PATH_LEVEL; n++) {
if (cache->path->level[n] != ocache->path->level[n]) {
ngx_log_error(NGX_LOG_EMERG, shm_zone->shm.log, 0,
"cache \"%V\" had previously different levels",
@@ -2257,7 +2257,7 @@ ngx_http_file_cache_set_slot(ngx_conf_t
p = value[i].data + 7;
last = value[i].data + value[i].len;

- for (n = 0; n < 3 && p < last; n++) {
+ for (n = 0; n < NGX_MAX_PATH_LEVEL && p < last; n++) {

if (*p > '0' && *p < '3') {

@@ -2268,7 +2268,7 @@ ngx_http_file_cache_set_slot(ngx_conf_t
break;
}

- if (*p++ == ':' && n < 2 && p != last) {
+ if (*p++ == ':' && n < NGX_MAX_PATH_LEVEL - 1 && p < last) {
continue;
}

@@ -2278,7 +2278,7 @@ ngx_http_file_cache_set_slot(ngx_conf_t
goto invalid_levels;
}

- if (cache->path->len < 10 + 3) {
+ if (cache->path->len < 10 + NGX_MAX_PATH_LEVEL) {
continue;
}

@@ -2450,7 +2450,7 @@ ngx_http_file_cache_set_slot(ngx_conf_t
ngx_memcpy(p, "/temp", sizeof("/temp"));

ngx_memcpy(&cache->temp_path->level, &cache->path->level,
- 3 * sizeof(size_t));
+ NGX_MAX_PATH_LEVEL * sizeof(size_t));

cache->temp_path->len = cache->path->len;
cache->temp_path->conf_file = cf->conf_file->file.name.data;

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Use NGX_MAX_PATH_LEVEL where appropriate.

ru@nginx.com 314 July 06, 2016 09:22AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 99
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready