session_data->half_reset(SRC_SERVER);
}
// If there is a Transfer-Encoding header, see if the last of the encoded values is "chunked".
+ // FIXIT-L do something with Transfer-Encoding header with chunked present but not last.
else if ((get_header_value_norm(HEAD_TRANSFER_ENCODING).length > 0) &&
((*(int64_t *)(get_header_value_norm(HEAD_TRANSFER_ENCODING).start +
(get_header_value_norm(HEAD_TRANSFER_ENCODING).length - 8))) == TRANSCODE_CHUNKED) ) {
for (int i=0; i < HTTP_BUFFER_MAX; i++) {
if ((1 << i) & http_mask) Field(http_buffer[i].length, http_buffer[i].buf).print(output, http_buffer_name[i]);
}
+ if (g_file_data.len > 0) {
+ Field(g_file_data.len, g_file_data.data).print(output, "file_data");
+ }
fprintf(output, "\n");
session_data->show(output);
fprintf(output, "\n");
}
}
-
-
-
-
-
-
return SCAN_FOUND;
}
for (uint32_t k = 0; k < length; k++) {
+ // FIXIT-M learn to support white space before chunk header extension semicolon
if (buffer[k] == '\n') {
if (octets_seen + k == num_crlf) {
// \r\n or \n leftover from previous chunk