diff options
author | wrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68> | 2001-07-12 18:58:57 +0000 |
---|---|---|
committer | wrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68> | 2001-07-12 18:58:57 +0000 |
commit | fba3288514f874ac3aca597e512d4502ad4f6cf5 (patch) | |
tree | b7653d1952176bc23288ea0c7dbca4287a44f2ad /network_io | |
parent | 725dc79011adbfed0c16d707e9a6299c19185401 (diff) | |
download | libapr-fba3288514f874ac3aca597e512d4502ad4f6cf5.tar.gz |
Return LARGE_FILE support for win32 sendfile (quiets compiler)
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@61927 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'network_io')
-rw-r--r-- | network_io/win32/sendrecv.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/network_io/win32/sendrecv.c b/network_io/win32/sendrecv.c index 865dbca6b..43cec4f2e 100644 --- a/network_io/win32/sendrecv.c +++ b/network_io/win32/sendrecv.c @@ -246,6 +246,7 @@ APR_DECLARE(apr_status_t) apr_sendfile(apr_socket_t *sock, apr_file_t *file, { apr_status_t status = APR_SUCCESS; apr_ssize_t rv; + apr_off_t curoff = *offset; DWORD dwFlags = 0; DWORD nbytes; OVERLAPPED overlapped; @@ -258,9 +259,6 @@ APR_DECLARE(apr_status_t) apr_sendfile(apr_socket_t *sock, apr_file_t *file, /* Initialize the overlapped structure */ memset(&overlapped,'\0', sizeof(overlapped)); - if (offset && *offset) { - overlapped.Offset = *offset; - } #ifdef WAIT_FOR_EVENT overlapped.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); #endif @@ -310,6 +308,10 @@ APR_DECLARE(apr_status_t) apr_sendfile(apr_socket_t *sock, apr_file_t *file, } } + overlapped.Offset = (DWORD)(curoff); +#if APR_HAS_LARGE_FILES + overlapped.OffsetHigh = (DWORD)(curoff >> 32); +#endif rv = TransmitFile(sock->sock, /* socket */ file->filehand, /* open file descriptor of the file to be sent */ nbytes, /* number of bytes to send. 0=send all */ @@ -357,7 +359,7 @@ APR_DECLARE(apr_status_t) apr_sendfile(apr_socket_t *sock, apr_file_t *file, } bytes_to_send -= nbytes; *len += nbytes; - overlapped.Offset += nbytes; + curoff += nbytes; } |