// FIXIT-L why is this being set? we don't search file data until
// we set it again below after decoding. can it be deleted?
- if ( decode_conf && (!decode_conf->is_ignore_data()))
+ if ( !is_http && decode_conf && (!decode_conf->is_ignore_data()))
set_file_data(start, (end - start));
if (data_state == STATE_DATA_HEADER)
if ( result != DECODE_SUCCESS )
decompress_alert();
- set_file_data(decomp_buffer, decomp_buf_size);
+ if (!is_http)
+ set_file_data(decomp_buffer, decomp_buf_size);
}
/*Process file type/file signature*/
delete mime_hdr_search_mpse;
}
-MimeSession::MimeSession(DecodeConfig* dconf, MailLogConfig* lconf, uint64_t base_file_id)
+MimeSession::MimeSession(DecodeConfig* dconf, MailLogConfig* lconf, uint64_t base_file_id,
+ bool session_is_http)
{
decode_conf = dconf;
log_config = lconf;
log_state = new MailLogState(log_config);
session_base_file_id = base_file_id;
+ is_http = session_is_http;
reset_mime_paf_state(&mime_boundary);
}
class SO_PUBLIC MimeSession
{
public:
- MimeSession(DecodeConfig*, MailLogConfig*, uint64_t base_file_id=0);
+ MimeSession(DecodeConfig*, MailLogConfig*, uint64_t base_file_id=0, bool session_is_http=false);
virtual ~MimeSession();
MimeSession(const MimeSession&) = delete;
MailLogState* log_state = nullptr;
MimeStats* mime_stats = nullptr;
std::string filename;
+ bool is_http = false;
bool continue_inspecting_file = true;
// This counter is not an accurate count of files; used only for creating a unique mime_file_id
uint32_t file_counter = 0;
{
if (boundary_present(content_type))
{
- session_data->mime_state[source_id] = new MimeSession(&FileService::decode_conf, &mime_conf,
- transaction->get_file_processing_id(source_id));
+ session_data->mime_state[source_id] = new MimeSession(&FileService::decode_conf,
+ &mime_conf, transaction->get_file_processing_id(source_id), true);
// Show file processing the Content-Type header as if it were regular data.
// This will enable it to find the boundary string.
// FIXIT-L develop a proper interface for passing the boundary string.