diff src/os/win32/ngx_win32_config.h @ 5389:72e31d88defa

Added ngx_filename_cmp() with "/" sorted to the left. This patch fixes incorrect handling of auto redirect in configurations like: location /0 { } location /a- { } location /a/ { proxy_pass ... } With previously used sorting, this resulted in the following locations tree (as "-" is less than "/"): "/a-" "/0" "/a/" and a request to "/a" didn't match "/a/" with auto_redirect, as it didn't traverse relevant tree node during lookup (it tested "/a-", then "/0", and then falled back to null location). To preserve locale use for non-ASCII characters on case-insensetive systems, libc's tolower() used.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 23 Sep 2013 19:37:13 +0400
parents 3d2d3e1cf427
children 5d4e4619982f 51d4fde64bca
line wrap: on
line diff
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -45,6 +45,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
+#include <ctype.h>
 #include <locale.h>
 
 #ifdef __WATCOMC__
@@ -123,7 +124,6 @@ typedef unsigned __int32    uint32_t;
 typedef __int32             int32_t;
 typedef unsigned __int16    uint16_t;
 #define ngx_libc_cdecl      __cdecl
-#define _strnicmp           strnicmp
 
 #else /* __WATCOMC__ */
 typedef unsigned int        uint32_t;
@@ -196,6 +196,10 @@ typedef int                 sig_atomic_t
 #define NGX_HAVE_INHERITED_NONBLOCK  1
 #endif
 
+#ifndef NGX_HAVE_CASELESS_FILESYSTEM
+#define NGX_HAVE_CASELESS_FILESYSTEM  1
+#endif
+
 #ifndef NGX_HAVE_WIN32_TRANSMITPACKETS
 #define NGX_HAVE_WIN32_TRANSMITPACKETS  1
 #define NGX_HAVE_WIN32_TRANSMITFILE     0