Build with largefile support
authorJo-Philipp Wich <jow@openwrt.org>
Sun, 18 Jan 2015 15:07:04 +0000 (16:07 +0100)
committerJo-Philipp Wich <jow@openwrt.org>
Sun, 18 Jan 2015 16:08:21 +0000 (17:08 +0100)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
CMakeLists.txt
file.c

index ec45c52ece76a10fd99c2079d635905327935f3a..8c285dcb8c8c1471628fb2fe0288ac256d924dd3 100644 (file)
@@ -5,7 +5,7 @@ PROJECT(uhttpd C)
 INCLUDE (CheckFunctionExists)
 
 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-ADD_DEFINITIONS(-Os -Wall -Werror -Wmissing-declarations --std=gnu99 -g3)
+ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64 -Os -Wall -Werror -Wmissing-declarations --std=gnu99 -g3)
 
 OPTION(TLS_SUPPORT "TLS support" ON)
 OPTION(LUA_SUPPORT "Lua support" ON)
diff --git a/file.c b/file.c
index 60dfdfa96705100029ea75a04eb537ac6f70229d..73e5a5f47b1d6d4312703dbddfc5ca96a1ccaa9b 100644 (file)
--- a/file.c
+++ b/file.c
@@ -26,6 +26,7 @@
 #include <time.h>
 #include <strings.h>
 #include <dirent.h>
+#include <stdint.h>
 
 #include <libubox/blobmsg.h>
 
@@ -287,10 +288,8 @@ static const char * uh_file_mime_lookup(const char *path)
 
 static const char * uh_file_mktag(struct stat *s, char *buf, int len)
 {
-       snprintf(buf, len, "\"%x-%x-%x\"",
-                        (unsigned int) s->st_ino,
-                        (unsigned int) s->st_size,
-                        (unsigned int) s->st_mtime);
+       snprintf(buf, len, "\"%" PRIx64 "-%" PRIx64 "-%" PRIx64 "\"",
+                s->st_ino, s->st_size, s->st_mtime);
 
        return buf;
 }
@@ -580,7 +579,7 @@ static void uh_file_data(struct client *cl, struct path_info *pi, int fd)
        ustream_printf(cl->us, "Content-Type: %s\r\n",
                           uh_file_mime_lookup(pi->name));
 
-       ustream_printf(cl->us, "Content-Length: %i\r\n\r\n",
+       ustream_printf(cl->us, "Content-Length: %" PRIu64 "\r\n\r\n",
                           pi->stat.st_size);