Mercurial > hg > nginx-vendor-1-0
comparison src/core/ngx_cycle.c @ 478:f2c6a7373274 NGINX_0_7_51
nginx 0.7.51
*) Feature: the "try_files" directive supports a response code in the
fallback parameter.
*) Feature: now any response code can be used in the "return" directive.
*) Bugfix: the "error_page" directive made an external redirect without
query string; the bug had appeared in 0.7.44.
*) Bugfix: if servers listened on several defined explicitly addresses,
then virtual servers might not work; the bug had appeared in 0.7.39.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Sun, 12 Apr 2009 00:00:00 +0400 |
parents | 6866b490272e |
children | 549994537f15 |
comparison
equal
deleted
inserted
replaced
477:ba2ea8c4d60f | 478:f2c6a7373274 |
---|---|
373 ngx_open_file_n " \"%s\" failed", | 373 ngx_open_file_n " \"%s\" failed", |
374 file[i].name.data); | 374 file[i].name.data); |
375 goto failed; | 375 goto failed; |
376 } | 376 } |
377 | 377 |
378 #if (NGX_WIN32) | 378 #if !(NGX_WIN32) |
379 if (ngx_file_append_mode(file[i].fd) != NGX_OK) { | |
380 ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, | |
381 ngx_file_append_mode_n " \"%s\" failed", | |
382 file[i].name.data); | |
383 goto failed; | |
384 } | |
385 #else | |
386 if (fcntl(file[i].fd, F_SETFD, FD_CLOEXEC) == -1) { | 379 if (fcntl(file[i].fd, F_SETFD, FD_CLOEXEC) == -1) { |
387 ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, | 380 ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, |
388 "fcntl(FD_CLOEXEC) \"%s\" failed", | 381 "fcntl(FD_CLOEXEC) \"%s\" failed", |
389 file[i].name.data); | 382 file[i].name.data); |
390 goto failed; | 383 goto failed; |
927 #if !(NGX_WIN32) | 920 #if !(NGX_WIN32) |
928 | 921 |
929 ngx_int_t | 922 ngx_int_t |
930 ngx_create_pidfile(ngx_str_t *name, ngx_log_t *log) | 923 ngx_create_pidfile(ngx_str_t *name, ngx_log_t *log) |
931 { | 924 { |
932 size_t len; | 925 size_t len; |
933 ngx_uint_t trunc; | 926 ngx_uint_t create; |
934 ngx_file_t file; | 927 ngx_file_t file; |
935 u_char pid[NGX_INT64_LEN + 2]; | 928 u_char pid[NGX_INT64_LEN + 2]; |
936 | 929 |
937 ngx_memzero(&file, sizeof(ngx_file_t)); | 930 ngx_memzero(&file, sizeof(ngx_file_t)); |
938 | 931 |
939 file.name = *name; | 932 file.name = *name; |
940 file.log = log; | 933 file.log = log; |
941 | 934 |
942 trunc = ngx_test_config ? 0 : NGX_FILE_TRUNCATE; | 935 create = ngx_test_config ? NGX_FILE_CREATE_OR_OPEN : NGX_FILE_TRUNCATE; |
943 | 936 |
944 file.fd = ngx_open_file(file.name.data, NGX_FILE_RDWR, | 937 file.fd = ngx_open_file(file.name.data, NGX_FILE_RDWR, |
945 NGX_FILE_CREATE_OR_OPEN|trunc, | 938 create, NGX_FILE_DEFAULT_ACCESS); |
946 NGX_FILE_DEFAULT_ACCESS); | |
947 | 939 |
948 if (file.fd == NGX_INVALID_FILE) { | 940 if (file.fd == NGX_INVALID_FILE) { |
949 ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, | 941 ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, |
950 ngx_open_file_n " \"%s\" failed", file.name.data); | 942 ngx_open_file_n " \"%s\" failed", file.name.data); |
951 return NGX_ERROR; | 943 return NGX_ERROR; |
1076 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, | 1068 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, |
1077 ngx_open_file_n " \"%s\" failed", file[i].name.data); | 1069 ngx_open_file_n " \"%s\" failed", file[i].name.data); |
1078 continue; | 1070 continue; |
1079 } | 1071 } |
1080 | 1072 |
1081 #if (NGX_WIN32) | 1073 #if !(NGX_WIN32) |
1082 if (ngx_file_append_mode(fd) == NGX_ERROR) { | |
1083 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, | |
1084 ngx_file_append_mode_n " \"%s\" failed", | |
1085 file[i].name.data); | |
1086 | |
1087 if (ngx_close_file(fd) == NGX_FILE_ERROR) { | |
1088 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, | |
1089 ngx_close_file_n " \"%s\" failed", | |
1090 file[i].name.data); | |
1091 } | |
1092 | |
1093 continue; | |
1094 } | |
1095 #else | |
1096 if (user != (ngx_uid_t) NGX_CONF_UNSET_UINT) { | 1074 if (user != (ngx_uid_t) NGX_CONF_UNSET_UINT) { |
1097 ngx_file_info_t fi; | 1075 ngx_file_info_t fi; |
1098 | 1076 |
1099 if (ngx_file_info((const char *) file[i].name.data, &fi) == -1) { | 1077 if (ngx_file_info((const char *) file[i].name.data, &fi) == -1) { |
1100 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, | 1078 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, |