Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src/os
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-11-11 22:56:46 +0300
committerIgor Sysoev <igor@sysoev.ru>2007-11-11 22:56:46 +0300
commita0951d5494a8864c026a83510b34c3859224af26 (patch)
treed4a415fb5d39d10bb4060191311dc319db11b103 /src/os
parent479c786e0d5f1f2435f9756695df40e4430130b4 (diff)
fix win32 ngx_read_fd() and ngx_write_fd()
Diffstat (limited to 'src/os')
-rw-r--r--src/os/win32/ngx_files.c26
-rw-r--r--src/os/win32/ngx_files.h6
2 files changed, 30 insertions, 2 deletions
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c
index e4efb4df0..e74dc52ea 100644
--- a/src/os/win32/ngx_files.c
+++ b/src/os/win32/ngx_files.c
@@ -174,6 +174,32 @@ ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, off_t offset,
}
+ssize_t
+ngx_read_fd(ngx_fd_t fd, void *buf, size_t size)
+{
+ u_long n;
+
+ if (ReadFile(fd, buf, size, &n, NULL) != 0) {
+ return (size_t) n;
+ }
+
+ return -1;
+}
+
+
+ssize_t
+ngx_write_fd(ngx_fd_t fd, void *buf, size_t size)
+{
+ u_long n;
+
+ if (WriteFile(fd, buf, size, &n, NULL) != 0) {
+ return (size_t) n;
+ }
+
+ return -1;
+}
+
+
ngx_int_t
ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_pool_t *pool)
{
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h
index fb338830a..560e91cdc 100644
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -68,12 +68,14 @@ ngx_int_t ngx_file_append_mode(ngx_fd_t fd);
#define ngx_close_file_n "CloseHandle()"
-#define ngx_read_fd(fd, buf, size) ReadFile(fd, buf, size, NULL, NULL)
+ssize_t ngx_read_fd(ngx_fd_t fd, void *buf, size_t size);
#define ngx_read_fd_n "ReadFile()"
-#define ngx_write_fd(fd, buf, size) WriteFile(fd, buf, size, NULL, NULL)
+
+ssize_t ngx_write_fd(ngx_fd_t fd, void *buf, size_t size);
#define ngx_write_fd_n "WriteFile()"
+
#define ngx_linefeed(p) *p++ = CR; *p++ = LF;
#define NGX_LINEFEED_SIZE 2