changes from plan 9
diff --git a/src/libhttpd/date.c b/src/libhttpd/date.c
index 450f60f..3334957 100644
--- a/src/libhttpd/date.c
+++ b/src/libhttpd/date.c
@@ -197,6 +197,7 @@
 
 	strcpy(tm.zone, "GMT");
 	tm.tzoff = 0;
+	tm.yday = 0;
 	return tm2sec(&tm);
 }
 
diff --git a/src/libhttpd/hio.c b/src/libhttpd/hio.c
index a89f311..937997d 100644
--- a/src/libhttpd/hio.c
+++ b/src/libhttpd/hio.c
@@ -283,7 +283,7 @@
 
 	s = strchr(hxfers, buf[1]);
 	if(s == nil)
-		return 0;
+		return -1;
 	h->xferenc = s - hxfers;
 
 	t = h->start;
@@ -393,8 +393,8 @@
 	return n;
 }
 
-int
-hflush(Hio *h)
+static int
+_hflush(Hio *h, int dolength)
 {
 	uchar *s;
 	int w;
@@ -417,6 +417,8 @@
 		h->pos[1] = '\n';
 		w = &h->pos[2] - s;
 	}
+	if(dolength)
+		fprint(h->fd, "Content-Length: %d\r\n\r\n", w);
 	if(write(h->fd, s, w) != w){
 		h->state = Herr;
 		h->stop = h->pos;
@@ -428,6 +430,18 @@
 }
 
 int
+hflush(Hio *h)
+{
+	return _hflush(h, 0);
+}
+
+int
+hlflush(Hio* h)
+{
+	return _hflush(h, 1);
+}
+
+int
 hwrite(Hio *h, void *vbuf, int len)
 {
 	uchar *pos, *buf;