mirror of
https://github.com/zeek/zeek.git
synced 2025-10-04 15:48:19 +00:00
Giving analyzer/ its own CMakeLists.txt.
Also moving src/analyzer.bif to src/analyzer/analyzer.bif, along with the infrastructure to build/incude bif code at other locations. We should generally move to having per-directory CMakeLists.txt. I'll convert the others over later.
This commit is contained in:
parent
bccaea6883
commit
897be0e147
10 changed files with 83 additions and 40 deletions
|
@ -103,7 +103,6 @@ target_link_libraries(bifcl)
|
||||||
include(BifCl)
|
include(BifCl)
|
||||||
|
|
||||||
set(BIF_SRCS
|
set(BIF_SRCS
|
||||||
analyzer.bif
|
|
||||||
bro.bif
|
bro.bif
|
||||||
logging.bif
|
logging.bif
|
||||||
input.bif
|
input.bif
|
||||||
|
@ -158,6 +157,17 @@ binpac_target(syslog.pac
|
||||||
binpac_target(modbus.pac
|
binpac_target(modbus.pac
|
||||||
modbus-protocol.pac modbus-analyzer.pac)
|
modbus-protocol.pac modbus-analyzer.pac)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
## Including subdirectories.
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
add_subdirectory(analyzer)
|
||||||
|
|
||||||
|
set(bro_SUBDIRS
|
||||||
|
$<TARGET_OBJECTS:bro_analyzer>
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
## Including plug-ins that are compiled in statically.
|
## Including plug-ins that are compiled in statically.
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -389,11 +399,6 @@ set(bro_SRCS
|
||||||
plugin/Manager.cc
|
plugin/Manager.cc
|
||||||
plugin/Plugin.cc
|
plugin/Plugin.cc
|
||||||
|
|
||||||
analyzer/Analyzer.cc
|
|
||||||
analyzer/Manager.cc
|
|
||||||
analyzer/Component.cc
|
|
||||||
analyzer/Tag.cc
|
|
||||||
|
|
||||||
protocols/BuiltInAnalyzers.cc
|
protocols/BuiltInAnalyzers.cc
|
||||||
|
|
||||||
nb_dns.c
|
nb_dns.c
|
||||||
|
@ -402,7 +407,7 @@ set(bro_SRCS
|
||||||
|
|
||||||
collect_headers(bro_HEADERS ${bro_SRCS})
|
collect_headers(bro_HEADERS ${bro_SRCS})
|
||||||
|
|
||||||
add_executable(bro ${bro_SRCS} ${bro_HEADERS} ${bro_PLUGIN_OBJECT_LIBS})
|
add_executable(bro ${bro_SRCS} ${bro_HEADERS} ${bro_PLUGIN_OBJECT_LIBS} ${bro_SUBDIRS})
|
||||||
|
|
||||||
target_link_libraries(bro ${brodeps} ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(bro ${brodeps} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
|
|
@ -548,14 +548,12 @@ void builtin_error(const char* msg, BroObj* arg)
|
||||||
reporter->Error(msg, arg);
|
reporter->Error(msg, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "analyzer.bif.func_h"
|
|
||||||
#include "bro.bif.func_h"
|
#include "bro.bif.func_h"
|
||||||
#include "logging.bif.func_h"
|
#include "logging.bif.func_h"
|
||||||
#include "input.bif.func_h"
|
#include "input.bif.func_h"
|
||||||
#include "reporter.bif.func_h"
|
#include "reporter.bif.func_h"
|
||||||
#include "strings.bif.func_h"
|
#include "strings.bif.func_h"
|
||||||
|
|
||||||
#include "analyzer.bif.func_def"
|
|
||||||
#include "bro.bif.func_def"
|
#include "bro.bif.func_def"
|
||||||
#include "logging.bif.func_def"
|
#include "logging.bif.func_def"
|
||||||
#include "input.bif.func_def"
|
#include "input.bif.func_def"
|
||||||
|
@ -571,7 +569,6 @@ void init_builtin_funcs()
|
||||||
var_sizes = internal_type("var_sizes")->AsTableType();
|
var_sizes = internal_type("var_sizes")->AsTableType();
|
||||||
gap_info = internal_type("gap_info")->AsRecordType();
|
gap_info = internal_type("gap_info")->AsRecordType();
|
||||||
|
|
||||||
#include "analyzer.bif.func_init"
|
|
||||||
#include "bro.bif.func_init"
|
#include "bro.bif.func_init"
|
||||||
#include "logging.bif.func_init"
|
#include "logging.bif.func_init"
|
||||||
#include "input.bif.func_init"
|
#include "input.bif.func_init"
|
||||||
|
|
|
@ -238,7 +238,6 @@ TableType* record_field_table;
|
||||||
|
|
||||||
StringVal* cmd_line_bpf_filter;
|
StringVal* cmd_line_bpf_filter;
|
||||||
|
|
||||||
#include "analyzer.bif.netvar_def"
|
|
||||||
#include "const.bif.netvar_def"
|
#include "const.bif.netvar_def"
|
||||||
#include "types.bif.netvar_def"
|
#include "types.bif.netvar_def"
|
||||||
#include "event.bif.netvar_def"
|
#include "event.bif.netvar_def"
|
||||||
|
|
|
@ -248,7 +248,6 @@ extern void init_general_global_var();
|
||||||
extern void init_event_handlers();
|
extern void init_event_handlers();
|
||||||
extern void init_net_var();
|
extern void init_net_var();
|
||||||
|
|
||||||
#include "analyzer.bif.netvar_h"
|
|
||||||
#include "const.bif.netvar_h"
|
#include "const.bif.netvar_h"
|
||||||
#include "types.bif.netvar_h"
|
#include "types.bif.netvar_h"
|
||||||
#include "event.bif.netvar_h"
|
#include "event.bif.netvar_h"
|
||||||
|
|
16
src/analyzer/CMakeLists.txt
Normal file
16
src/analyzer/CMakeLists.txt
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
|
||||||
|
include_directories(BEFORE
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set(analyzer_SRCS
|
||||||
|
Analyzer.cc
|
||||||
|
Manager.cc
|
||||||
|
Component.cc
|
||||||
|
Tag.cc
|
||||||
|
)
|
||||||
|
|
||||||
|
bif_target_for_subdir(analyzer.bif)
|
||||||
|
|
||||||
|
add_library(bro_analyzer OBJECT ${analyzer_SRCS} ${BIF_OUTPUT_CC} ${BIF_OUTPUT_H})
|
|
@ -89,12 +89,18 @@ void Manager::Init()
|
||||||
for ( std::list<Component*>::const_iterator i = analyzers.begin(); i != analyzers.end(); i++ )
|
for ( std::list<Component*>::const_iterator i = analyzers.begin(); i != analyzers.end(); i++ )
|
||||||
RegisterAnalyzerComponent(*i);
|
RegisterAnalyzerComponent(*i);
|
||||||
|
|
||||||
// Caache these tags.
|
// Cache these tags.
|
||||||
analyzer_backdoor = GetAnalyzerTag("BACKDOOR");
|
analyzer_backdoor = GetAnalyzerTag("BACKDOOR");
|
||||||
analyzer_connsize = GetAnalyzerTag("CONNSIZE");
|
analyzer_connsize = GetAnalyzerTag("CONNSIZE");
|
||||||
analyzer_interconn = GetAnalyzerTag("INTERCONN");
|
analyzer_interconn = GetAnalyzerTag("INTERCONN");
|
||||||
analyzer_stepping = GetAnalyzerTag("STEPPINGSTONE");
|
analyzer_stepping = GetAnalyzerTag("STEPPINGSTONE");
|
||||||
analyzer_tcpstats = GetAnalyzerTag("TCPSTATS");
|
analyzer_tcpstats = GetAnalyzerTag("TCPSTATS");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Manager::InitBifs()
|
||||||
|
{
|
||||||
|
#include "analyzer.bif.init.cc"
|
||||||
}
|
}
|
||||||
|
|
||||||
void Manager::DumpDebug()
|
void Manager::DumpDebug()
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
#include "../net_util.h"
|
#include "../net_util.h"
|
||||||
#include "../IP.h"
|
#include "../IP.h"
|
||||||
|
|
||||||
|
#include "analyzer/analyzer.bif.h"
|
||||||
|
|
||||||
namespace analyzer {
|
namespace analyzer {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,6 +61,12 @@ public:
|
||||||
*/
|
*/
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes the analyze-related BiFs. Must be called after scripts
|
||||||
|
* are parsed.
|
||||||
|
*/
|
||||||
|
void InitBifs();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finished the manager's operations.
|
* Finished the manager's operations.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -139,6 +139,7 @@ extern int yyparse();
|
||||||
char* input_filename = 0;
|
char* input_filename = 0;
|
||||||
char* input_filename_with_path = 0;
|
char* input_filename_with_path = 0;
|
||||||
char* plugin = 0;
|
char* plugin = 0;
|
||||||
|
int alternative_mode = 0;
|
||||||
|
|
||||||
FILE* fp_bro_init = 0;
|
FILE* fp_bro_init = 0;
|
||||||
FILE* fp_func_def = 0;
|
FILE* fp_func_def = 0;
|
||||||
|
@ -176,7 +177,7 @@ void usage()
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_plugin_mode()
|
void init_alternative_mode()
|
||||||
{
|
{
|
||||||
fp_bro_init = open_output_file("bro");
|
fp_bro_init = open_output_file("bro");
|
||||||
fp_func_h = open_output_file("h");
|
fp_func_h = open_output_file("h");
|
||||||
|
@ -191,8 +192,8 @@ void init_plugin_mode()
|
||||||
char auto_gen_comment[n];
|
char auto_gen_comment[n];
|
||||||
|
|
||||||
snprintf(auto_gen_comment, n,
|
snprintf(auto_gen_comment, n,
|
||||||
"This file was automatically generated by bifcl from %s (plugin mode).",
|
"This file was automatically generated by bifcl from %s (%s mode).",
|
||||||
input_filename_with_path);
|
input_filename_with_path, plugin ? "plugin" : "subdir");
|
||||||
|
|
||||||
fprintf(fp_bro_init, "# %s\n\n", auto_gen_comment);
|
fprintf(fp_bro_init, "# %s\n\n", auto_gen_comment);
|
||||||
fprintf(fp_func_def, "// %s\n\n", auto_gen_comment);
|
fprintf(fp_func_def, "// %s\n\n", auto_gen_comment);
|
||||||
|
@ -225,6 +226,8 @@ void init_plugin_mode()
|
||||||
if ( dot )
|
if ( dot )
|
||||||
*dot = '\0';
|
*dot = '\0';
|
||||||
|
|
||||||
|
if ( plugin )
|
||||||
|
{
|
||||||
fprintf(fp_func_init, "\n");
|
fprintf(fp_func_init, "\n");
|
||||||
fprintf(fp_func_init, "#include <list>\n");
|
fprintf(fp_func_init, "#include <list>\n");
|
||||||
fprintf(fp_func_init, "#include <string>\n");
|
fprintf(fp_func_init, "#include <string>\n");
|
||||||
|
@ -237,30 +240,39 @@ void init_plugin_mode()
|
||||||
fprintf(fp_func_init, "\tstd::list<std::pair<std::string, int> > bifs;\n");
|
fprintf(fp_func_init, "\tstd::list<std::pair<std::string, int> > bifs;\n");
|
||||||
fprintf(fp_func_init, "\n");
|
fprintf(fp_func_init, "\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void finish_plugin_mode()
|
void finish_alternative_mode()
|
||||||
{
|
{
|
||||||
fprintf(fp_func_h, "\n");
|
fprintf(fp_func_h, "\n");
|
||||||
fprintf(fp_func_h, "#endif\n");
|
fprintf(fp_func_h, "#endif\n");
|
||||||
|
|
||||||
|
if ( plugin )
|
||||||
|
{
|
||||||
fprintf(fp_func_init, "\n");
|
fprintf(fp_func_init, "\n");
|
||||||
fprintf(fp_func_init, "\treturn bifs;\n");
|
fprintf(fp_func_init, "\treturn bifs;\n");
|
||||||
fprintf(fp_func_init, "\t}\n");
|
fprintf(fp_func_init, "\t}\n");
|
||||||
fprintf(fp_func_init, "} }\n");
|
fprintf(fp_func_init, "} }\n");
|
||||||
fprintf(fp_func_init, "\n");
|
fprintf(fp_func_init, "\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
char opt;
|
char opt;
|
||||||
|
|
||||||
while ( (opt = getopt(argc, argv, "p:")) != -1 )
|
while ( (opt = getopt(argc, argv, "p:s")) != -1 )
|
||||||
{
|
{
|
||||||
switch ( opt ) {
|
switch ( opt ) {
|
||||||
case 'p':
|
case 'p':
|
||||||
|
alternative_mode = 1;
|
||||||
plugin = optarg;
|
plugin = optarg;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 's':
|
||||||
|
alternative_mode = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
usage();
|
usage();
|
||||||
}
|
}
|
||||||
|
@ -284,7 +296,7 @@ int main(int argc, char* argv[])
|
||||||
if ( slash )
|
if ( slash )
|
||||||
input_filename = slash + 1;
|
input_filename = slash + 1;
|
||||||
|
|
||||||
if ( ! plugin )
|
if ( ! alternative_mode )
|
||||||
{
|
{
|
||||||
fp_bro_init = open_output_file("bro");
|
fp_bro_init = open_output_file("bro");
|
||||||
fp_func_h = open_output_file("func_h");
|
fp_func_h = open_output_file("func_h");
|
||||||
|
@ -311,13 +323,13 @@ int main(int argc, char* argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
init_plugin_mode();
|
init_alternative_mode();
|
||||||
|
|
||||||
yy_switch_to_buffer(yy_create_buffer(fp_input, YY_BUF_SIZE));
|
yy_switch_to_buffer(yy_create_buffer(fp_input, YY_BUF_SIZE));
|
||||||
yyparse();
|
yyparse();
|
||||||
|
|
||||||
if ( plugin )
|
if ( alternative_mode )
|
||||||
finish_plugin_mode();
|
finish_alternative_mode();
|
||||||
|
|
||||||
fclose(fp_input);
|
fclose(fp_input);
|
||||||
close_all_output_files();
|
close_all_output_files();
|
||||||
|
@ -339,7 +351,7 @@ void close_all_output_files(void)
|
||||||
close_if_open(&fp_func_def);
|
close_if_open(&fp_func_def);
|
||||||
close_if_open(&fp_func_init);
|
close_if_open(&fp_func_init);
|
||||||
|
|
||||||
if ( ! plugin )
|
if ( ! alternative_mode )
|
||||||
{
|
{
|
||||||
close_if_open(&fp_netvar_h);
|
close_if_open(&fp_netvar_h);
|
||||||
close_if_open(&fp_netvar_def);
|
close_if_open(&fp_netvar_def);
|
||||||
|
|
|
@ -836,6 +836,7 @@ int main(int argc, char** argv)
|
||||||
|
|
||||||
yyparse();
|
yyparse();
|
||||||
|
|
||||||
|
analyzer_mgr->InitBifs();
|
||||||
plugin_mgr->InitPluginsBif();
|
plugin_mgr->InitPluginsBif();
|
||||||
|
|
||||||
if ( print_plugins )
|
if ( print_plugins )
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue