linux-dreambox: remove unused code
[opendreambox.git] / meta-opendreambox / recipes-extended / lighttpd / lighttpd / stat_cache-fix-reading-block-devices.patch
1 From 3da9751679b2b954c0e0c480c4b2260e29498ee9 Mon Sep 17 00:00:00 2001
2 From: Andreas Oberritter <obi@opendreambox.org>
3 Date: Mon, 18 Aug 2014 01:35:17 +0200
4 Subject: [PATCH] stat_cache: fix reading block devices
5
6 Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
7 ---
8  src/stat_cache.c | 10 ++++++++++
9  1 file changed, 10 insertions(+)
10
11 diff --git a/src/stat_cache.c b/src/stat_cache.c
12 index 480aae4..45618d3 100644
13 --- a/src/stat_cache.c
14 +++ b/src/stat_cache.c
15 @@ -5,6 +5,7 @@
16  
17  #include <sys/types.h>
18  #include <sys/stat.h>
19 +#include <sys/mount.h>
20  
21  #include <stdlib.h>
22  #include <string.h>
23 @@ -617,6 +618,15 @@ handler_t stat_cache_get_entry(server *srv, connection *con, buffer *name, stat_
24                 etag_create(sce->etag, &(sce->st), con->etag_flags);
25         } else if (S_ISDIR(st.st_mode)) {
26                 etag_create(sce->etag, &(sce->st), con->etag_flags);
27 +       } else if (S_ISBLK(st.st_mode)) {
28 +               /* set size for block devices */
29 +               fd = open(name->ptr, O_RDONLY);
30 +               if (fd >= 0) {
31 +                       uint64_t size;
32 +                       if (ioctl(fd, BLKGETSIZE64, &size) == 0)
33 +                               sce->st.st_size = size;
34 +                       close(fd);
35 +               }
36         }
37  
38  #ifdef HAVE_FAM_H
39 -- 
40 1.9.1
41