diff --git a/lib/transfer.c b/lib/transfer.c index 0fc57549619897a628b355551254ee6d89024d40..df52014462024b8833fc3e495e27dbce6ae27d58 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -408,11 +408,21 @@ Transfer(struct connectdata *c_conn) } data->progress.httpcode = httpcode; data->progress.httpversion = httpversion; + if(httpversion == 0) /* Default action for HTTP/1.0 must be to close, unless we get one of those fancy headers that tell us the server keeps it open for us! */ conn->bits.close = TRUE; + + if (httpcode == 304) + /* (quote from RFC2616, section 10.3.5): + * The 304 response MUST NOT contain a + * message-body, and thus is always + * terminated by the first empty line + * after the header fields. + */ + conn->size=0; } else { header = FALSE; /* this is not a header line */