summaryrefslogtreecommitdiffhomepage
path: root/src/os/win32
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-11-14 16:52:04 +0000
committerIgor Sysoev <igor@sysoev.ru>2003-11-14 16:52:04 +0000
commit297c0487518d4b974a548dfd3d5d2f10c250177c (patch)
tree16667b611d5e4f4e88abd7d920fe20e0a7066b65 /src/os/win32
parent7f9d894e1069306f7361201a77efbe7b866024ff (diff)
downloadnginx-297c0487518d4b974a548dfd3d5d2f10c250177c.tar.gz
nginx-297c0487518d4b974a548dfd3d5d2f10c250177c.tar.bz2
nginx-0.0.1-2003-11-14-19:52:04 import
Diffstat (limited to '')
-rw-r--r--src/os/win32/ngx_files.c39
-rw-r--r--src/os/win32/ngx_files.h2
-rw-r--r--src/os/win32/ngx_types.h7
3 files changed, 47 insertions, 1 deletions
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c
index 35e83bfd6..7e2346288 100644
--- a/src/os/win32/ngx_files.c
+++ b/src/os/win32/ngx_files.c
@@ -220,6 +220,45 @@ int ngx_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_pool_t *pool)
}
+int ngx_file_type(char *file, ngx_file_info_t *sb)
+{
+ WIN32_FILE_ATTRIBUTE_DATA fa;
+
+ /* NT4 and Win98 */
+
+ if (GetFileAttributesEx(file, GetFileExInfoStandard, &fa) == 0) {
+ return NGX_ERROR;
+ }
+
+ sb->dwFileAttributes = fa.dwFileAttributes;
+ sb->ftCreationTime = fa.ftCreationTime;
+ sb->ftLastAccessTime = fa.ftLastAccessTime;
+ sb->ftLastWriteTime = fa.ftLastWriteTime;
+ sb->nFileSizeHigh = fa.nFileSizeHigh;
+ sb->nFileSizeLow = fa.nFileSizeLow;
+
+ return NGX_OK;
+}
+
+
+#if 0
+
+/* Win95 */
+
+int ngx_file_type(char *file, ngx_file_info_t *sb)
+{
+ sb->dwFileAttributes = GetFileAttributes(file);
+
+ if (sb->dwFileAttributes == INVALID_FILE_ATTRIBUTES) {
+ return NGX_ERROR;
+ }
+
+ return NGX_OK;
+}
+
+#endif
+
+
int ngx_file_append_mode(ngx_fd_t fd)
{
if (SetFilePointer(fd, 0, NULL, FILE_END) == INVALID_SET_FILE_POINTER) {
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h
index 9885c5f78..d7d7d00b3 100644
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -65,7 +65,7 @@ int ngx_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_pool_t *pool);
#define ngx_mkdir_n "CreateDirectory()"
int ngx_file_type(char *filename, ngx_file_info_t *fi);
-#define ngx_file_type_n "GetFileAttributes"
+#define ngx_file_type_n "GetFileAttributesEx()"
#define ngx_stat_fd(fd, fi) GetFileInformationByHandle(fd, fi)
#define ngx_stat_fd_n "GetFileInformationByHandle"
diff --git a/src/os/win32/ngx_types.h b/src/os/win32/ngx_types.h
index 043265536..fe4af4496 100644
--- a/src/os/win32/ngx_types.h
+++ b/src/os/win32/ngx_types.h
@@ -10,5 +10,12 @@ typedef HANDLE ngx_fd_t;
typedef BY_HANDLE_FILE_INFORMATION ngx_file_info_t;
typedef uint64_t ngx_file_uniq_t;
+typedef struct {
+ HANDLE dir;
+ WIN32_FIND_DATA de;
+} ngx_dir_t;
+
+typedef WIN32_FIND_DATA ngx_dirent_t;
+
#endif /* _NGX_TYPES_H_INCLUDED_ */