mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
new global_options() BiF to speed up startup, plus a micro-preen
This commit is contained in:
parent
07f5e9cbe7
commit
fab4905fc2
3 changed files with 21 additions and 9 deletions
|
@ -162,13 +162,7 @@ event zeek_init() &priority=10
|
||||||
@if ( !Cluster::is_enabled() || Cluster::local_node_type() == Cluster::MANAGER )
|
@if ( !Cluster::is_enabled() || Cluster::local_node_type() == Cluster::MANAGER )
|
||||||
# Iterate over all existing options and add ourselves as change handlers
|
# Iterate over all existing options and add ourselves as change handlers
|
||||||
# with a low priority so that we can log the changes.
|
# with a low priority so that we can log the changes.
|
||||||
local gids = global_ids();
|
for ( opt in global_options() )
|
||||||
for ( i, gid in gids )
|
Option::set_change_handler(opt, config_option_changed, -100);
|
||||||
{
|
|
||||||
if ( ! gid$option_value )
|
|
||||||
next;
|
|
||||||
|
|
||||||
Option::set_change_handler(i, config_option_changed, -100);
|
|
||||||
}
|
|
||||||
@endif
|
@endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -243,5 +243,4 @@ event zeek_init() &priority=10
|
||||||
# Create the local_nets mapping table.
|
# Create the local_nets mapping table.
|
||||||
for ( cidr in Site::local_nets )
|
for ( cidr in Site::local_nets )
|
||||||
local_nets_table[cidr] = cidr;
|
local_nets_table[cidr] = cidr;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
19
src/zeek.bif
19
src/zeek.bif
|
@ -2022,6 +2022,25 @@ function global_ids%(%): id_table
|
||||||
return ids;
|
return ids;
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
## Returns a set giving the names of all global options.
|
||||||
|
function global_options%(%): string_set
|
||||||
|
%{
|
||||||
|
auto options = make_intrusive<zeek::TableVal>(zeek::id::string_set);
|
||||||
|
const auto& globals = zeek::detail::global_scope()->Vars();
|
||||||
|
|
||||||
|
for ( const auto& global : globals )
|
||||||
|
{
|
||||||
|
const auto& id = global.second;
|
||||||
|
if ( ! id->IsOption() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
auto id_name = zeek::make_intrusive<zeek::StringVal>(id->Name());
|
||||||
|
options->Assign(std::move(id_name), nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return options;
|
||||||
|
%}
|
||||||
|
|
||||||
## Returns the value of a global identifier.
|
## Returns the value of a global identifier.
|
||||||
##
|
##
|
||||||
## id: The global identifier.
|
## id: The global identifier.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue