comparison src/core/ngx_file.c @ 536:0dc162a5f3e8 NGINX_0_8_20

nginx 0.8.20 *) Change: now default SSL ciphers are "HIGH:!ADH:!MD5". *) Bugfix: the ngx_http_autoindex_module did not show the trailing slash in links to a directory; the bug had appeared in 0.7.15. *) Bugfix: nginx did not close a log file set by the --error-log-path configuration option; the bug had appeared in 0.7.53. *) Bugfix: nginx did not treat a comma as separator in the "Cache-Control" backend response header line. *) Bugfix: nginx/Windows might not create temporary file, a cache file, or "proxy/fastcgi_store"d file if a worker has no enough access rights for top level directories. *) Bugfix: the "Set-Cookie" and "P3P" FastCGI response header lines were not hidden while caching if no "fastcgi_hide_header" directives were used with any parameters. *) Bugfix: nginx counted incorrectly disk cache size.
author Igor Sysoev <http://sysoev.ru>
date Wed, 14 Oct 2009 00:00:00 +0400
parents 7efcdb937752
children 25255878df91
comparison
equal deleted inserted replaced
535:4584144e5de2 536:0dc162a5f3e8
181 ngx_create_full_path(u_char *dir, ngx_uint_t access) 181 ngx_create_full_path(u_char *dir, ngx_uint_t access)
182 { 182 {
183 u_char *p, ch; 183 u_char *p, ch;
184 ngx_err_t err; 184 ngx_err_t err;
185 185
186 for (p = dir + 1; *p; p++) { 186 err = 0;
187
188 #if (NGX_WIN32)
189 p = dir + 3;
190 #else
191 p = dir + 1;
192 #endif
193
194 for ( /* void */ ; *p; p++) {
187 ch = *p; 195 ch = *p;
188 196
189 if (ch != '/') { 197 if (ch != '/') {
190 continue; 198 continue;
191 } 199 }
192 200
193 *p = '\0'; 201 *p = '\0';
194 202
195 if (ngx_create_dir(dir, access) == NGX_FILE_ERROR) { 203 if (ngx_create_dir(dir, access) == NGX_FILE_ERROR) {
196 err = ngx_errno; 204 err = ngx_errno;
197 if (err != NGX_EEXIST) { 205
206 switch (err) {
207 case NGX_EEXIST:
208 err = 0;
209 case NGX_EACCES:
210 break;
211
212 default:
198 return err; 213 return err;
199 } 214 }
200 } 215 }
201 216
202 *p = '/'; 217 *p = '/';
203 } 218 }
204 219
205 return 0; 220 return err;
206 } 221 }
207 222
208 223
209 ngx_atomic_uint_t 224 ngx_atomic_uint_t
210 ngx_next_temp_number(ngx_uint_t collision) 225 ngx_next_temp_number(ngx_uint_t collision)