Hi folks, I would agree that it takes a bit of experimentation to figure out exactly when a change handler fires and how to reliably initialize or update things based on an option's value.
Consider this: module Foo; export { option foo = F; } function foo_handler(ID: string, foo_new: bool): bool { print fmt("New foo: %s", foo_new); # Update stuff here based on foo's value # ... return foo_new; } event bro_init() { Option::set_change_handler("Foo::foo", foo_handler); } ... foo_handler doesn't get called when you simply run the script without redefing Config::config_files. When you do redef it, the handler fires both when the config file sets foo to T, and when it sets it to F. So you have to make sure that your initialization happens even when the handler doesn't get called, and you cannot write your handler assuming that the new value is actually different from the old one. These arguably aren't bugs, but imo they do take getting used to. Best, -C. _______________________________________________ bro-dev mailing list bro-dev@bro.org http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev