That does indeed fix the content length in the header. Thanks!
On Tue, May 19, 2015 at 06:08:37PM +0200, Mark Kettenis wrote: > > The problem seems to be either low-memory or i386 related. I tested on > > an amd64 machine with 3GB RAM, and the problem goes away with 2+ GB > > files. > > Does the diff below fix the issue? > > Index: httpd.h > =================================================================== > RCS file: /cvs/src/usr.sbin/httpd/httpd.h,v > retrieving revision 1.82 > diff -u -p -r1.82 httpd.h > --- httpd.h 15 Mar 2015 22:08:45 -0000 1.82 > +++ httpd.h 19 May 2015 15:58:12 -0000 > @@ -557,7 +557,7 @@ int server_headers(struct client *, voi > int (*)(struct client *, struct kv *, void *), void *); > int server_writeresponse_http(struct client *); > int server_response_http(struct client *, u_int, struct media_type *, > - size_t, time_t); > + off_t, time_t); > void server_reset_http(struct client *); > void server_close_http(struct client *); > int server_response(struct httpd *, struct client *); > Index: server_http.c > =================================================================== > RCS file: /cvs/src/usr.sbin/httpd/server_http.c,v > retrieving revision 1.79 > diff -u -p -r1.79 server_http.c > --- server_http.c 3 May 2015 18:39:58 -0000 1.79 > +++ server_http.c 19 May 2015 15:58:12 -0000 > @@ -1133,7 +1133,7 @@ server_getlocation(struct client *clt, c > > int > server_response_http(struct client *clt, u_int code, > - struct media_type *media, size_t size, time_t mtime) > + struct media_type *media, off_t size, time_t mtime) > { > struct http_descriptor *desc = clt->clt_descreq; > struct http_descriptor *resp = clt->clt_descresp; > @@ -1174,7 +1174,7 @@ server_response_http(struct client *clt, > /* Set content length, if specified */ > if ((cl = > kv_add(&resp->http_headers, "Content-Length", NULL)) == NULL || > - kv_set(cl, "%ld", size) == -1) > + kv_set(cl, "%lld", size) == -1) > return (-1); > > /* Set last modification time */