From: huica Date: Thu, 25 Jun 2015 21:32:59 +0000 (-0400) Subject: update file id X-Git-Tag: 3.0.0-233~828^2~76 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee47391bd75e43d01e6e3efbc2f0daec2791082d;p=thirdparty%2Fsnort3.git update file id --- diff --git a/src/file_api/file_service.cc b/src/file_api/file_service.cc index bdf30d126..98bcd6ad5 100644 --- a/src/file_api/file_service.cc +++ b/src/file_api/file_service.cc @@ -189,8 +189,6 @@ void FileAPIPostInit(void) if ( file_capture_enabled) FileCapture::init_mempool(file_config->file_capture_memcap, file_config->file_capture_block_size); - - //file_sevice_reconfig_set(false); } static void start_file_processing(void) @@ -450,6 +448,8 @@ static bool process_file_context(FileContext* context, Packet* pkt, Flow* flow, return false; } + context->set_file_config(snort_conf->file_config); + /*file type id*/ if (context->is_file_type_enabled()) { @@ -557,10 +557,7 @@ static void enable_file_type(File_type_callback_func callback) if (!file_type_id_enabled) { file_type_id_enabled = true; - // file_sevice_reconfig_set(true); start_file_processing(); - // FIXIT-L snort++ does not yet output startup configuration - //LogMessage("File service: file type enabled.\n"); } } @@ -570,11 +567,7 @@ static void enable_file_signature(File_signature_callback_func callback) if (!file_signature_enabled) { file_signature_enabled = true; -#ifdef SNORT_RELOAD - file_sevice_reconfig_set(true); -#endif start_file_processing(); - //LogMessage("File service: file signature enabled.\n"); } } @@ -584,11 +577,6 @@ static void enable_file_capture(File_signature_callback_func callback) if (!file_capture_enabled) { file_capture_enabled = true; -#ifdef SNORT_RELOAD - file_sevice_reconfig_set(true); -#endif - //LogMessage("File service: file capture enabled.\n"); - /* Enable file signature*/ enable_file_signature(callback); } } diff --git a/src/file_api/libs/file_identifier.cc b/src/file_api/libs/file_identifier.cc index 4186bee0a..6fe7e5673 100644 --- a/src/file_api/libs/file_identifier.cc +++ b/src/file_api/libs/file_identifier.cc @@ -339,7 +339,7 @@ uint32_t FileIdenfifier::find_file_type_id(const uint8_t* buf, int len, uint64_t { IdentifierNode* current; uint64_t end; - uint32_t file_type_id; + uint32_t file_type_id = SNORT_FILE_TYPE_CONTINUE; if ((!context)||(!buf)||(len <= 0)) return 0; @@ -347,7 +347,7 @@ uint32_t FileIdenfifier::find_file_type_id(const uint8_t* buf, int len, uint64_t if (!(*context)) *context = (void*)(identifier_root); - current = (IdentifierNode*)context; + current = (IdentifierNode*)(*context); end = file_offset + len; diff --git a/src/file_api/libs/file_lib.cc b/src/file_api/libs/file_lib.cc index fc1b3b6ef..d21176fa1 100644 --- a/src/file_api/libs/file_lib.cc +++ b/src/file_api/libs/file_lib.cc @@ -314,6 +314,17 @@ uint8_t* FileContext::get_file_sig_sha256() return (sha256); } +void FileContext::set_file_config(FileConfig* config) +{ + file_config = config; +} + +FileConfig* FileContext::get_file_config() +{ + return file_config; +} + + const char* file_type_name(void* conf, uint32_t id) { FileMagicRule* info = NULL; diff --git a/src/file_api/libs/file_lib.h b/src/file_api/libs/file_lib.h index 8c791521f..5563ccc7b 100644 --- a/src/file_api/libs/file_lib.h +++ b/src/file_api/libs/file_lib.h @@ -94,6 +94,8 @@ public: uint8_t* get_file_sig_sha256(); void set_file_id(uint32_t size); uint32_t get_file_id(); + void set_file_config(FileConfig* file_config); + FileConfig* get_file_config(); void print_file_sha256(); void print(); @@ -121,7 +123,6 @@ private: inline int get_data_size_from_depth_limit(FileProcessType type, int data_size); inline void finalize_file_type (); - }; const char* file_type_name(void* conf, uint32_t id);