@load base/frameworks/config @load ja3 @load zeek-community-id @load zeek-community-id/notice redef Config::config_files += { "./myconfig.dat" }; module Packages; export { # All packages off by default. option community_id_enabled = F; option ja3_enabled = F; } event zeek_init() { local package_change_handler = function(id: string, new_value: bool): bool { local modules: set[string]; if ( id == "Packages::community_id_enabled" ) modules = ["CommunityID", "CommunityID::Notice"]; else if ( id == "Packages::ja3_enabled" ) modules = ["JA3", "JA3_Server"]; else { Reporter::error(fmt("Unknown option: %s", id)); return new_value; } # Toggle the modules. for ( m in modules ) if ( new_value ) enable_module_events(m); else disable_module_events(m); return new_value; }; Option::set_change_handler("Packages::community_id_enabled", package_change_handler); Option::set_change_handler("Packages::ja3_enabled", package_change_handler); Config::set_value("Packages::community_id_enabled", community_id_enabled); Config::set_value("Packages::ja3_enabled", ja3_enabled); }