# HG changeset patch # User Igor Sysoev # Date 1181505600 -14400 # Node ID 95d92ec3907170427f95b4e53ee9a0558c2c9de8 # Parent 638a3e67d37da622cf61f529972c6cf0c7d17756 nginx 0.5.25 *) Bugfix: nginx could not be built with the --without-http_rewrite_module parameter; bug appeared in 0.5.24. diff --git a/CHANGES b/CHANGES --- a/CHANGES +++ b/CHANGES @@ -1,10 +1,16 @@ +Changes with nginx 0.5.25 11 Jun 2007 + + *) Bugfix: nginx could not be built with the + --without-http_rewrite_module parameter; bug appeared in 0.5.24. + + Changes with nginx 0.5.24 06 Jun 2007 *) Security: the "ssl_verify_client" directive did not work if request was made using HTTP/0.9. - *) Bugfix: a part of response body may be passed uncompressed if gzip + *) Bugfix: a part of response body might be passed uncompressed if gzip was used; bug appeared in 0.5.23. diff --git a/CHANGES.ru b/CHANGES.ru --- a/CHANGES.ru +++ b/CHANGES.ru @@ -1,4 +1,10 @@ +Изменения в nginx 0.5.25 11.06.2007 + + *) Исправление: nginx не собирался с параметром + --without-http_rewrite_module; ошибка появилась в 0.5.24. + + Изменения в nginx 0.5.24 06.06.2007 *) Безопасность: директива ssl_verify_client не работала, если запрос diff --git a/src/core/nginx.h b/src/core/nginx.h --- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,7 +8,7 @@ #define _NGINX_H_INCLUDED_ -#define NGINX_VERSION "0.5.24" +#define NGINX_VERSION "0.5.25" #define NGINX_VER "nginx/" NGINX_VERSION #define NGINX_VAR "NGINX" diff --git a/src/core/ngx_hash.h b/src/core/ngx_hash.h --- a/src/core/ngx_hash.h +++ b/src/core/ngx_hash.h @@ -79,18 +79,6 @@ typedef struct { typedef struct { - void **buckets; - ngx_uint_t hash_size; - - ngx_uint_t max_size; - ngx_uint_t bucket_limit; - size_t bucket_size; - char *name; - ngx_uint_t min_buckets; -} ngx_hash0_t; - - -typedef struct { ngx_uint_t hash; ngx_str_t key; ngx_str_t value; diff --git a/src/http/modules/ngx_http_memcached_module.c b/src/http/modules/ngx_http_memcached_module.c --- a/src/http/modules/ngx_http_memcached_module.c +++ b/src/http/modules/ngx_http_memcached_module.c @@ -595,7 +595,6 @@ ngx_http_memcached_pass(ngx_conf_t *cf, u.url = value[1]; u.no_resolve = 1; - /* u.uri_part = 1; may be used as namespace */ lcf->upstream.upstream = ngx_http_upstream_add(cf, &u, 0); if (lcf->upstream.upstream == NULL) { diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c --- a/src/http/modules/ngx_http_proxy_module.c +++ b/src/http/modules/ngx_http_proxy_module.c @@ -2122,14 +2122,14 @@ ngx_http_proxy_pass(ngx_conf_t *cf, ngx_ { ngx_http_proxy_loc_conf_t *plcf = conf; - u_char *p; - size_t add; - u_short port; - ngx_str_t *value, *url; - ngx_url_t u; - ngx_http_core_loc_conf_t *clcf; + u_char *p; + size_t add; + u_short port; + ngx_str_t *value, *url; + ngx_url_t u; + ngx_http_core_loc_conf_t *clcf; #if (NGX_HTTP_SSL) - ngx_pool_cleanup_t *cln; + ngx_pool_cleanup_t *cln; #endif if (plcf->upstream.schema.len) { diff --git a/src/http/modules/ngx_http_referer_module.c b/src/http/modules/ngx_http_referer_module.c --- a/src/http/modules/ngx_http_referer_module.c +++ b/src/http/modules/ngx_http_referer_module.c @@ -352,7 +352,7 @@ ngx_http_valid_referers(ngx_conf_t *cf, continue; } - p = (u_char *) ngx_strstr(value[i].data, "/"); + p = (u_char *) ngx_strchr(value[i].data, '/'); if (p) { uri.len = (value[i].data + value[i].len) - p; diff --git a/src/http/modules/perl/nginx.pm b/src/http/modules/perl/nginx.pm --- a/src/http/modules/perl/nginx.pm +++ b/src/http/modules/perl/nginx.pm @@ -47,7 +47,7 @@ our @EXPORT = qw( HTTP_INSUFFICIENT_STORAGE ); -our $VERSION = '0.5.24'; +our $VERSION = '0.5.25'; require XSLoader; XSLoader::load('nginx', $VERSION); diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -1552,13 +1552,15 @@ ngx_http_core_server(ngx_conf_t *cf, ngx { char *rv; void *mconf; - ngx_uint_t i, m; + ngx_uint_t i; ngx_conf_t pcf; ngx_http_module_t *module; ngx_http_conf_ctx_t *ctx, *http_ctx; ngx_http_core_srv_conf_t *cscf, **cscfp; + ngx_http_core_main_conf_t *cmcf; +#if (NGX_PCRE) ngx_http_core_loc_conf_t **clcfp; - ngx_http_core_main_conf_t *cmcf; +#endif ctx = ngx_pcalloc(cf->pool, sizeof(ngx_http_conf_ctx_t)); if (ctx == NULL) { @@ -1582,12 +1584,12 @@ ngx_http_core_server(ngx_conf_t *cf, ngx return NGX_CONF_ERROR; } - for (m = 0; ngx_modules[m]; m++) { - if (ngx_modules[m]->type != NGX_HTTP_MODULE) { + for (i = 0; ngx_modules[i]; i++) { + if (ngx_modules[i]->type != NGX_HTTP_MODULE) { continue; } - module = ngx_modules[m]->ctx; + module = ngx_modules[i]->ctx; if (module->create_srv_conf) { mconf = module->create_srv_conf(cf); @@ -1595,7 +1597,7 @@ ngx_http_core_server(ngx_conf_t *cf, ngx return NGX_CONF_ERROR; } - ctx->srv_conf[ngx_modules[m]->ctx_index] = mconf; + ctx->srv_conf[ngx_modules[i]->ctx_index] = mconf; } if (module->create_loc_conf) { @@ -1604,7 +1606,7 @@ ngx_http_core_server(ngx_conf_t *cf, ngx return NGX_CONF_ERROR; } - ctx->loc_conf[ngx_modules[m]->ctx_index] = mconf; + ctx->loc_conf[ngx_modules[i]->ctx_index] = mconf; } } @@ -1642,6 +1644,8 @@ ngx_http_core_server(ngx_conf_t *cf, ngx ngx_sort(cscf->locations.elts, (size_t) cscf->locations.nelts, sizeof(ngx_http_core_loc_conf_t *), ngx_http_core_cmp_locations); +#if (NGX_PCRE) + cscf->regex_start = cscf->locations.nelts; clcfp = cscf->locations.elts; @@ -1652,6 +1656,8 @@ ngx_http_core_server(ngx_conf_t *cf, ngx } } +#endif + return rv; } @@ -1660,7 +1666,7 @@ static char * ngx_http_core_location(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy) { char *rv; - ngx_uint_t i, m; + ngx_uint_t i; ngx_str_t *value; ngx_conf_t save; ngx_http_module_t *module; @@ -1686,17 +1692,17 @@ ngx_http_core_location(ngx_conf_t *cf, n return NGX_CONF_ERROR; } - for (m = 0; ngx_modules[m]; m++) { - if (ngx_modules[m]->type != NGX_HTTP_MODULE) { + for (i = 0; ngx_modules[i]; i++) { + if (ngx_modules[i]->type != NGX_HTTP_MODULE) { continue; } - module = ngx_modules[m]->ctx; + module = ngx_modules[i]->ctx; if (module->create_loc_conf) { - ctx->loc_conf[ngx_modules[m]->ctx_index] = + ctx->loc_conf[ngx_modules[i]->ctx_index] = module->create_loc_conf(cf); - if (ctx->loc_conf[ngx_modules[m]->ctx_index] == NULL) { + if (ctx->loc_conf[ngx_modules[i]->ctx_index] == NULL) { return NGX_CONF_ERROR; } } @@ -1828,6 +1834,8 @@ ngx_http_core_location(ngx_conf_t *cf, n ngx_sort(clcf->locations->elts, (size_t) clcf->locations->nelts, sizeof(ngx_http_core_loc_conf_t *), ngx_http_core_cmp_locations); +#if (NGX_PCRE) + clcf->regex_start = clcf->locations->nelts; clcfp = clcf->locations->elts; @@ -1838,6 +1846,8 @@ ngx_http_core_location(ngx_conf_t *cf, n } } +#endif + return rv; } diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c --- a/src/http/ngx_http_upstream.c +++ b/src/http/ngx_http_upstream.c @@ -969,7 +969,7 @@ ngx_http_upstream_process_header(ngx_eve } n = u->peer.connection->recv(u->peer.connection, u->buffer.last, - u->buffer.end - u->buffer.last); + u->buffer.end - u->buffer.last); if (n == NGX_AGAIN) { #if 0