diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2003-11-14 16:52:04 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2003-11-14 16:52:04 +0000 |
| commit | 297c0487518d4b974a548dfd3d5d2f10c250177c (patch) | |
| tree | 16667b611d5e4f4e88abd7d920fe20e0a7066b65 /src/os | |
| parent | 7f9d894e1069306f7361201a77efbe7b866024ff (diff) | |
| download | nginx-297c0487518d4b974a548dfd3d5d2f10c250177c.tar.gz nginx-297c0487518d4b974a548dfd3d5d2f10c250177c.tar.bz2 | |
nginx-0.0.1-2003-11-14-19:52:04 import
Diffstat (limited to 'src/os')
| -rw-r--r-- | src/os/unix/ngx_files.h | 26 | ||||
| -rw-r--r-- | src/os/unix/ngx_freebsd_config.h | 2 | ||||
| -rw-r--r-- | src/os/unix/ngx_types.h | 11 | ||||
| -rw-r--r-- | src/os/win32/ngx_files.c | 39 | ||||
| -rw-r--r-- | src/os/win32/ngx_files.h | 2 | ||||
| -rw-r--r-- | src/os/win32/ngx_types.h | 7 |
6 files changed, 75 insertions, 12 deletions
diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h index 369c3ad5d..f83cc6a0c 100644 --- a/src/os/unix/ngx_files.h +++ b/src/os/unix/ngx_files.h @@ -30,6 +30,10 @@ #define ngx_close_file_n "close()" +#define ngx_delete_file unlink +#define ngx_delete_file_n "unlink()" + + #define ngx_open_tempfile(name, persistent) \ open(name, O_CREAT|O_EXCL|O_RDWR, 0600) #define ngx_open_tempfile_n "open()" @@ -49,21 +53,33 @@ ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce, #define ngx_rename_file_n "rename" +#define ngx_open_dir opendir +#define ngx_open_dir_n "opendir()" + + +#define ngx_read_dir readdir +#define ngx_read_dir_n "readdir()" + + #define ngx_mkdir(name) mkdir(name, 0700) #define ngx_mkdir_n "mkdir()" +#define ngx_delete_dir rmdir +#define ngx_delete_dir_n "rmdir()" + + #define ngx_file_type(file, sb) stat(file, sb) #define ngx_file_type_n "stat()" #define ngx_stat_fd(fd, sb) fstat(fd, sb) #define ngx_stat_fd_n "fstat()" -#define ngx_is_dir(sb) (S_ISDIR(sb.st_mode)) -#define ngx_is_file(sb) (S_ISREG(sb.st_mode)) -#define ngx_file_size(sb) sb.st_size -#define ngx_file_mtime(sb) sb.st_mtime -#define ngx_file_uniq(sb) sb.st_ino +#define ngx_is_dir(sb) (S_ISDIR(sb->st_mode)) +#define ngx_is_file(sb) (S_ISREG(sb->st_mode)) +#define ngx_file_size(sb) sb->st_size +#define ngx_file_mtime(sb) sb->st_mtime +#define ngx_file_uniq(sb) sb->st_ino #endif /* _NGX_FILES_H_INCLUDED_ */ diff --git a/src/os/unix/ngx_freebsd_config.h b/src/os/unix/ngx_freebsd_config.h index d53339f36..c0204468c 100644 --- a/src/os/unix/ngx_freebsd_config.h +++ b/src/os/unix/ngx_freebsd_config.h @@ -10,6 +10,7 @@ #include <fcntl.h> #include <signal.h> #include <sys/types.h> +#include <sys/stat.h> #include <sys/time.h> #include <sys/uio.h> #include <sys/ioctl.h> @@ -19,6 +20,7 @@ #include <sys/socket.h> #include <netinet/in.h> #include <netinet/tcp.h> /* TCP_NOPUSH */ +#include <dirent.h> #include <arpa/inet.h> #include <netdb.h> #include <osreldate.h> diff --git a/src/os/unix/ngx_types.h b/src/os/unix/ngx_types.h index 3bc065306..e2622c557 100644 --- a/src/os/unix/ngx_types.h +++ b/src/os/unix/ngx_types.h @@ -4,14 +4,13 @@ #include <ngx_config.h> -#include <sys/types.h> -#include <sys/stat.h> +typedef int ngx_fd_t; +typedef struct stat ngx_file_info_t; +typedef ino_t ngx_file_uniq_t; -typedef int ngx_fd_t; -typedef struct stat ngx_file_info_t; -typedef ino_t ngx_file_uniq_t; - +typedef DIR ngx_dir_t; +typedef struct dirent ngx_dirent_t; #endif /* _NGX_TYPES_H_INCLUDED_ */ 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_ */ |
