New option exit_only_after_terminate to prevent Bro from exiting.

If set, the main loop won't terminate before somebody calls
terminate().

This should make input framework testing more reliable I'd hope.
This commit is contained in:
Robin Sommer 2013-01-18 17:34:33 -08:00
parent fdf79196c6
commit 4f39470c1b
3 changed files with 12 additions and 1 deletions

View file

@ -2608,6 +2608,15 @@ const gap_report_freq = 1.0 sec &redef;
## .. bro:see:: content_gap gap_report partial_connection
const report_gaps_for_partial = F &redef;
## Flag to prevent Bro from exiting automatically when input is exhausted.
## Normally Bro terminates when all packets sources have gone dry
## and communication isn't enabled. If this flag is set, Bro's main loop will
## instead keep idleing until :bro:see::`terminate` is explicitly called.
##
## This is mainly for testing purposes when termination behaviour needs to be
## controlled for reproducing results.
const exit_only_after_terminate = F &redef;
## The CA certificate file to authorize remote Bros/Broccolis.
##
## .. bro:see:: ssl_private_key ssl_passphrase

View file

@ -421,7 +421,8 @@ void net_run()
set_processing_status("RUNNING", "net_run");
while ( io_sources.Size() ||
(packet_sorter && ! packet_sorter->Empty()) )
(packet_sorter && ! packet_sorter->Empty()) ||
(BifConst::exit_only_after_terminate && ! terminating) )
{
double ts;
IOSource* src = io_sources.FindSoonest(&ts);

View file

@ -6,6 +6,7 @@ const ignore_keep_alive_rexmit: bool;
const skip_http_data: bool;
const use_conn_size_analyzer: bool;
const report_gaps_for_partial: bool;
const exit_only_after_terminate: bool;
const NFS3::return_data: bool;
const NFS3::return_data_max: count;