Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-01-19 16:10:56 +0300
committerIgor Sysoev <igor@sysoev.ru>2005-01-19 16:10:56 +0300
commit3259e85b7a1ce51d2e65360173c373fcca3609fb (patch)
tree6165dfb25d57d8b2d7cc914069a4c150b168354b /src/core
parentfbf4fc0da9018ef2d11470b6ac295385ecf53091 (diff)
nginx-0.1.15-RELEASE importrelease-0.1.15
*) Bugfix: the error while the connecting to the FastCGI server caused segmentation fault. *) Bugfix: the correct handling of the regular expression, that has different number of the captures and substitutions. *) Feature: the location, that is passed to the FastCGI server, can be regular expression. *) Bugfix: the FastCGI's parameter REQUEST_URI is now passed with the arguments and in the original state. *) Bugfix: the ngx_http_rewrite_module module was required to be built to use the regular expressions in locations. *) Bugfix: the directive "proxy_preserve_host on" adds port 80 to the "Host" headers, if upstream listen on port 80; the bug had appeared in 0.1.14. *) Bugfix: the same paths in autoconfiguration parameters --http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH, or --http-client-body-temp-path=PATH and --http-fastcgi-temp-path=PATH caused segmentation fault.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/nginx.h2
-rw-r--r--src/core/ngx_file.c12
-rw-r--r--src/core/ngx_regex.c18
-rw-r--r--src/core/ngx_regex.h7
4 files changed, 32 insertions, 7 deletions
diff --git a/src/core/nginx.h b/src/core/nginx.h
index 4b98cda28..2d18bc996 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,7 +8,7 @@
#define _NGINX_H_INCLUDED_
-#define NGINX_VER "nginx/0.1.14"
+#define NGINX_VER "nginx/0.1.15"
#define NGINX_VAR "NGINX"
#define NGX_NEWPID_EXT ".newbin"
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c
index 37983fe13..cc03d79cd 100644
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -252,9 +252,19 @@ ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot)
for (n = 0; n < 3; n++) {
if (p[i]->level[n] != path->level[n]) {
if (path->conf_file == NULL) {
+ if (p[i]->conf_file == NULL) {
+ ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
+ "the default path name \"%V\" has "
+ "the same name as another default path, "
+ "but the different levels, you need to "
+ "redefine one of them in http section",
+ &p[i]->name);
+ return NGX_ERROR;
+ }
+
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
"the path name \"%V\" in %s:%ui has "
- "the same name as default path but "
+ "the same name as default path, but "
"the different levels, you need to "
"define default path in http section",
&p[i]->name, p[i]->conf_file, p[i]->line);
diff --git a/src/core/ngx_regex.c b/src/core/ngx_regex.c
index 9b0c74e1f..5a0f79314 100644
--- a/src/core/ngx_regex.c
+++ b/src/core/ngx_regex.c
@@ -79,16 +79,28 @@ ngx_regex_t *ngx_regex_compile(ngx_str_t *pattern, ngx_int_t options,
}
+ngx_uint_t ngx_regex_capture_count(ngx_regex_t *re)
+{
+ int rc, n;
+
+ n = 0;
+
+ rc = pcre_fullinfo(re, NULL, PCRE_INFO_CAPTURECOUNT, &n);
+
+ return (ngx_uint_t) n;
+}
+
+
ngx_int_t ngx_regex_exec(ngx_regex_t *re, ngx_str_t *s,
- int *matches, ngx_int_t size)
+ int *captures, ngx_int_t size)
{
int rc;
rc = pcre_exec(re, NULL, (const char *) s->data, s->len, 0, 0,
- matches, size);
+ captures, size);
if (rc == -1) {
- return NGX_DECLINED;
+ return NGX_REGEX_NO_MATCHED;
}
return rc;
diff --git a/src/core/ngx_regex.h b/src/core/ngx_regex.h
index f9bf8580f..fb9856780 100644
--- a/src/core/ngx_regex.h
+++ b/src/core/ngx_regex.h
@@ -14,15 +14,18 @@
#include <pcre.h>
-#define NGX_REGEX_CASELESS PCRE_CASELESS
+#define NGX_REGEX_NO_MATCHED -1000
+
+#define NGX_REGEX_CASELESS PCRE_CASELESS
typedef pcre ngx_regex_t;
void ngx_regex_init();
ngx_regex_t *ngx_regex_compile(ngx_str_t *pattern, ngx_int_t options,
ngx_pool_t *pool, ngx_str_t *err);
+ngx_uint_t ngx_regex_capture_count(ngx_regex_t *re);
ngx_int_t ngx_regex_exec(ngx_regex_t *re, ngx_str_t *s,
- int *matches, ngx_int_t size);
+ int *captures, ngx_int_t size);
#define ngx_regex_exec_n "pcre_exec()"