mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Add Broker::forward() function
This enables explicit forwarding of events matching a given topic prefix. Even if a receiving node has an event handler, it will not be raised if the event was sent along a topic that matches a previous call to Broker::forward().
This commit is contained in:
parent
850030822d
commit
1dcead93bf
10 changed files with 214 additions and 15 deletions
|
@ -285,11 +285,25 @@ export {
|
|||
## (except during :bro:see:`bro_init`).
|
||||
##
|
||||
## topic_prefix: a prefix previously supplied to a successful call to
|
||||
## :bro:see:`Broker::subscribe`.
|
||||
## :bro:see:`Broker::subscribe` or :bro:see:`Broker::forward`.
|
||||
##
|
||||
## Returns: true if interest in the topic prefix is no longer advertised.
|
||||
global unsubscribe: function(topic_prefix: string): bool;
|
||||
|
||||
## Register a topic prefix subscription for events that should only be
|
||||
## forwarded to any subscribing peers and not raise any event handlers
|
||||
## on the receiving/forwarding node. i.e. it's the same as
|
||||
## :bro:see:`Broker::subscribe` except matching events are not raised
|
||||
## on the receiver, just forwarded. Use :bro:see:`Broker::unsubscribe`
|
||||
## with the same argument to undo this operation.
|
||||
##
|
||||
## topic_prefix: a prefix to match against remote message topics.
|
||||
## e.g. an empty prefix matches everything and "a" matches
|
||||
## "alice" and "amy" but not "bob".
|
||||
##
|
||||
## Returns: true if a new event forwarding/subscription is now registered.
|
||||
global forward: function(topic_prefix: string): bool;
|
||||
|
||||
## Automatically send an event to any interested peers whenever it is
|
||||
## locally dispatched. (For example, using "event my_event(...);" in a
|
||||
## script.)
|
||||
|
@ -377,6 +391,11 @@ function subscribe(topic_prefix: string): bool
|
|||
return __subscribe(topic_prefix);
|
||||
}
|
||||
|
||||
function forward(topic_prefix: string): bool
|
||||
{
|
||||
return __forward(topic_prefix);
|
||||
}
|
||||
|
||||
function unsubscribe(topic_prefix: string): bool
|
||||
{
|
||||
return __unsubscribe(topic_prefix);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue