From c4f4df6a79a31b27620dde2c53316c2c3d0f2c6f Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Mon, 8 Aug 2011 13:40:43 -0400 Subject: [PATCH] Renaming the default loaded "init" scripts and added command line arg for "bare-mode" - bro.init was renamed to base/init-bare.bro and base/all.bro was renamed to init-default.bro. - To run in "bare mode" with only the init-bare.bro and no other scripts from base/, use either -b or --bare-mode. - The environment variable to run in "bare mode" has been removed. --- scripts/base/{bro.init => init-bare.bro} | 0 scripts/base/{all.bro => init-default.bro} | 15 ++++++--------- src/main.cc | 14 +++++++++++--- .../canonified_loaded_scripts.log | 4 ++-- .../policy/frameworks/logging/adapt-filter.bro | 2 +- .../policy/frameworks/logging/ascii-binary.bro | 2 +- .../policy/frameworks/logging/ascii-empty.bro | 2 +- .../policy/frameworks/logging/ascii-escape.bro | 2 +- .../policy/frameworks/logging/ascii-options.bro | 2 +- .../frameworks/logging/ascii-timestamps.bro | 2 +- .../policy/frameworks/logging/attr-extend.bro | 2 +- testing/btest/policy/frameworks/logging/attr.bro | 2 +- .../policy/frameworks/logging/disable-stream.bro | 2 +- .../policy/frameworks/logging/empty-event.bro | 2 +- .../btest/policy/frameworks/logging/events.bro | 2 +- .../btest/policy/frameworks/logging/exclude.bro | 2 +- testing/btest/policy/frameworks/logging/file.bro | 2 +- .../btest/policy/frameworks/logging/include.bro | 2 +- .../btest/policy/frameworks/logging/no-local.bro | 2 +- .../btest/policy/frameworks/logging/path-func.bro | 2 +- testing/btest/policy/frameworks/logging/pred.bro | 2 +- .../btest/policy/frameworks/logging/remove.bro | 2 +- .../policy/frameworks/logging/rotate-custom.bro | 2 +- .../btest/policy/frameworks/logging/stdout.bro | 2 +- .../policy/frameworks/logging/test-logging.bro | 2 +- testing/btest/policy/frameworks/logging/types.bro | 2 +- .../policy/frameworks/logging/unset-record.bro | 2 +- testing/btest/policy/frameworks/logging/vec.bro | 2 +- 28 files changed, 43 insertions(+), 38 deletions(-) rename scripts/base/{bro.init => init-bare.bro} (100%) rename scripts/base/{all.bro => init-default.bro} (74%) diff --git a/scripts/base/bro.init b/scripts/base/init-bare.bro similarity index 100% rename from scripts/base/bro.init rename to scripts/base/init-bare.bro diff --git a/scripts/base/all.bro b/scripts/base/init-default.bro similarity index 74% rename from scripts/base/all.bro rename to scripts/base/init-default.bro index 91dd3511c0..32201fddc0 100644 --- a/scripts/base/all.bro +++ b/scripts/base/init-default.bro @@ -1,10 +1,8 @@ ##! This script loads everything in the base/ script directory. If you want -##! to run Bro without all of these scripts loaded by default, you can define -##! the BRO_NO_BASE_SCRIPTS environment variable to any value. You can also -##! copy the "@load" lines from this script to your own script to load only -##! the scripts that you actually want. - -@if ( getenv("BRO_NO_BASE_SCRIPTS") == "" ) +##! to run Bro without all of these scripts loaded by default, you can use +##! the -b (--bare-mode) command line argument. You can also copy the "@load" +##! lines from this script to your own script to load only the scripts that +##! you actually want. @load base/utils/site @load base/utils/addrs @@ -17,7 +15,8 @@ @load base/utils/strings @load base/utils/thresholds -# This has some weird interplay between types and BiFs so it's loaded in bro.init +# This has some deep interplay between types and BiFs so it's +# loaded in base/init-bare.bro #@load base/frameworks/logging @load base/frameworks/notice @load base/frameworks/dpd @@ -40,5 +39,3 @@ @load base/protocols/ssh @load base/protocols/ssl @load base/protocols/syslog - -@endif \ No newline at end of file diff --git a/src/main.cc b/src/main.cc index 6d529ff5a9..2a36b4019a 100644 --- a/src/main.cc +++ b/src/main.cc @@ -138,6 +138,7 @@ void usage() fprintf(stderr, "bro version %s\n", bro_version()); fprintf(stderr, "usage: %s [options] [file ...]\n", prog); fprintf(stderr, " | policy file, or read stdin\n"); + fprintf(stderr, " -b|--bare-mode | don't load scripts from the base/ directory\n"); fprintf(stderr, " -d|--debug-policy | activate policy file debugging\n"); fprintf(stderr, " -e|--exec | augment loaded policies by given code\n"); fprintf(stderr, " -f|--filter | tcpdump filter\n"); @@ -349,6 +350,7 @@ int main(int argc, char** argv) char* seed_load_file = getenv("BRO_SEED_FILE"); char* seed_save_file = 0; char* user_pcap_filter = 0; + int bare_mode = false; int seed = 0; int dump_cfg = false; int to_xml = 0; @@ -358,6 +360,7 @@ int main(int argc, char** argv) int RE_level = 4; static struct option long_opts[] = { + {"bare-mode", no_argument, 0, 'b'}, {"debug-policy", no_argument, 0, 'd'}, {"dump-config", no_argument, 0, 'g'}, {"exec", required_argument, 0, 'e'}, @@ -438,7 +441,7 @@ int main(int argc, char** argv) opterr = 0; char opts[256]; - safe_strncpy(opts, "B:D:e:f:I:i:K:n:p:R:r:s:T:t:U:w:x:X:y:Y:z:CFGLOPSWdghvZ", + safe_strncpy(opts, "B:D:e:f:I:i:K:n:p:R:r:s:T:t:U:w:x:X:y:Y:z:CFGLOPSWbdghvZ", sizeof(opts)); #ifdef USE_PERFTOOLS @@ -448,6 +451,10 @@ int main(int argc, char** argv) int op; while ( (op = getopt_long(argc, argv, opts, long_opts, &long_optsind)) != EOF ) switch ( op ) { + case 'b': + bare_mode = true; + break; + case 'd': fprintf(stderr, "Policy file debugging ON.\n"); g_policy_debug = true; @@ -675,8 +682,9 @@ int main(int argc, char** argv) timer_mgr = new PQ_TimerMgr(""); // timer_mgr = new CQ_TimerMgr(); - add_input_file("base/bro.init"); - add_input_file("base/all.bro"); + add_input_file("base/init-bare.bro"); + if ( ! bare_mode ) + add_input_file("base/init-default.bro"); if ( optind == argc && read_files.length() == 0 && flow_files.length() == 0 && diff --git a/testing/btest/Baseline/policy.misc.default-loaded-scripts/canonified_loaded_scripts.log b/testing/btest/Baseline/policy.misc.default-loaded-scripts/canonified_loaded_scripts.log index 881c3c105f..73ef868313 100644 --- a/testing/btest/Baseline/policy.misc.default-loaded-scripts/canonified_loaded_scripts.log +++ b/testing/btest/Baseline/policy.misc.default-loaded-scripts/canonified_loaded_scripts.log @@ -1,5 +1,5 @@ # depth name -0 scripts/base/bro.init +0 scripts/base/init-bare.bro 1 build/src/const.bif.bro 1 build/src/types.bif.bro 1 build/src/strings.bif.bro @@ -10,7 +10,7 @@ 2 scripts/base/frameworks/logging/./main.bro 3 build/src/logging.bif.bro 2 scripts/base/frameworks/logging/./writers/ascii.bro -0 scripts/base/all.bro +0 scripts/base/init-default.bro 1 scripts/base/utils/site.bro 2 scripts/base/utils/./patterns.bro 1 scripts/base/utils/addrs.bro diff --git a/testing/btest/policy/frameworks/logging/adapt-filter.bro b/testing/btest/policy/frameworks/logging/adapt-filter.bro index 439913c7a8..2fc00dffb0 100644 --- a/testing/btest/policy/frameworks/logging/adapt-filter.bro +++ b/testing/btest/policy/frameworks/logging/adapt-filter.bro @@ -1,5 +1,5 @@ -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh-new-default.log # @TEST-EXEC: test '!' -e ssh.log diff --git a/testing/btest/policy/frameworks/logging/ascii-binary.bro b/testing/btest/policy/frameworks/logging/ascii-binary.bro index 0b44678089..36ad5a5a1b 100644 --- a/testing/btest/policy/frameworks/logging/ascii-binary.bro +++ b/testing/btest/policy/frameworks/logging/ascii-binary.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/ascii-empty.bro b/testing/btest/policy/frameworks/logging/ascii-empty.bro index d9eb1b477a..90f0b37a11 100644 --- a/testing/btest/policy/frameworks/logging/ascii-empty.bro +++ b/testing/btest/policy/frameworks/logging/ascii-empty.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log redef LogAscii::output_to_stdout = F; diff --git a/testing/btest/policy/frameworks/logging/ascii-escape.bro b/testing/btest/policy/frameworks/logging/ascii-escape.bro index c3d427f820..11b9d608b3 100644 --- a/testing/btest/policy/frameworks/logging/ascii-escape.bro +++ b/testing/btest/policy/frameworks/logging/ascii-escape.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log redef LogAscii::separator = "||"; diff --git a/testing/btest/policy/frameworks/logging/ascii-options.bro b/testing/btest/policy/frameworks/logging/ascii-options.bro index 9999757802..2914c95795 100644 --- a/testing/btest/policy/frameworks/logging/ascii-options.bro +++ b/testing/btest/policy/frameworks/logging/ascii-options.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log redef LogAscii::output_to_stdout = F; diff --git a/testing/btest/policy/frameworks/logging/ascii-timestamps.bro b/testing/btest/policy/frameworks/logging/ascii-timestamps.bro index 389a264c11..9b134d650f 100644 --- a/testing/btest/policy/frameworks/logging/ascii-timestamps.bro +++ b/testing/btest/policy/frameworks/logging/ascii-timestamps.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff test.log module Test; diff --git a/testing/btest/policy/frameworks/logging/attr-extend.bro b/testing/btest/policy/frameworks/logging/attr-extend.bro index a341973626..03f0996cef 100644 --- a/testing/btest/policy/frameworks/logging/attr-extend.bro +++ b/testing/btest/policy/frameworks/logging/attr-extend.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/attr.bro b/testing/btest/policy/frameworks/logging/attr.bro index 37e4641f91..247dbce2a2 100644 --- a/testing/btest/policy/frameworks/logging/attr.bro +++ b/testing/btest/policy/frameworks/logging/attr.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/disable-stream.bro b/testing/btest/policy/frameworks/logging/disable-stream.bro index 310845f5d7..2bd18ae991 100644 --- a/testing/btest/policy/frameworks/logging/disable-stream.bro +++ b/testing/btest/policy/frameworks/logging/disable-stream.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: test '!' -e ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/empty-event.bro b/testing/btest/policy/frameworks/logging/empty-event.bro index c8e4e1a938..0f0a811117 100644 --- a/testing/btest/policy/frameworks/logging/empty-event.bro +++ b/testing/btest/policy/frameworks/logging/empty-event.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/events.bro b/testing/btest/policy/frameworks/logging/events.bro index cfdcd67cb5..6013938569 100644 --- a/testing/btest/policy/frameworks/logging/events.bro +++ b/testing/btest/policy/frameworks/logging/events.bro @@ -1,5 +1,5 @@ -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT >output +# @TEST-EXEC: bro -b %INPUT >output # @TEST-EXEC: btest-diff output module SSH; diff --git a/testing/btest/policy/frameworks/logging/exclude.bro b/testing/btest/policy/frameworks/logging/exclude.bro index f0a81f659b..04767cec40 100644 --- a/testing/btest/policy/frameworks/logging/exclude.bro +++ b/testing/btest/policy/frameworks/logging/exclude.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/file.bro b/testing/btest/policy/frameworks/logging/file.bro index 4dca0d9855..e910c7c516 100644 --- a/testing/btest/policy/frameworks/logging/file.bro +++ b/testing/btest/policy/frameworks/logging/file.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/include.bro b/testing/btest/policy/frameworks/logging/include.bro index ffcc204ec6..414d0c8ab4 100644 --- a/testing/btest/policy/frameworks/logging/include.bro +++ b/testing/btest/policy/frameworks/logging/include.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/no-local.bro b/testing/btest/policy/frameworks/logging/no-local.bro index 448cdc3cd5..699f21d942 100644 --- a/testing/btest/policy/frameworks/logging/no-local.bro +++ b/testing/btest/policy/frameworks/logging/no-local.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: test '!' -e ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/path-func.bro b/testing/btest/policy/frameworks/logging/path-func.bro index 731cc5464b..79d96e1431 100644 --- a/testing/btest/policy/frameworks/logging/path-func.bro +++ b/testing/btest/policy/frameworks/logging/path-func.bro @@ -1,5 +1,5 @@ -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: ( ls static-*; cat static-* ) >output # @TEST-EXEC: btest-diff output diff --git a/testing/btest/policy/frameworks/logging/pred.bro b/testing/btest/policy/frameworks/logging/pred.bro index 0562dcadb6..3270c5f62d 100644 --- a/testing/btest/policy/frameworks/logging/pred.bro +++ b/testing/btest/policy/frameworks/logging/pred.bro @@ -1,5 +1,5 @@ -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.success.log # @TEST-EXEC: btest-diff ssh.failure.log diff --git a/testing/btest/policy/frameworks/logging/remove.bro b/testing/btest/policy/frameworks/logging/remove.bro index fa4d6a0036..21b32c2b3e 100644 --- a/testing/btest/policy/frameworks/logging/remove.bro +++ b/testing/btest/policy/frameworks/logging/remove.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro -B logging %INPUT +# @TEST-EXEC: bro -b -B logging %INPUT # @TEST-EXEC: btest-diff ssh.log # @TEST-EXEC: btest-diff ssh.failure.log diff --git a/testing/btest/policy/frameworks/logging/rotate-custom.bro b/testing/btest/policy/frameworks/logging/rotate-custom.bro index cbdca5dde3..9f5960a09a 100644 --- a/testing/btest/policy/frameworks/logging/rotate-custom.bro +++ b/testing/btest/policy/frameworks/logging/rotate-custom.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro -r %DIR/rotation.trace %INPUT | egrep "test|test2" | sort >out +# @TEST-EXEC: bro -b -r %DIR/rotation.trace %INPUT | egrep "test|test2" | sort >out # @TEST-EXEC: for i in `ls test*.log | sort`; do printf '> %s\n' $i; cat $i; done | sort | uniq >>out # @TEST-EXEC: btest-diff out diff --git a/testing/btest/policy/frameworks/logging/stdout.bro b/testing/btest/policy/frameworks/logging/stdout.bro index 9544ca7858..930a450d34 100644 --- a/testing/btest/policy/frameworks/logging/stdout.bro +++ b/testing/btest/policy/frameworks/logging/stdout.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT >output +# @TEST-EXEC: bro -b %INPUT >output # @TEST-EXEC: btest-diff output # @TEST-EXEC: test '!' -e ssh.log diff --git a/testing/btest/policy/frameworks/logging/test-logging.bro b/testing/btest/policy/frameworks/logging/test-logging.bro index 4cc217e81f..c4fed50093 100644 --- a/testing/btest/policy/frameworks/logging/test-logging.bro +++ b/testing/btest/policy/frameworks/logging/test-logging.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log module SSH; diff --git a/testing/btest/policy/frameworks/logging/types.bro b/testing/btest/policy/frameworks/logging/types.bro index aa8633aa67..21cfd1fa70 100644 --- a/testing/btest/policy/frameworks/logging/types.bro +++ b/testing/btest/policy/frameworks/logging/types.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log # # Testing all possible types. diff --git a/testing/btest/policy/frameworks/logging/unset-record.bro b/testing/btest/policy/frameworks/logging/unset-record.bro index 18beadf84d..bb922dc9c8 100644 --- a/testing/btest/policy/frameworks/logging/unset-record.bro +++ b/testing/btest/policy/frameworks/logging/unset-record.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff testing.log redef enum Log::ID += { TESTING }; diff --git a/testing/btest/policy/frameworks/logging/vec.bro b/testing/btest/policy/frameworks/logging/vec.bro index d6c6e22067..2a2bc779f3 100644 --- a/testing/btest/policy/frameworks/logging/vec.bro +++ b/testing/btest/policy/frameworks/logging/vec.bro @@ -1,5 +1,5 @@ # -# @TEST-EXEC: BRO_NO_BASE_SCRIPTS=1 bro %INPUT +# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: btest-diff ssh.log module SSH;