nginx-0.0.1-2003-06-03-19:42:58 import
diff --git a/src/os/unix/ngx_errno.h b/src/os/unix/ngx_errno.h
index 91ac3ba..feb9e4a 100644
--- a/src/os/unix/ngx_errno.h
+++ b/src/os/unix/ngx_errno.h
@@ -5,6 +5,7 @@
#include <errno.h>
#include <string.h>
+
typedef int ngx_err_t;
#define NGX_ENOENT ENOENT
diff --git a/src/os/unix/ngx_time.h b/src/os/unix/ngx_time.h
index 5cd791d..4b5fa59 100644
--- a/src/os/unix/ngx_time.h
+++ b/src/os/unix/ngx_time.h
@@ -24,7 +24,7 @@
ngx_msec_t ngx_msec(void);
/* STUB */
-#define ngx_time() time(NULL)
+#define ngx_time() time(NULL)
#endif /* _NGX_TIME_H_INCLUDED_ */
diff --git a/src/os/win32/ngx_errno.h b/src/os/win32/ngx_errno.h
index 2378811..e94dbe0 100644
--- a/src/os/win32/ngx_errno.h
+++ b/src/os/win32/ngx_errno.h
@@ -3,22 +3,24 @@
#include <ngx_config.h>
+#include <ngx_core.h>
-typedef DWORD ngx_err_t;
+
+typedef DWORD ngx_err_t;
#define ngx_errno GetLastError()
#define ngx_socket_errno WSAGetLastError()
#define ngx_set_socket_errno(err) WSASetLastError(err)
-#define NGX_ENOENT ERROR_FILE_NOT_FOUND
-#define NGX_EACCES ERROR_ACCESS_DENIED
-#define NGX_EEXIST ERROR_FILE_EXISTS
-#define NGX_ENOTDIR ERROR_PATH_NOT_FOUND
-#define NGX_EAGAIN WSAEWOULDBLOCK
-#define NGX_EINPROGRESS WSAEINPROGRESS
-#define NGX_EADDRINUSE WSAEADDRINUSE
-#define NGX_ECONNRESET ECONNRESET
-#define NGX_ETIMEDOUT WSAETIMEDOUT
+#define NGX_ENOENT ERROR_FILE_NOT_FOUND
+#define NGX_EACCES ERROR_ACCESS_DENIED
+#define NGX_EEXIST ERROR_FILE_EXISTS
+#define NGX_ENOTDIR ERROR_PATH_NOT_FOUND
+#define NGX_EAGAIN WSAEWOULDBLOCK
+#define NGX_EINPROGRESS WSAEINPROGRESS
+#define NGX_EADDRINUSE WSAEADDRINUSE
+#define NGX_ECONNRESET ECONNRESET
+#define NGX_ETIMEDOUT WSAETIMEDOUT
int ngx_strerror_r(ngx_err_t err, char *errstr, size_t size);
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c
index 60e132b..3734bdc 100644
--- a/src/os/win32/ngx_files.c
+++ b/src/os/win32/ngx_files.c
@@ -1,9 +1,7 @@
#include <ngx_config.h>
-
#include <ngx_core.h>
-#include <ngx_types.h>
-#include <ngx_file.h>
+
ssize_t ngx_read_file(ngx_file_t *file, char *buf, size_t size, off_t offset)
{
@@ -18,3 +16,15 @@
return n;
}
+
+
+int ngx_file_append_mode(ngx_fd_t *fd)
+{
+ if (SetFilePointer(fd, 0, NULL, FILE_END) == 0xFFFFFFFF) {
+ if (GetLastError() != NO_ERROR) {
+ return NGX_ERROR;
+ }
+ }
+
+ return NGX_OK;
+}
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h
index 08525b9..a23c0e2 100644
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -3,14 +3,12 @@
#include <ngx_config.h>
-
-#include <ngx_types.h>
-#include <ngx_file.h>
+#include <ngx_core.h>
/* INVALID_FILE_ATTRIBUTES specified but never defined at least in VC6SP2 */
#ifndef INVALID_FILE_ATTRIBUTES
-#define INVALID_FILE_ATTRIBUTES 0xFFFFFFFF
+#define INVALID_FILE_ATTRIBUTES 0xFFFFFFFF
#endif
#define NGX_INVALID_FILE INVALID_HANDLE_VALUE
@@ -19,7 +17,7 @@
#define ngx_open_file(name, access, create) \
- CreateFile(name, flags, \
+ CreateFile(name, access, \
FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \
NULL, create, FILE_FLAG_BACKUP_SEMANTICS, NULL)
/*
@@ -31,6 +29,11 @@
#define NGX_FILE_RDWR GENERIC_READ|GENERIC_WRITE
#define NGX_FILE_CREATE_OR_OPEN OPEN_ALWAYS
#define NGX_FILE_OPEN OPEN_EXISTING
+#define NGX_FILE_APPEND 0
+
+
+int ngx_file_append_mode(ngx_fd_t fd);
+#define ngx_file_append_mode_n "SetFilePointer()"
#define ngx_open_tempfile(name, persistent) \
@@ -46,7 +49,6 @@
#define ngx_open_tempfile_n "CreateFile()"
-
#define ngx_close_file CloseHandle
#define ngx_close_file_n "CloseHandle()"
diff --git a/src/os/win32/ngx_init.c b/src/os/win32/ngx_init.c
index 4f356a1..5292330 100644
--- a/src/os/win32/ngx_init.c
+++ b/src/os/win32/ngx_init.c
@@ -14,11 +14,73 @@
};
+/* Should these pointers be per protocol ? */
+LPFN_ACCEPTEX acceptex;
+LPFN_GETACCEPTEXSOCKADDRS getacceptexsockaddrs;
+LPFN_TRANSMITFILE transmitfile;
+
+static GUID ae_guid = WSAID_ACCEPTEX;
+static GUID as_guid = WSAID_GETACCEPTEXSOCKADDRS;
+static GUID tf_guid = WSAID_TRANSMITFILE;
+
+
int ngx_os_init(ngx_log_t *log)
{
- if (ngx_init_sockets(log) == NGX_ERROR) {
+ DWORD bytes;
+ SOCKET s;
+ WSADATA wsd;
+
+ /* init Winsock */
+
+ if (WSAStartup(MAKEWORD(2,2), &wsd) != 0) {
+ ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+ "WSAStartup failed");
return NGX_ERROR;
}
+ ngx_log_error(NGX_LOG_INFO, log, 0, "max sockets: %d", wsd.iMaxSockets);
+
+ /* get AcceptEx(), GetAcceptExSockAddrs() and TransmitFile() addresses */
+
+ s = ngx_socket(AF_INET, SOCK_STREAM, IPPROTO_IP, 0);
+ if (s == -1) {
+ ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+ ngx_socket_n " %s falied");
+ return NGX_ERROR;
+ }
+
+ if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &ae_guid, sizeof(GUID),
+ &acceptex, sizeof(LPFN_ACCEPTEX), &bytes, NULL, NULL) == -1) {
+
+ ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+ "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
+ "WSAID_ACCEPTEX) failed");
+ return NGX_ERROR;
+ }
+
+ if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &as_guid, sizeof(GUID),
+ &getacceptexsockaddrs, sizeof(LPFN_GETACCEPTEXSOCKADDRS),
+ &bytes, NULL, NULL) == -1) {
+
+ ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+ "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
+ "WSAID_ACCEPTEX) failed");
+ return NGX_ERROR;
+ }
+
+ if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &tf_guid, sizeof(GUID),
+ &transmitfile, sizeof(LPFN_TRANSMITFILE), &bytes,
+ NULL, NULL) == -1) {
+ ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+ "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
+ "WSAID_TRANSMITFILE) failed");
+ return NGX_ERROR;
+ }
+
+ if (ngx_close_socket(s) == -1) {
+ ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno,
+ ngx_close_socket_n " failed");
+ }
+
return NGX_OK;
}
diff --git a/src/os/win32/ngx_os_init.h b/src/os/win32/ngx_os_init.h
index 5c445ac..4a00a3a 100644
--- a/src/os/win32/ngx_os_init.h
+++ b/src/os/win32/ngx_os_init.h
@@ -3,7 +3,7 @@
#include <ngx_config.h>
-#include <ngx_log.h>
+#include <ngx_core.h>
int ngx_os_init(ngx_log_t *log);
diff --git a/src/os/win32/ngx_socket.c b/src/os/win32/ngx_socket.c
index f289a33..e3f6f5c 100644
--- a/src/os/win32/ngx_socket.c
+++ b/src/os/win32/ngx_socket.c
@@ -1,77 +1,8 @@
#include <ngx_config.h>
-
#include <ngx_core.h>
-#include <ngx_log.h>
-#include <ngx_errno.h>
-#include <ngx_socket.h>
-/* These pointers should be per protocol ? */
-LPFN_ACCEPTEX acceptex;
-LPFN_GETACCEPTEXSOCKADDRS getacceptexsockaddrs;
-LPFN_TRANSMITFILE transmitfile;
-
-static GUID ae_guid = WSAID_ACCEPTEX;
-static GUID as_guid = WSAID_GETACCEPTEXSOCKADDRS;
-static GUID tf_guid = WSAID_TRANSMITFILE;
-
-
-int ngx_init_sockets(ngx_log_t *log)
-{
- DWORD bytes;
- SOCKET s;
- WSADATA wsd;
-
- if (WSAStartup(MAKEWORD(2,2), &wsd) != 0) {
- ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
- "WSAStartup failed");
- return NGX_ERROR;
- }
-
- s = ngx_socket(AF_INET, SOCK_STREAM, IPPROTO_IP, 0);
- if (s == -1) {
- ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
- ngx_socket_n " %s falied");
- return NGX_ERROR;
- }
-
- if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &ae_guid, sizeof(GUID),
- &acceptex, sizeof(LPFN_ACCEPTEX), &bytes, NULL, NULL) == -1) {
-
- ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
- "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
- "WSAID_ACCEPTEX) failed");
- return NGX_ERROR;
- }
-
- if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &as_guid, sizeof(GUID),
- &getacceptexsockaddrs, sizeof(LPFN_GETACCEPTEXSOCKADDRS),
- &bytes, NULL, NULL) == -1) {
-
- ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
- "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
- "WSAID_ACCEPTEX) failed");
- return NGX_ERROR;
- }
-
- if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &tf_guid, sizeof(GUID),
- &transmitfile, sizeof(LPFN_TRANSMITFILE), &bytes,
- NULL, NULL) == -1) {
- ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
- "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
- "WSAID_TRANSMITFILE) failed");
- return NGX_ERROR;
- }
-
- if (ngx_close_socket(s) == -1) {
- ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno,
- ngx_close_socket_n " failed");
- }
-
- return NGX_OK;
-}
-
int ngx_nonblocking(ngx_socket_t s)
{
unsigned long nb = 1;
@@ -79,6 +10,7 @@
return ioctlsocket(s, FIONBIO, &nb);
}
+
int ngx_blocking(ngx_socket_t s)
{
unsigned long nb = 0;
diff --git a/src/os/win32/ngx_socket.h b/src/os/win32/ngx_socket.h
index f94d45c..f86a39a 100644
--- a/src/os/win32/ngx_socket.h
+++ b/src/os/win32/ngx_socket.h
@@ -3,7 +3,8 @@
#include <ngx_config.h>
-#include <ngx_log.h>
+#include <ngx_core.h>
+
#define NGX_WRITE_SHUTDOWN SD_SEND
@@ -12,7 +13,6 @@
typedef SOCKET ngx_socket_t;
typedef int socklen_t;
-int ngx_init_sockets(ngx_log_t *log);
#define ngx_socket(af, type, proto, flags) \
WSASocket(af, type, proto, NULL, 0, flags)
diff --git a/src/os/win32/ngx_time.h b/src/os/win32/ngx_time.h
index 25eef95..4cd84e5 100644
--- a/src/os/win32/ngx_time.h
+++ b/src/os/win32/ngx_time.h
@@ -2,7 +2,9 @@
#define _NGX_TIME_H_INCLUDED_
-#include <windows.h>
+#include <ngx_config.h>
+#include <ngx_core.h>
+
typedef unsigned int ngx_msec_t;
#define NGX_MAX_MSEC ~0
@@ -24,7 +26,7 @@
#define ngx_msec GetTickCount
/* STUB */
-#define ngx_time() time(NULL)
+#define ngx_time() time(NULL)
#endif /* _NGX_TIME_H_INCLUDED_ */
diff --git a/src/os/win32/ngx_types.h b/src/os/win32/ngx_types.h
index d5f0d92..cf8db97 100644
--- a/src/os/win32/ngx_types.h
+++ b/src/os/win32/ngx_types.h
@@ -3,6 +3,7 @@
#include <ngx_config.h>
+#include <ngx_core.h>
typedef unsigned __int32 u_int32_t;