+2012-01-27 Gijs van Tulder <gvtulder@gmail.com>
+
+ * retr.c (fd_read_body): If the response is chunked, the chunk
+ headers are now written to the WARC file, making the WARC file
+ an exact copy of the HTTP response.
+
2012-01-27 Gijs van Tulder <gvtulder@gmail.com>
* retr.c (fd_read_body): Fix a memory leak with chunked responses.
the data is stored to ELAPSED.
If OUT2 is non-NULL, the contents is also written to OUT2.
+ OUT2 will get an exact copy of the response: if this is a chunked
+ response, everything -- including the chunk headers -- is written
+ to OUT2. (OUT will only get the unchunked response.)
The function exits and returns the amount of data read. In case of
error while reading data, -1 is returned. In case of error while
ret = -1;
break;
}
+ else if (out2 != NULL)
+ fwrite (line, 1, strlen (line), out2);
remaining_chunk_size = strtol (line, &endl, 16);
xfree (line);
if (line == NULL)
ret = -1;
else
- xfree (line);
+ {
+ if (out2 != NULL)
+ fwrite (line, 1, strlen (line), out2);
+ xfree (line);
+ }
break;
}
}
break;
}
else
- xfree (line);
+ {
+ if (out2 != NULL)
+ fwrite (line, 1, strlen (line), out2);
+ xfree (line);
+ }
}
}
}