]> granicus.if.org Git - apache/commitdiff
When caching file handles (vs. mmaps) reset the file pointer
authorJeff Trawick <trawick@apache.org>
Wed, 8 Nov 2000 23:07:32 +0000 (23:07 +0000)
committerJeff Trawick <trawick@apache.org>
Wed, 8 Nov 2000 23:07:32 +0000 (23:07 +0000)
before serving, since a filter may have caused the file pointer
to advance.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86876 13f79535-47bb-0310-9956-ffa450edef68

modules/cache/mod_file_cache.c

index f8ceed684b6a686a2b1d217d8189acd7cb9f1367..d2c0ee92d3c1837a854cb75df9f9c5c08744f3f3 100644 (file)
@@ -401,6 +401,14 @@ static int sendfile_handler(request_rec *r, a_file *file)
 #if APR_HAS_SENDFILE
     apr_size_t nbytes;
     apr_status_t rv = APR_EINIT;
+    apr_off_t offset = 0;
+
+    rv = apr_seek(file->file, APR_SET, &offset);
+    if (rv != APR_SUCCESS) {
+        ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
+                      "seek failed");
+        return HTTP_INTERNAL_SERVER_ERROR;
+    }
 
     rv = ap_send_fd(file->file, r, 0, file->finfo.size, &nbytes);
     if (rv != APR_SUCCESS) {