comparison src/os/win32/ngx_files.h @ 497:d7c90bb5ce83 release-0.1.23

nginx-0.1.23-RELEASE import *) Feature: the ngx_http_ssi_filter_module and the ssi, ssi_silent_errors, and ssi_min_file_chunk directives. The 'echo var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands are supported. *) Feature: the %request_time log parameter. *) Feature: if the request has no the "Host" header line, then the "proxy_preserve_host" directive set this header line to the first server name of the "server_name" directive. *) Bugfix: nginx could not be built on platforms different from i386, amd64, sparc, and ppc; the bug had appeared in 0.1.22. *) Bugfix: the ngx_http_autoindex_module now shows the information not about the symlink, but about file or directory it points to. *) Bugfix: the %apache_length parameter logged the negative length of the response header if the no response was transferred to a client.
author Igor Sysoev <igor@sysoev.ru>
date Tue, 01 Mar 2005 15:20:36 +0000
parents bbd6b0b4a2b1
children d4ea69372b94
comparison
equal deleted inserted replaced
496:7ce7b31c3c83 497:d7c90bb5ce83
27 #define NGX_FILE_ERROR 0 27 #define NGX_FILE_ERROR 0
28 28
29 29
30 30
31 #define ngx_open_file(name, access, create) \ 31 #define ngx_open_file(name, access, create) \
32 CreateFile((const char *) name, access, \ 32 CreateFile((const char *) name, access, \
33 FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \ 33 FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \
34 NULL, create, FILE_FLAG_BACKUP_SEMANTICS, NULL) 34 NULL, create, FILE_FLAG_BACKUP_SEMANTICS, NULL)
35 /* 35 /*
36 NULL, OPEN_EXISTING, 0, NULL) 36 NULL, OPEN_EXISTING, 0, NULL)
37 */ 37 */
38 #define ngx_open_file_n "CreateFile()" 38 #define ngx_open_file_n "CreateFile()"
39 39
40 #define NGX_FILE_RDONLY GENERIC_READ 40 #define NGX_FILE_RDONLY GENERIC_READ
41 #define NGX_FILE_RDWR GENERIC_READ|GENERIC_WRITE 41 #define NGX_FILE_RDWR GENERIC_READ|GENERIC_WRITE
47 ngx_int_t ngx_file_append_mode(ngx_fd_t fd); 47 ngx_int_t ngx_file_append_mode(ngx_fd_t fd);
48 #define ngx_file_append_mode_n "SetFilePointer()" 48 #define ngx_file_append_mode_n "SetFilePointer()"
49 49
50 50
51 #define ngx_open_tempfile(name, persistent) \ 51 #define ngx_open_tempfile(name, persistent) \
52 CreateFile((const char *) name, \ 52 CreateFile((const char *) name, \
53 GENERIC_READ|GENERIC_WRITE, \ 53 GENERIC_READ|GENERIC_WRITE, \
54 FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \ 54 FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \
55 NULL, \ 55 NULL, \
56 CREATE_NEW, \ 56 CREATE_NEW, \
57 persistent ? 0: \ 57 persistent ? 0: \
58 FILE_ATTRIBUTE_TEMPORARY|FILE_FLAG_DELETE_ON_CLOSE, \ 58 FILE_ATTRIBUTE_TEMPORARY|FILE_FLAG_DELETE_ON_CLOSE, \
59 NULL); 59 NULL);
60 60
61 #define ngx_open_tempfile_n "CreateFile()" 61 #define ngx_open_tempfile_n "CreateFile()"
62 62
63 63
64 #define ngx_close_file CloseHandle 64 #define ngx_close_file CloseHandle
70 70
71 71
72 #define ngx_rename_file MoveFile 72 #define ngx_rename_file MoveFile
73 #define ngx_rename_file_n "MoveFile()" 73 #define ngx_rename_file_n "MoveFile()"
74 ngx_int_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, 74 ngx_int_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to,
75 ngx_pool_t *pool); 75 ngx_pool_t *pool);
76 76
77 77
78 ngx_int_t ngx_file_info(u_char *filename, ngx_file_info_t *fi); 78 ngx_int_t ngx_file_info(u_char *filename, ngx_file_info_t *fi);
79 #define ngx_file_info_n "GetFileAttributesEx()" 79 #define ngx_file_info_n "GetFileAttributesEx()"
80 80
86 #define ngx_is_dir(fi) ((fi)->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 86 #define ngx_is_dir(fi) ((fi)->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
87 #define ngx_is_file(fi) !((fi)->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 87 #define ngx_is_file(fi) !((fi)->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
88 88
89 89
90 #define ngx_file_size(fi) \ 90 #define ngx_file_size(fi) \
91 (((off_t) (fi)->nFileSizeHigh << 32) | (fi)->nFileSizeLow) 91 (((off_t) (fi)->nFileSizeHigh << 32) | (fi)->nFileSizeLow)
92 92
93 #define ngx_file_uniq(fi) (*(ngx_file_uniq_t *) &(fi)->nFileIndexHigh) 93 #define ngx_file_uniq(fi) (*(ngx_file_uniq_t *) &(fi)->nFileIndexHigh)
94 94
95 95
96 /* 116444736000000000 is commented in src/os/win32/ngx_time.c */ 96 /* 116444736000000000 is commented in src/os/win32/ngx_time.c */
132 132
133 #define ngx_de_name(dir) ((u_char *) (dir)->fd.cFileName) 133 #define ngx_de_name(dir) ((u_char *) (dir)->fd.cFileName)
134 #define ngx_de_namelen(dir) ngx_strlen((dir)->fd.cFileName) 134 #define ngx_de_namelen(dir) ngx_strlen((dir)->fd.cFileName)
135 #define ngx_de_info(name, dir) NGX_OK 135 #define ngx_de_info(name, dir) NGX_OK
136 #define ngx_de_info_n "dummy()" 136 #define ngx_de_info_n "dummy()"
137 #define ngx_de_link_info(name, dir) NGX_OK
138 #define ngx_de_link_info_n "dummy()"
137 #define ngx_de_is_dir(dir) \ 139 #define ngx_de_is_dir(dir) \
138 ((dir)->fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 140 ((dir)->fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
139 #define ngx_de_is_file(dir) \ 141 #define ngx_de_is_file(dir) \
140 !((dir)->fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 142 !((dir)->fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
143 #define ngx_de_is_link(dir) 0
141 #define ngx_de_size(dir) \ 144 #define ngx_de_size(dir) \
142 (((off_t) (dir)->fd.nFileSizeHigh << 32) | (dir)->fd.nFileSizeLow) 145 (((off_t) (dir)->fd.nFileSizeHigh << 32) | (dir)->fd.nFileSizeLow)
143 146
144 /* 116444736000000000 is commented in src/os/win32/ngx_time.c */ 147 /* 116444736000000000 is commented in src/os/win32/ngx_time.c */
145 148
146 #define ngx_de_mtime(dir) \ 149 #define ngx_de_mtime(dir) \
147 (time_t) (((((unsigned __int64) \ 150 (time_t) (((((unsigned __int64) \
148 (dir)->fd.ftLastWriteTime.dwHighDateTime << 32) \ 151 (dir)->fd.ftLastWriteTime.dwHighDateTime << 32) \
149 | (dir)->fd.ftLastWriteTime.dwLowDateTime) \ 152 | (dir)->fd.ftLastWriteTime.dwLowDateTime) \
150 - 116444736000000000) / 10000000) 153 - 116444736000000000) / 10000000)
151 154
152 155
153 156
154 ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset); 157 ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset);
155 #define ngx_read_file_n "ReadFile()" 158 #define ngx_read_file_n "ReadFile()"
156 159
157 ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size, 160 ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size,
158 off_t offset); 161 off_t offset);
159 162
160 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce, 163 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce,
161 off_t offset, ngx_pool_t *pool); 164 off_t offset, ngx_pool_t *pool);
162 165
163 166
164 #endif /* _NGX_FILES_H_INCLUDED_ */ 167 #endif /* _NGX_FILES_H_INCLUDED_ */