"Due to a wrong format parameter in a printf httpd does not work when
authorGlenn L McGrath <bug1@ihug.co.nz>
Fri, 29 Aug 2003 15:53:23 +0000 (15:53 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Fri, 29 Aug 2003 15:53:23 +0000 (15:53 -0000)
compiled for with CONFIG_LFS (large file support).
The attached patch suggested by Vladimir fixes that." - Steven Scholz

networking/httpd.c

index d58414b558328abf3372ea7b817bd7372d8a0069..8c87e7e9188e50659f21d39482dd57c3c5fb22f6 100644 (file)
@@ -127,6 +127,13 @@ static const char default_path_httpd_conf[] = "/etc";
 static const char httpd_conf[] = "httpd.conf";
 static const char home[] = "./";
 
+#ifdef CONFIG_LFS
+# define cont_l_fmt "%lld"
+#else
+# define cont_l_fmt "%ld"
+#endif
+
+
 // Note: bussybox xfuncs are not used because we want the server to keep running
 //       if something bad happens due to a malformed user request.
 //       As a result, all memory allocation after daemonize
@@ -932,7 +939,7 @@ static int sendHeaders(HttpResponseNum responseNum)
 #endif
   if (config->ContentLength != -1) {    /* file */
     strftime(timeStr, sizeof(timeStr), RFC1123FMT, gmtime(&config->last_mod));
-    len += sprintf(buf+len, "Last-Modified: %s\r\n%s %ld\r\n",
+    len += sprintf(buf+len, "Last-Modified: %s\r\n%s " cont_l_fmt "\r\n",
                              timeStr, Content_length, config->ContentLength);
   }
   strcat(buf, "\r\n");