Merge remote-tracking branch 'origin/topic/dnthayer/broker-namespace'

* origin/topic/dnthayer/broker-namespace:
  Split the broker main.bro into two scripts
  Rename the BrokerStore namespace to Broker
  Rename the BrokerComm namespace to Broker

BIT-1563 #merged
This commit is contained in:
Johanna Amann 2016-04-22 16:25:33 -07:00
commit e7ec537ed5
97 changed files with 1240 additions and 1220 deletions

View file

@ -1,4 +1,11 @@
2.4-466 | 2016-04-22 16:25:33 -0700
* Rename BrokerStore and BrokerComm to Broker. Also split broker main.bro
into two scripts. (Daniel Thayer)
* Add get_current_packet_header bif. (Jan Grashoefer)
2.4-457 | 2016-04-22 08:36:27 -0700 2.4-457 | 2016-04-22 08:36:27 -0700
* Fix Intel framework not checking the CERT_HASH indicator type. (Johanna Amann) * Fix Intel framework not checking the CERT_HASH indicator type. (Johanna Amann)

5
NEWS
View file

@ -45,6 +45,9 @@ New Functionality
argument that will be used for decoding errors into weird.log argument that will be used for decoding errors into weird.log
(instead of reporter.log). (instead of reporter.log).
- A new get_current_packet_header bif returning the headers of the current
packet
- Two new built-in functions for handling set[subnet] and table[subnet]: - Two new built-in functions for handling set[subnet] and table[subnet]:
- check_subnet(subnet, table) checks if a specific subnet is a member - check_subnet(subnet, table) checks if a specific subnet is a member
@ -84,6 +87,8 @@ New Functionality
Changed Functionality Changed Functionality
--------------------- ---------------------
- The BrokerComm and BrokerStore namespaces were renamed to Broker
- ``SSH::skip_processing_after_detection`` was removed. The functionality was - ``SSH::skip_processing_after_detection`` was removed. The functionality was
replaced by ``SSH::disable_analyzer_after_detection``. replaced by ``SSH::disable_analyzer_after_detection``.

View file

@ -1 +1 @@
2.4-457 2.4-466

View file

@ -17,20 +17,20 @@ Connecting to Peers
=================== ===================
Communication via Broker must first be turned on via Communication via Broker must first be turned on via
:bro:see:`BrokerComm::enable`. :bro:see:`Broker::enable`.
Bro can accept incoming connections by calling :bro:see:`BrokerComm::listen` Bro can accept incoming connections by calling :bro:see:`Broker::listen`
and then monitor connection status updates via the and then monitor connection status updates via the
:bro:see:`BrokerComm::incoming_connection_established` and :bro:see:`Broker::incoming_connection_established` and
:bro:see:`BrokerComm::incoming_connection_broken` events. :bro:see:`Broker::incoming_connection_broken` events.
.. btest-include:: ${DOC_ROOT}/frameworks/broker/connecting-listener.bro .. btest-include:: ${DOC_ROOT}/frameworks/broker/connecting-listener.bro
Bro can initiate outgoing connections by calling :bro:see:`BrokerComm::connect` Bro can initiate outgoing connections by calling :bro:see:`Broker::connect`
and then monitor connection status updates via the and then monitor connection status updates via the
:bro:see:`BrokerComm::outgoing_connection_established`, :bro:see:`Broker::outgoing_connection_established`,
:bro:see:`BrokerComm::outgoing_connection_broken`, and :bro:see:`Broker::outgoing_connection_broken`, and
:bro:see:`BrokerComm::outgoing_connection_incompatible` events. :bro:see:`Broker::outgoing_connection_incompatible` events.
.. btest-include:: ${DOC_ROOT}/frameworks/broker/connecting-connector.bro .. btest-include:: ${DOC_ROOT}/frameworks/broker/connecting-connector.bro
@ -38,14 +38,14 @@ Remote Printing
=============== ===============
To receive remote print messages, first use the To receive remote print messages, first use the
:bro:see:`BrokerComm::subscribe_to_prints` function to advertise to peers a :bro:see:`Broker::subscribe_to_prints` function to advertise to peers a
topic prefix of interest and then create an event handler for topic prefix of interest and then create an event handler for
:bro:see:`BrokerComm::print_handler` to handle any print messages that are :bro:see:`Broker::print_handler` to handle any print messages that are
received. received.
.. btest-include:: ${DOC_ROOT}/frameworks/broker/printing-listener.bro .. btest-include:: ${DOC_ROOT}/frameworks/broker/printing-listener.bro
To send remote print messages, just call :bro:see:`BrokerComm::print`. To send remote print messages, just call :bro:see:`Broker::print`.
.. btest-include:: ${DOC_ROOT}/frameworks/broker/printing-connector.bro .. btest-include:: ${DOC_ROOT}/frameworks/broker/printing-connector.bro
@ -69,14 +69,14 @@ Remote Events
============= =============
Receiving remote events is similar to remote prints. Just use the Receiving remote events is similar to remote prints. Just use the
:bro:see:`BrokerComm::subscribe_to_events` function and possibly define any :bro:see:`Broker::subscribe_to_events` function and possibly define any
new events along with handlers that peers may want to send. new events along with handlers that peers may want to send.
.. btest-include:: ${DOC_ROOT}/frameworks/broker/events-listener.bro .. btest-include:: ${DOC_ROOT}/frameworks/broker/events-listener.bro
There are two different ways to send events. The first is to call the There are two different ways to send events. The first is to call the
:bro:see:`BrokerComm::event` function directly. The second option is to call :bro:see:`Broker::event` function directly. The second option is to call
the :bro:see:`BrokerComm::auto_event` function where you specify a the :bro:see:`Broker::auto_event` function where you specify a
particular event that will be automatically sent to peers whenever the particular event that will be automatically sent to peers whenever the
event is called locally via the normal event invocation syntax. event is called locally via the normal event invocation syntax.
@ -104,14 +104,14 @@ Remote Logging
.. btest-include:: ${DOC_ROOT}/frameworks/broker/testlog.bro .. btest-include:: ${DOC_ROOT}/frameworks/broker/testlog.bro
Use the :bro:see:`BrokerComm::subscribe_to_logs` function to advertise interest Use the :bro:see:`Broker::subscribe_to_logs` function to advertise interest
in logs written by peers. The topic names that Bro uses are implicitly of the in logs written by peers. The topic names that Bro uses are implicitly of the
form "bro/log/<stream-name>". form "bro/log/<stream-name>".
.. btest-include:: ${DOC_ROOT}/frameworks/broker/logs-listener.bro .. btest-include:: ${DOC_ROOT}/frameworks/broker/logs-listener.bro
To send remote logs either redef :bro:see:`Log::enable_remote_logging` or To send remote logs either redef :bro:see:`Log::enable_remote_logging` or
use the :bro:see:`BrokerComm::enable_remote_logs` function. The former use the :bro:see:`Broker::enable_remote_logs` function. The former
allows any log stream to be sent to peers while the latter enables remote allows any log stream to be sent to peers while the latter enables remote
logging for particular streams. logging for particular streams.
@ -137,24 +137,24 @@ Tuning Access Control
By default, endpoints do not restrict the message topics that it sends By default, endpoints do not restrict the message topics that it sends
to peers and do not restrict what message topics and data store to peers and do not restrict what message topics and data store
identifiers get advertised to peers. These are the default identifiers get advertised to peers. These are the default
:bro:see:`BrokerComm::EndpointFlags` supplied to :bro:see:`BrokerComm::enable`. :bro:see:`Broker::EndpointFlags` supplied to :bro:see:`Broker::enable`.
If not using the ``auto_publish`` flag, one can use the If not using the ``auto_publish`` flag, one can use the
:bro:see:`BrokerComm::publish_topic` and :bro:see:`BrokerComm::unpublish_topic` :bro:see:`Broker::publish_topic` and :bro:see:`Broker::unpublish_topic`
functions to manipulate the set of message topics (must match exactly) functions to manipulate the set of message topics (must match exactly)
that are allowed to be sent to peer endpoints. These settings take that are allowed to be sent to peer endpoints. These settings take
precedence over the per-message ``peers`` flag supplied to functions precedence over the per-message ``peers`` flag supplied to functions
that take a :bro:see:`BrokerComm::SendFlags` such as :bro:see:`BrokerComm::print`, that take a :bro:see:`Broker::SendFlags` such as :bro:see:`Broker::print`,
:bro:see:`BrokerComm::event`, :bro:see:`BrokerComm::auto_event` or :bro:see:`Broker::event`, :bro:see:`Broker::auto_event` or
:bro:see:`BrokerComm::enable_remote_logs`. :bro:see:`Broker::enable_remote_logs`.
If not using the ``auto_advertise`` flag, one can use the If not using the ``auto_advertise`` flag, one can use the
:bro:see:`BrokerComm::advertise_topic` and :bro:see:`Broker::advertise_topic` and
:bro:see:`BrokerComm::unadvertise_topic` functions :bro:see:`Broker::unadvertise_topic` functions
to manipulate the set of topic prefixes that are allowed to be to manipulate the set of topic prefixes that are allowed to be
advertised to peers. If an endpoint does not advertise a topic prefix, then advertised to peers. If an endpoint does not advertise a topic prefix, then
the only way peers can send messages to it is via the ``unsolicited`` the only way peers can send messages to it is via the ``unsolicited``
flag of :bro:see:`BrokerComm::SendFlags` and choosing a topic with a matching flag of :bro:see:`Broker::SendFlags` and choosing a topic with a matching
prefix (i.e. full topic may be longer than receivers prefix, just the prefix (i.e. full topic may be longer than receivers prefix, just the
prefix needs to match). prefix needs to match).
@ -192,8 +192,8 @@ last modification time.
.. btest-include:: ${DOC_ROOT}/frameworks/broker/stores-connector.bro .. btest-include:: ${DOC_ROOT}/frameworks/broker/stores-connector.bro
In the above example, if a local copy of the store contents isn't In the above example, if a local copy of the store contents isn't
needed, just replace the :bro:see:`BrokerStore::create_clone` call with needed, just replace the :bro:see:`Broker::create_clone` call with
:bro:see:`BrokerStore::create_frontend`. Queries will then be made against :bro:see:`Broker::create_frontend`. Queries will then be made against
the remote master store instead of the local clone. the remote master store instead of the local clone.
Note that all data store queries must be made within Bro's asynchronous Note that all data store queries must be made within Bro's asynchronous

View file

@ -1,18 +1,18 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
terminate(); terminate();
} }

View file

@ -1,20 +1,20 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event BrokerComm::incoming_connection_broken(peer_name: string) event Broker::incoming_connection_broken(peer_name: string)
{ {
print "BrokerComm::incoming_connection_broken", peer_name; print "Broker::incoming_connection_broken", peer_name;
terminate(); terminate();
} }

View file

@ -1,30 +1,30 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
global my_event: event(msg: string, c: count); global my_event: event(msg: string, c: count);
global my_auto_event: event(msg: string, c: count); global my_auto_event: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
BrokerComm::auto_event("bro/event/my_auto_event", my_auto_event); Broker::auto_event("bro/event/my_auto_event", my_auto_event);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
BrokerComm::event("bro/event/my_event", BrokerComm::event_args(my_event, "hi", 0)); Broker::event("bro/event/my_event", Broker::event_args(my_event, "hi", 0));
event my_auto_event("stuff", 88); event my_auto_event("stuff", 88);
BrokerComm::event("bro/event/my_event", BrokerComm::event_args(my_event, "...", 1)); Broker::event("bro/event/my_event", Broker::event_args(my_event, "...", 1));
event my_auto_event("more stuff", 51); event my_auto_event("more stuff", 51);
BrokerComm::event("bro/event/my_event", BrokerComm::event_args(my_event, "bye", 2)); Broker::event("bro/event/my_event", Broker::event_args(my_event, "bye", 2));
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -1,20 +1,20 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
global msg_count = 0; global msg_count = 0;
global my_event: event(msg: string, c: count); global my_event: event(msg: string, c: count);
global my_auto_event: event(msg: string, c: count); global my_auto_event: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/"); Broker::subscribe_to_events("bro/event/");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event my_event(msg: string, c: count) event my_event(msg: string, c: count)

View file

@ -2,16 +2,16 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
redef Log::enable_local_logging = F; redef Log::enable_local_logging = F;
redef Log::enable_remote_logging = F; redef Log::enable_remote_logging = F;
global n = 0; global n = 0;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::enable_remote_logs(Test::LOG); Broker::enable_remote_logs(Test::LOG);
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event do_write() event do_write()
@ -24,16 +24,16 @@ event do_write()
event do_write(); event do_write();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
event do_write(); event do_write();
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -2,18 +2,18 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_logs("bro/log/Test::LOG"); Broker::subscribe_to_logs("bro/log/Test::LOG");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event Test::log_test(rec: Test::Info) event Test::log_test(rec: Test::Info)

View file

@ -1,25 +1,25 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
BrokerComm::print("bro/print/hi", "hello"); Broker::print("bro/print/hi", "hello");
BrokerComm::print("bro/print/stuff", "..."); Broker::print("bro/print/stuff", "...");
BrokerComm::print("bro/print/bye", "goodbye"); Broker::print("bro/print/bye", "goodbye");
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -1,21 +1,21 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
global msg_count = 0; global msg_count = 0;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_prints("bro/print/"); Broker::subscribe_to_prints("bro/print/");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event BrokerComm::print_handler(msg: string) event Broker::print_handler(msg: string)
{ {
++msg_count; ++msg_count;
print "got print message", msg; print "got print message", msg;

View file

@ -1,42 +1,42 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
function dv(d: BrokerComm::Data): BrokerComm::DataVector function dv(d: Broker::Data): Broker::DataVector
{ {
local rval: BrokerComm::DataVector; local rval: Broker::DataVector;
rval[0] = d; rval[0] = d;
return rval; return rval;
} }
global ready: event(); global ready: event();
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
local myset: set[string] = {"a", "b", "c"}; local myset: set[string] = {"a", "b", "c"};
local myvec: vector of string = {"alpha", "beta", "gamma"}; local myvec: vector of string = {"alpha", "beta", "gamma"};
h = BrokerStore::create_master("mystore"); h = Broker::create_master("mystore");
BrokerStore::insert(h, BrokerComm::data("one"), BrokerComm::data(110)); Broker::insert(h, Broker::data("one"), Broker::data(110));
BrokerStore::insert(h, BrokerComm::data("two"), BrokerComm::data(223)); Broker::insert(h, Broker::data("two"), Broker::data(223));
BrokerStore::insert(h, BrokerComm::data("myset"), BrokerComm::data(myset)); Broker::insert(h, Broker::data("myset"), Broker::data(myset));
BrokerStore::insert(h, BrokerComm::data("myvec"), BrokerComm::data(myvec)); Broker::insert(h, Broker::data("myvec"), Broker::data(myvec));
BrokerStore::increment(h, BrokerComm::data("one")); Broker::increment(h, Broker::data("one"));
BrokerStore::decrement(h, BrokerComm::data("two")); Broker::decrement(h, Broker::data("two"));
BrokerStore::add_to_set(h, BrokerComm::data("myset"), BrokerComm::data("d")); Broker::add_to_set(h, Broker::data("myset"), Broker::data("d"));
BrokerStore::remove_from_set(h, BrokerComm::data("myset"), BrokerComm::data("b")); Broker::remove_from_set(h, Broker::data("myset"), Broker::data("b"));
BrokerStore::push_left(h, BrokerComm::data("myvec"), dv(BrokerComm::data("delta"))); Broker::push_left(h, Broker::data("myvec"), dv(Broker::data("delta")));
BrokerStore::push_right(h, BrokerComm::data("myvec"), dv(BrokerComm::data("omega"))); Broker::push_right(h, Broker::data("myvec"), dv(Broker::data("omega")));
when ( local res = BrokerStore::size(h) ) when ( local res = Broker::size(h) )
{ {
print "master size", res; print "master size", res;
event ready(); event ready();
@ -47,7 +47,7 @@ event BrokerComm::outgoing_connection_established(peer_address: string,
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
BrokerComm::auto_event("bro/event/ready", ready); Broker::auto_event("bro/event/ready", ready);
} }

View file

@ -1,13 +1,13 @@
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
global expected_key_count = 4; global expected_key_count = 4;
global key_count = 0; global key_count = 0;
function do_lookup(key: string) function do_lookup(key: string)
{ {
when ( local res = BrokerStore::lookup(h, BrokerComm::data(key)) ) when ( local res = Broker::lookup(h, Broker::data(key)) )
{ {
++key_count; ++key_count;
print "lookup", key, res; print "lookup", key, res;
@ -21,15 +21,15 @@ function do_lookup(key: string)
event ready() event ready()
{ {
h = BrokerStore::create_clone("mystore"); h = Broker::create_clone("mystore");
when ( local res = BrokerStore::keys(h) ) when ( local res = Broker::keys(h) )
{ {
print "clone keys", res; print "clone keys", res;
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 0))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 0)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 1))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 1)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 2))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 2)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 3))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 3)));
} }
timeout 10sec timeout 10sec
{ print "timeout"; } { print "timeout"; }
@ -37,7 +37,7 @@ event ready()
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/ready"); Broker::subscribe_to_events("bro/event/ready");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }

View file

@ -13,6 +13,6 @@ export {
event bro_init() &priority=5 event bro_init() &priority=5
{ {
BrokerComm::enable(); Broker::enable();
Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test, $path="test"]); Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test, $path="test"]);
} }

View file

@ -1 +1,2 @@
@load ./main @load ./main
@load ./store

View file

@ -1,11 +1,11 @@
##! Various data structure definitions for use with Bro's communication system. ##! Various data structure definitions for use with Bro's communication system.
module BrokerComm; module Broker;
export { export {
## A name used to identify this endpoint to peers. ## A name used to identify this endpoint to peers.
## .. bro:see:: BrokerComm::connect BrokerComm::listen ## .. bro:see:: Broker::connect Broker::listen
const endpoint_name = "" &redef; const endpoint_name = "" &redef;
## Change communication behavior. ## Change communication behavior.
@ -32,11 +32,11 @@ export {
## Opaque communication data. ## Opaque communication data.
type Data: record { type Data: record {
d: opaque of BrokerComm::Data &optional; d: opaque of Broker::Data &optional;
}; };
## Opaque communication data. ## Opaque communication data.
type DataVector: vector of BrokerComm::Data; type DataVector: vector of Broker::Data;
## Opaque event communication data. ## Opaque event communication data.
type EventArgs: record { type EventArgs: record {
@ -49,55 +49,7 @@ export {
## Opaque communication data used as a convenient way to wrap key-value ## Opaque communication data used as a convenient way to wrap key-value
## pairs that comprise table entries. ## pairs that comprise table entries.
type TableItem : record { type TableItem : record {
key: BrokerComm::Data; key: Broker::Data;
val: BrokerComm::Data; val: Broker::Data;
};
}
module BrokerStore;
export {
## Whether a data store query could be completed or not.
type QueryStatus: enum {
SUCCESS,
FAILURE,
};
## An expiry time for a key-value pair inserted in to a data store.
type ExpiryTime: record {
## Absolute point in time at which to expire the entry.
absolute: time &optional;
## A point in time relative to the last modification time at which
## to expire the entry. New modifications will delay the expiration.
since_last_modification: interval &optional;
};
## The result of a data store query.
type QueryResult: record {
## Whether the query completed or not.
status: BrokerStore::QueryStatus;
## The result of the query. Certain queries may use a particular
## data type (e.g. querying store size always returns a count, but
## a lookup may return various data types).
result: BrokerComm::Data;
};
## Options to tune the SQLite storage backend.
type SQLiteOptions: record {
## File system path of the database.
path: string &default = "store.sqlite";
};
## Options to tune the RocksDB storage backend.
type RocksDBOptions: record {
## File system path of the database.
path: string &default = "store.rocksdb";
};
## Options to tune the particular storage backends.
type BackendOptions: record {
sqlite: SQLiteOptions &default = SQLiteOptions();
rocksdb: RocksDBOptions &default = RocksDBOptions();
}; };
} }

View file

@ -0,0 +1,51 @@
##! Various data structure definitions for use with Bro's communication system.
@load ./main
module Broker;
export {
## Whether a data store query could be completed or not.
type QueryStatus: enum {
SUCCESS,
FAILURE,
};
## An expiry time for a key-value pair inserted in to a data store.
type ExpiryTime: record {
## Absolute point in time at which to expire the entry.
absolute: time &optional;
## A point in time relative to the last modification time at which
## to expire the entry. New modifications will delay the expiration.
since_last_modification: interval &optional;
};
## The result of a data store query.
type QueryResult: record {
## Whether the query completed or not.
status: Broker::QueryStatus;
## The result of the query. Certain queries may use a particular
## data type (e.g. querying store size always returns a count, but
## a lookup may return various data types).
result: Broker::Data;
};
## Options to tune the SQLite storage backend.
type SQLiteOptions: record {
## File system path of the database.
path: string &default = "store.sqlite";
};
## Options to tune the RocksDB storage backend.
type RocksDBOptions: record {
## File system path of the database.
path: string &default = "store.rocksdb";
};
## Options to tune the particular storage backends.
type BackendOptions: record {
sqlite: SQLiteOptions &default = SQLiteOptions();
rocksdb: RocksDBOptions &default = RocksDBOptions();
};
}

View file

@ -227,7 +227,7 @@ function acld_add_rule_fun(p: PluginState, r: Rule) : bool
if ( ar$command == "" ) if ( ar$command == "" )
return F; return F;
BrokerComm::event(p$acld_config$acld_topic, BrokerComm::event_args(acld_add_rule, p$acld_id, r, ar)); Broker::event(p$acld_config$acld_topic, Broker::event_args(acld_add_rule, p$acld_id, r, ar));
return T; return T;
} }
@ -242,18 +242,18 @@ function acld_remove_rule_fun(p: PluginState, r: Rule) : bool
else else
return F; return F;
BrokerComm::event(p$acld_config$acld_topic, BrokerComm::event_args(acld_remove_rule, p$acld_id, r, ar)); Broker::event(p$acld_config$acld_topic, Broker::event_args(acld_remove_rule, p$acld_id, r, ar));
return T; return T;
} }
function acld_init(p: PluginState) function acld_init(p: PluginState)
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect(cat(p$acld_config$acld_host), p$acld_config$acld_port, 1sec); Broker::connect(cat(p$acld_config$acld_host), p$acld_config$acld_port, 1sec);
BrokerComm::subscribe_to_events(p$acld_config$acld_topic); Broker::subscribe_to_events(p$acld_config$acld_topic);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, peer_port: port, peer_name: string) event Broker::outgoing_connection_established(peer_address: string, peer_port: port, peer_name: string)
{ {
if ( [peer_port, peer_address] !in netcontrol_acld_peers ) if ( [peer_port, peer_address] !in netcontrol_acld_peers )
# ok, this one was none of ours... # ok, this one was none of ours...

View file

@ -96,24 +96,24 @@ function broker_name(p: PluginState) : string
function broker_add_rule_fun(p: PluginState, r: Rule) : bool function broker_add_rule_fun(p: PluginState, r: Rule) : bool
{ {
BrokerComm::event(p$broker_topic, BrokerComm::event_args(broker_add_rule, p$broker_id, r)); Broker::event(p$broker_topic, Broker::event_args(broker_add_rule, p$broker_id, r));
return T; return T;
} }
function broker_remove_rule_fun(p: PluginState, r: Rule) : bool function broker_remove_rule_fun(p: PluginState, r: Rule) : bool
{ {
BrokerComm::event(p$broker_topic, BrokerComm::event_args(broker_remove_rule, p$broker_id, r)); Broker::event(p$broker_topic, Broker::event_args(broker_remove_rule, p$broker_id, r));
return T; return T;
} }
function broker_init(p: PluginState) function broker_init(p: PluginState)
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect(cat(p$broker_host), p$broker_port, 1sec); Broker::connect(cat(p$broker_host), p$broker_port, 1sec);
BrokerComm::subscribe_to_events(p$broker_topic); Broker::subscribe_to_events(p$broker_topic);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, peer_port: port, peer_name: string) event Broker::outgoing_connection_established(peer_address: string, peer_port: port, peer_name: string)
{ {
if ( [peer_port, peer_address] !in netcontrol_broker_peers ) if ( [peer_port, peer_address] !in netcontrol_broker_peers )
return; return;

View file

@ -47,26 +47,26 @@ function broker_describe(state: ControllerState): string
function broker_flow_mod_fun(state: ControllerState, match: ofp_match, flow_mod: OpenFlow::ofp_flow_mod): bool function broker_flow_mod_fun(state: ControllerState, match: ofp_match, flow_mod: OpenFlow::ofp_flow_mod): bool
{ {
BrokerComm::event(state$broker_topic, BrokerComm::event_args(broker_flow_mod, state$_name, state$broker_dpid, match, flow_mod)); Broker::event(state$broker_topic, Broker::event_args(broker_flow_mod, state$_name, state$broker_dpid, match, flow_mod));
return T; return T;
} }
function broker_flow_clear_fun(state: OpenFlow::ControllerState): bool function broker_flow_clear_fun(state: OpenFlow::ControllerState): bool
{ {
BrokerComm::event(state$broker_topic, BrokerComm::event_args(broker_flow_clear, state$_name, state$broker_dpid)); Broker::event(state$broker_topic, Broker::event_args(broker_flow_clear, state$_name, state$broker_dpid));
return T; return T;
} }
function broker_init(state: OpenFlow::ControllerState) function broker_init(state: OpenFlow::ControllerState)
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect(cat(state$broker_host), state$broker_port, 1sec); Broker::connect(cat(state$broker_host), state$broker_port, 1sec);
BrokerComm::subscribe_to_events(state$broker_topic); # openflow success and failure events are directly sent back via the other plugin via broker. Broker::subscribe_to_events(state$broker_topic); # openflow success and failure events are directly sent back via the other plugin via broker.
} }
event BrokerComm::outgoing_connection_established(peer_address: string, peer_port: port, peer_name: string) event Broker::outgoing_connection_established(peer_address: string, peer_port: port, peer_name: string)
{ {
if ( [peer_port, peer_address] !in broker_peers ) if ( [peer_port, peer_address] !in broker_peers )
# ok, this one was none of ours... # ok, this one was none of ours...

View file

@ -37,7 +37,7 @@
@load base/frameworks/reporter @load base/frameworks/reporter
@load base/frameworks/sumstats @load base/frameworks/sumstats
@load base/frameworks/tunnels @load base/frameworks/tunnels
@ifdef ( BrokerComm::enable ) @ifdef ( Broker::enable )
@load base/frameworks/openflow @load base/frameworks/openflow
@load base/frameworks/netcontrol @load base/frameworks/netcontrol
@endif @endif

View file

@ -539,7 +539,7 @@ broker::util::optional<broker::data> bro_broker::val_to_data(Val* v)
return {rval}; return {rval};
} }
default: default:
reporter->Error("unsupported BrokerComm::Data type: %s", reporter->Error("unsupported Broker::Data type: %s",
type_name(v->Type()->Tag())); type_name(v->Type()->Tag()));
break; break;
} }
@ -549,7 +549,7 @@ broker::util::optional<broker::data> bro_broker::val_to_data(Val* v)
RecordVal* bro_broker::make_data_val(Val* v) RecordVal* bro_broker::make_data_val(Val* v)
{ {
auto rval = new RecordVal(BifType::Record::BrokerComm::Data); auto rval = new RecordVal(BifType::Record::Broker::Data);
auto data = val_to_data(v); auto data = val_to_data(v);
if ( data ) if ( data )
@ -560,7 +560,7 @@ RecordVal* bro_broker::make_data_val(Val* v)
RecordVal* bro_broker::make_data_val(broker::data d) RecordVal* bro_broker::make_data_val(broker::data d)
{ {
auto rval = new RecordVal(BifType::Record::BrokerComm::Data); auto rval = new RecordVal(BifType::Record::Broker::Data);
rval->Assign(0, new DataVal(move(d))); rval->Assign(0, new DataVal(move(d)));
return rval; return rval;
} }
@ -570,92 +570,92 @@ struct data_type_getter {
result_type operator()(bool a) result_type operator()(bool a)
{ {
return new EnumVal(BifEnum::BrokerComm::BOOL, return new EnumVal(BifEnum::Broker::BOOL,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(uint64_t a) result_type operator()(uint64_t a)
{ {
return new EnumVal(BifEnum::BrokerComm::COUNT, return new EnumVal(BifEnum::Broker::COUNT,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(int64_t a) result_type operator()(int64_t a)
{ {
return new EnumVal(BifEnum::BrokerComm::INT, return new EnumVal(BifEnum::Broker::INT,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(double a) result_type operator()(double a)
{ {
return new EnumVal(BifEnum::BrokerComm::DOUBLE, return new EnumVal(BifEnum::Broker::DOUBLE,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const std::string& a) result_type operator()(const std::string& a)
{ {
return new EnumVal(BifEnum::BrokerComm::STRING, return new EnumVal(BifEnum::Broker::STRING,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::address& a) result_type operator()(const broker::address& a)
{ {
return new EnumVal(BifEnum::BrokerComm::ADDR, return new EnumVal(BifEnum::Broker::ADDR,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::subnet& a) result_type operator()(const broker::subnet& a)
{ {
return new EnumVal(BifEnum::BrokerComm::SUBNET, return new EnumVal(BifEnum::Broker::SUBNET,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::port& a) result_type operator()(const broker::port& a)
{ {
return new EnumVal(BifEnum::BrokerComm::PORT, return new EnumVal(BifEnum::Broker::PORT,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::time_point& a) result_type operator()(const broker::time_point& a)
{ {
return new EnumVal(BifEnum::BrokerComm::TIME, return new EnumVal(BifEnum::Broker::TIME,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::time_duration& a) result_type operator()(const broker::time_duration& a)
{ {
return new EnumVal(BifEnum::BrokerComm::INTERVAL, return new EnumVal(BifEnum::Broker::INTERVAL,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::enum_value& a) result_type operator()(const broker::enum_value& a)
{ {
return new EnumVal(BifEnum::BrokerComm::ENUM, return new EnumVal(BifEnum::Broker::ENUM,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::set& a) result_type operator()(const broker::set& a)
{ {
return new EnumVal(BifEnum::BrokerComm::SET, return new EnumVal(BifEnum::Broker::SET,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::table& a) result_type operator()(const broker::table& a)
{ {
return new EnumVal(BifEnum::BrokerComm::TABLE, return new EnumVal(BifEnum::Broker::TABLE,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::vector& a) result_type operator()(const broker::vector& a)
{ {
return new EnumVal(BifEnum::BrokerComm::VECTOR, return new EnumVal(BifEnum::Broker::VECTOR,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
result_type operator()(const broker::record& a) result_type operator()(const broker::record& a)
{ {
return new EnumVal(BifEnum::BrokerComm::RECORD, return new EnumVal(BifEnum::Broker::RECORD,
BifType::Enum::BrokerComm::DataType); BifType::Enum::Broker::DataType);
} }
}; };
@ -670,7 +670,7 @@ broker::data& bro_broker::opaque_field_to_data(RecordVal* v, Frame* f)
if ( ! d ) if ( ! d )
reporter->RuntimeError(f->GetCall()->GetLocationInfo(), reporter->RuntimeError(f->GetCall()->GetLocationInfo(),
"BrokerComm::Data's opaque field is not set"); "Broker::Data's opaque field is not set");
return static_cast<DataVal*>(d)->data; return static_cast<DataVal*>(d)->data;
} }

View file

@ -21,25 +21,25 @@ extern OpaqueType* opaque_of_record_iterator;
TransportProto to_bro_port_proto(broker::port::protocol tp); TransportProto to_bro_port_proto(broker::port::protocol tp);
/** /**
* Create a BrokerComm::Data value from a Bro value. * Create a Broker::Data value from a Bro value.
* @param v the Bro value to convert to a Broker data value. * @param v the Bro value to convert to a Broker data value.
* @return a BrokerComm::Data value, where the optional field is set if the conversion * @return a Broker::Data value, where the optional field is set if the conversion
* was possible, else it is unset. * was possible, else it is unset.
*/ */
RecordVal* make_data_val(Val* v); RecordVal* make_data_val(Val* v);
/** /**
* Create a BrokerComm::Data value from a Broker data value. * Create a Broker::Data value from a Broker data value.
* @param d the Broker value to wrap in an opaque type. * @param d the Broker value to wrap in an opaque type.
* @return a BrokerComm::Data value that wraps the Broker value. * @return a Broker::Data value that wraps the Broker value.
*/ */
RecordVal* make_data_val(broker::data d); RecordVal* make_data_val(broker::data d);
/** /**
* Get the type of Broker data that BrokerComm::Data wraps. * Get the type of Broker data that Broker::Data wraps.
* @param v a BrokerComm::Data value. * @param v a Broker::Data value.
* @param frame used to get location info upon error. * @param frame used to get location info upon error.
* @return a BrokerComm::DataType value. * @return a Broker::DataType value.
*/ */
EnumVal* get_data_type(RecordVal* v, Frame* frame); EnumVal* get_data_type(RecordVal* v, Frame* frame);
@ -141,8 +141,8 @@ struct type_name_getter {
}; };
/** /**
* Retrieve Broker data value associated with a BrokerComm::Data Bro value. * Retrieve Broker data value associated with a Broker::Data Bro value.
* @param v a BrokerComm::Data value. * @param v a Broker::Data value.
* @param f used to get location information on error. * @param f used to get location information on error.
* @return a reference to the wrapped Broker data value. A runtime interpreter * @return a reference to the wrapped Broker data value. A runtime interpreter
* exception is thrown if the the optional opaque value of \a v is not set. * exception is thrown if the the optional opaque value of \a v is not set.
@ -183,9 +183,9 @@ inline T& require_data_type(RecordVal* v, TypeTag tag, Frame* f)
} }
/** /**
* Convert a BrokerComm::Data Bro value to a Bro value of a given type. * Convert a Broker::Data Bro value to a Bro value of a given type.
* @tparam a type that a Broker data variant may contain. * @tparam a type that a Broker data variant may contain.
* @param v a BrokerComm::Data value. * @param v a Broker::Data value.
* @param tag a Bro type to convert to. * @param tag a Bro type to convert to.
* @param f used to get location information on error. * @param f used to get location information on error.
* A runtime interpret exception is thrown if trying to access a type which * A runtime interpret exception is thrown if trying to access a type which

View file

@ -77,20 +77,20 @@ bool bro_broker::Manager::Enable(Val* broker_endpoint_flags)
if ( endpoint != nullptr ) if ( endpoint != nullptr )
return true; return true;
auto send_flags_type = internal_type("BrokerComm::SendFlags")->AsRecordType(); auto send_flags_type = internal_type("Broker::SendFlags")->AsRecordType();
send_flags_self_idx = require_field(send_flags_type, "self"); send_flags_self_idx = require_field(send_flags_type, "self");
send_flags_peers_idx = require_field(send_flags_type, "peers"); send_flags_peers_idx = require_field(send_flags_type, "peers");
send_flags_unsolicited_idx = require_field(send_flags_type, "unsolicited"); send_flags_unsolicited_idx = require_field(send_flags_type, "unsolicited");
log_id_type = internal_type("Log::ID")->AsEnumType(); log_id_type = internal_type("Log::ID")->AsEnumType();
bro_broker::opaque_of_data_type = new OpaqueType("BrokerComm::Data"); bro_broker::opaque_of_data_type = new OpaqueType("Broker::Data");
bro_broker::opaque_of_set_iterator = new OpaqueType("BrokerComm::SetIterator"); bro_broker::opaque_of_set_iterator = new OpaqueType("Broker::SetIterator");
bro_broker::opaque_of_table_iterator = new OpaqueType("BrokerComm::TableIterator"); bro_broker::opaque_of_table_iterator = new OpaqueType("Broker::TableIterator");
bro_broker::opaque_of_vector_iterator = new OpaqueType("BrokerComm::VectorIterator"); bro_broker::opaque_of_vector_iterator = new OpaqueType("Broker::VectorIterator");
bro_broker::opaque_of_record_iterator = new OpaqueType("BrokerComm::RecordIterator"); bro_broker::opaque_of_record_iterator = new OpaqueType("Broker::RecordIterator");
bro_broker::opaque_of_store_handle = new OpaqueType("BrokerStore::Handle"); bro_broker::opaque_of_store_handle = new OpaqueType("Broker::Handle");
vector_of_data_type = new VectorType(internal_type("BrokerComm::Data")->Ref()); vector_of_data_type = new VectorType(internal_type("Broker::Data")->Ref());
auto res = broker::init(); auto res = broker::init();
@ -110,7 +110,7 @@ bool bro_broker::Manager::Enable(Val* broker_endpoint_flags)
} }
const char* name; const char* name;
auto name_from_script = internal_val("BrokerComm::endpoint_name")->AsString(); auto name_from_script = internal_val("Broker::endpoint_name")->AsString();
if ( name_from_script->Len() ) if ( name_from_script->Len() )
name = name_from_script->CheckString(); name = name_from_script->CheckString();
@ -290,7 +290,7 @@ bool bro_broker::Manager::AutoEvent(string topic, Val* event, Val* flags)
if ( event->Type()->Tag() != TYPE_FUNC ) if ( event->Type()->Tag() != TYPE_FUNC )
{ {
reporter->Error("BrokerComm::auto_event must operate on an event"); reporter->Error("Broker::auto_event must operate on an event");
return false; return false;
} }
@ -298,7 +298,7 @@ bool bro_broker::Manager::AutoEvent(string topic, Val* event, Val* flags)
if ( event_val->Flavor() != FUNC_FLAVOR_EVENT ) if ( event_val->Flavor() != FUNC_FLAVOR_EVENT )
{ {
reporter->Error("BrokerComm::auto_event must operate on an event"); reporter->Error("Broker::auto_event must operate on an event");
return false; return false;
} }
@ -306,7 +306,7 @@ bool bro_broker::Manager::AutoEvent(string topic, Val* event, Val* flags)
if ( ! handler ) if ( ! handler )
{ {
reporter->Error("BrokerComm::auto_event failed to lookup event '%s'", reporter->Error("Broker::auto_event failed to lookup event '%s'",
event_val->Name()); event_val->Name());
return false; return false;
} }
@ -322,7 +322,7 @@ bool bro_broker::Manager::AutoEventStop(const string& topic, Val* event)
if ( event->Type()->Tag() != TYPE_FUNC ) if ( event->Type()->Tag() != TYPE_FUNC )
{ {
reporter->Error("BrokerComm::auto_event_stop must operate on an event"); reporter->Error("Broker::auto_event_stop must operate on an event");
return false; return false;
} }
@ -330,7 +330,7 @@ bool bro_broker::Manager::AutoEventStop(const string& topic, Val* event)
if ( event_val->Flavor() != FUNC_FLAVOR_EVENT ) if ( event_val->Flavor() != FUNC_FLAVOR_EVENT )
{ {
reporter->Error("BrokerComm::auto_event_stop must operate on an event"); reporter->Error("Broker::auto_event_stop must operate on an event");
return false; return false;
} }
@ -338,7 +338,7 @@ bool bro_broker::Manager::AutoEventStop(const string& topic, Val* event)
if ( ! handler ) if ( ! handler )
{ {
reporter->Error("BrokerComm::auto_event_stop failed to lookup event '%s'", reporter->Error("Broker::auto_event_stop failed to lookup event '%s'",
event_val->Name()); event_val->Name());
return false; return false;
} }
@ -353,7 +353,7 @@ RecordVal* bro_broker::Manager::MakeEventArgs(val_list* args)
if ( ! Enabled() ) if ( ! Enabled() )
return nullptr; return nullptr;
auto rval = new RecordVal(BifType::Record::BrokerComm::EventArgs); auto rval = new RecordVal(BifType::Record::Broker::EventArgs);
auto arg_vec = new VectorVal(vector_of_data_type); auto arg_vec = new VectorVal(vector_of_data_type);
rval->Assign(1, arg_vec); rval->Assign(1, arg_vec);
Func* func = 0; Func* func = 0;
@ -368,7 +368,7 @@ RecordVal* bro_broker::Manager::MakeEventArgs(val_list* args)
if ( arg_val->Type()->Tag() != TYPE_FUNC ) if ( arg_val->Type()->Tag() != TYPE_FUNC )
{ {
reporter->Error("1st param of BrokerComm::event_args must be event"); reporter->Error("1st param of Broker::event_args must be event");
return rval; return rval;
} }
@ -376,7 +376,7 @@ RecordVal* bro_broker::Manager::MakeEventArgs(val_list* args)
if ( func->Flavor() != FUNC_FLAVOR_EVENT ) if ( func->Flavor() != FUNC_FLAVOR_EVENT )
{ {
reporter->Error("1st param of BrokerComm::event_args must be event"); reporter->Error("1st param of Broker::event_args must be event");
return rval; return rval;
} }
@ -384,7 +384,7 @@ RecordVal* bro_broker::Manager::MakeEventArgs(val_list* args)
if ( num_args != args->length() - 1 ) if ( num_args != args->length() - 1 )
{ {
reporter->Error("bad # of BrokerComm::event_args: got %d, expect %d", reporter->Error("bad # of Broker::event_args: got %d, expect %d",
args->length(), num_args + 1); args->length(), num_args + 1);
return rval; return rval;
} }
@ -398,7 +398,7 @@ RecordVal* bro_broker::Manager::MakeEventArgs(val_list* args)
if ( ! same_type((*args)[i]->Type(), expected_type) ) if ( ! same_type((*args)[i]->Type(), expected_type) )
{ {
rval->Assign(0, 0); rval->Assign(0, 0);
reporter->Error("BrokerComm::event_args param %d type mismatch", i); reporter->Error("Broker::event_args param %d type mismatch", i);
return rval; return rval;
} }
@ -408,7 +408,7 @@ RecordVal* bro_broker::Manager::MakeEventArgs(val_list* args)
{ {
Unref(data_val); Unref(data_val);
rval->Assign(0, 0); rval->Assign(0, 0);
reporter->Error("BrokerComm::event_args unsupported event/params"); reporter->Error("Broker::event_args unsupported event/params");
return rval; return rval;
} }
@ -584,7 +584,7 @@ struct response_converter {
case broker::store::query::tag::lookup: case broker::store::query::tag::lookup:
// A boolean result means the key doesn't exist (if it did, then // A boolean result means the key doesn't exist (if it did, then
// the result would contain the broker::data value, not a bool). // the result would contain the broker::data value, not a bool).
return new RecordVal(BifType::Record::BrokerComm::Data); return new RecordVal(BifType::Record::Broker::Data);
default: default:
return bro_broker::make_data_val(broker::data{d}); return bro_broker::make_data_val(broker::data{d});
} }
@ -639,36 +639,36 @@ void bro_broker::Manager::Process()
{ {
switch ( u.status ) { switch ( u.status ) {
case broker::outgoing_connection_status::tag::established: case broker::outgoing_connection_status::tag::established:
if ( BrokerComm::outgoing_connection_established ) if ( Broker::outgoing_connection_established )
{ {
val_list* vl = new val_list; val_list* vl = new val_list;
vl->append(new StringVal(u.relation.remote_tuple().first)); vl->append(new StringVal(u.relation.remote_tuple().first));
vl->append(new PortVal(u.relation.remote_tuple().second, vl->append(new PortVal(u.relation.remote_tuple().second,
TRANSPORT_TCP)); TRANSPORT_TCP));
vl->append(new StringVal(u.peer_name)); vl->append(new StringVal(u.peer_name));
mgr.QueueEvent(BrokerComm::outgoing_connection_established, vl); mgr.QueueEvent(Broker::outgoing_connection_established, vl);
} }
break; break;
case broker::outgoing_connection_status::tag::disconnected: case broker::outgoing_connection_status::tag::disconnected:
if ( BrokerComm::outgoing_connection_broken ) if ( Broker::outgoing_connection_broken )
{ {
val_list* vl = new val_list; val_list* vl = new val_list;
vl->append(new StringVal(u.relation.remote_tuple().first)); vl->append(new StringVal(u.relation.remote_tuple().first));
vl->append(new PortVal(u.relation.remote_tuple().second, vl->append(new PortVal(u.relation.remote_tuple().second,
TRANSPORT_TCP)); TRANSPORT_TCP));
mgr.QueueEvent(BrokerComm::outgoing_connection_broken, vl); mgr.QueueEvent(Broker::outgoing_connection_broken, vl);
} }
break; break;
case broker::outgoing_connection_status::tag::incompatible: case broker::outgoing_connection_status::tag::incompatible:
if ( BrokerComm::outgoing_connection_incompatible ) if ( Broker::outgoing_connection_incompatible )
{ {
val_list* vl = new val_list; val_list* vl = new val_list;
vl->append(new StringVal(u.relation.remote_tuple().first)); vl->append(new StringVal(u.relation.remote_tuple().first));
vl->append(new PortVal(u.relation.remote_tuple().second, vl->append(new PortVal(u.relation.remote_tuple().second,
TRANSPORT_TCP)); TRANSPORT_TCP));
mgr.QueueEvent(BrokerComm::outgoing_connection_incompatible, vl); mgr.QueueEvent(Broker::outgoing_connection_incompatible, vl);
} }
break; break;
@ -684,20 +684,20 @@ void bro_broker::Manager::Process()
{ {
switch ( u.status ) { switch ( u.status ) {
case broker::incoming_connection_status::tag::established: case broker::incoming_connection_status::tag::established:
if ( BrokerComm::incoming_connection_established ) if ( Broker::incoming_connection_established )
{ {
val_list* vl = new val_list; val_list* vl = new val_list;
vl->append(new StringVal(u.peer_name)); vl->append(new StringVal(u.peer_name));
mgr.QueueEvent(BrokerComm::incoming_connection_established, vl); mgr.QueueEvent(Broker::incoming_connection_established, vl);
} }
break; break;
case broker::incoming_connection_status::tag::disconnected: case broker::incoming_connection_status::tag::disconnected:
if ( BrokerComm::incoming_connection_broken ) if ( Broker::incoming_connection_broken )
{ {
val_list* vl = new val_list; val_list* vl = new val_list;
vl->append(new StringVal(u.peer_name)); vl->append(new StringVal(u.peer_name));
mgr.QueueEvent(BrokerComm::incoming_connection_broken, vl); mgr.QueueEvent(Broker::incoming_connection_broken, vl);
} }
break; break;
@ -718,7 +718,7 @@ void bro_broker::Manager::Process()
ps.second.received += print_messages.size(); ps.second.received += print_messages.size();
if ( ! BrokerComm::print_handler ) if ( ! Broker::print_handler )
continue; continue;
for ( auto& pm : print_messages ) for ( auto& pm : print_messages )
@ -741,7 +741,7 @@ void bro_broker::Manager::Process()
val_list* vl = new val_list; val_list* vl = new val_list;
vl->append(new StringVal(move(*msg))); vl->append(new StringVal(move(*msg)));
mgr.QueueEvent(BrokerComm::print_handler, vl); mgr.QueueEvent(Broker::print_handler, vl);
} }
} }

View file

@ -63,7 +63,7 @@ public:
/** /**
* Enable use of communication. * Enable use of communication.
* @param flags used to tune the local Broker endpoint's behavior. * @param flags used to tune the local Broker endpoint's behavior.
* See the BrokerComm::EndpointFlags record type. * See the Broker::EndpointFlags record type.
* @return true if communication is successfully initialized. * @return true if communication is successfully initialized.
*/ */
bool Enable(Val* flags); bool Enable(Val* flags);
@ -122,7 +122,7 @@ public:
* of this topic name. * of this topic name.
* @param msg the string to send to peers. * @param msg the string to send to peers.
* @param flags tune the behavior of how the message is send. * @param flags tune the behavior of how the message is send.
* See the BrokerComm::SendFlags record type. * See the Broker::SendFlags record type.
* @return true if the message is sent successfully. * @return true if the message is sent successfully.
*/ */
bool Print(std::string topic, std::string msg, Val* flags); bool Print(std::string topic, std::string msg, Val* flags);
@ -135,7 +135,7 @@ public:
* @param msg the event to send to peers, which is the name of the event * @param msg the event to send to peers, which is the name of the event
* as a string followed by all of its arguments. * as a string followed by all of its arguments.
* @param flags tune the behavior of how the message is send. * @param flags tune the behavior of how the message is send.
* See the BrokerComm::SendFlags record type. * See the Broker::SendFlags record type.
* @return true if the message is sent successfully. * @return true if the message is sent successfully.
*/ */
bool Event(std::string topic, broker::message msg, int flags); bool Event(std::string topic, broker::message msg, int flags);
@ -146,9 +146,9 @@ public:
* Peers advertise interest by registering a subscription to some prefix * Peers advertise interest by registering a subscription to some prefix
* of this topic name. * of this topic name.
* @param args the event and its arguments to send to peers. See the * @param args the event and its arguments to send to peers. See the
* BrokerComm::EventArgs record type. * Broker::EventArgs record type.
* @param flags tune the behavior of how the message is send. * @param flags tune the behavior of how the message is send.
* See the BrokerComm::SendFlags record type. * See the Broker::SendFlags record type.
* @return true if the message is sent successfully. * @return true if the message is sent successfully.
*/ */
bool Event(std::string topic, RecordVal* args, Val* flags); bool Event(std::string topic, RecordVal* args, Val* flags);
@ -160,7 +160,7 @@ public:
* @param columns the data which comprises the log entry. * @param columns the data which comprises the log entry.
* @param info the record type corresponding to the log's columns. * @param info the record type corresponding to the log's columns.
* @param flags tune the behavior of how the message is send. * @param flags tune the behavior of how the message is send.
* See the BrokerComm::SendFlags record type. * See the Broker::SendFlags record type.
* @return true if the message is sent successfully. * @return true if the message is sent successfully.
*/ */
bool Log(EnumVal* stream_id, RecordVal* columns, RecordType* info, bool Log(EnumVal* stream_id, RecordVal* columns, RecordType* info,
@ -174,7 +174,7 @@ public:
* of this topic name. * of this topic name.
* @param event a Bro event value. * @param event a Bro event value.
* @param flags tune the behavior of how the message is send. * @param flags tune the behavior of how the message is send.
* See the BrokerComm::SendFlags record type. * See the Broker::SendFlags record type.
* @return true if automatic event sending is now enabled. * @return true if automatic event sending is now enabled.
*/ */
bool AutoEvent(std::string topic, Val* event, Val* flags); bool AutoEvent(std::string topic, Val* event, Val* flags);
@ -320,7 +320,7 @@ public:
Stats ConsumeStatistics(); Stats ConsumeStatistics();
/** /**
* Convert BrokerComm::SendFlags to int flags for use with broker::send(). * Convert Broker::SendFlags to int flags for use with broker::send().
*/ */
static int send_flags_to_int(Val* flags); static int send_flags_to_int(Val* flags);
@ -335,7 +335,7 @@ private:
void Process() override; void Process() override;
const char* Tag() override const char* Tag() override
{ return "BrokerComm::Manager"; } { return "Broker::Manager"; }
broker::endpoint& Endpoint() broker::endpoint& Endpoint()
{ return *endpoint; } { return *endpoint; }

View file

@ -14,12 +14,12 @@ OpaqueType* bro_broker::opaque_of_store_handle;
bro_broker::StoreHandleVal::StoreHandleVal(broker::store::identifier id, bro_broker::StoreHandleVal::StoreHandleVal(broker::store::identifier id,
bro_broker::StoreType arg_type, bro_broker::StoreType arg_type,
broker::util::optional<BifEnum::BrokerStore::BackendType> arg_back, broker::util::optional<BifEnum::Broker::BackendType> arg_back,
RecordVal* backend_options, std::chrono::duration<double> resync) RecordVal* backend_options, std::chrono::duration<double> resync)
: OpaqueVal(opaque_of_store_handle), : OpaqueVal(opaque_of_store_handle),
store(), store_type(arg_type), backend_type(arg_back) store(), store_type(arg_type), backend_type(arg_back)
{ {
using BifEnum::BrokerStore::BackendType; using BifEnum::Broker::BackendType;
std::unique_ptr<broker::store::backend> backend; std::unique_ptr<broker::store::backend> backend;
if ( backend_type ) if ( backend_type )
@ -91,7 +91,7 @@ bro_broker::StoreHandleVal::StoreHandleVal(broker::store::identifier id,
void bro_broker::StoreHandleVal::ValDescribe(ODesc* d) const void bro_broker::StoreHandleVal::ValDescribe(ODesc* d) const
{ {
using BifEnum::BrokerStore::BackendType; using BifEnum::Broker::BackendType;
d->Add("broker::store::"); d->Add("broker::store::");
switch ( store_type ) { switch ( store_type ) {

View file

@ -25,9 +25,9 @@ enum StoreType {
}; };
/** /**
* Create a BrokerStore::QueryStatus value. * Create a Broker::QueryStatus value.
* @param success whether the query status should be set to success or failure. * @param success whether the query status should be set to success or failure.
* @return a BrokerStore::QueryStatus value. * @return a Broker::QueryStatus value.
*/ */
inline EnumVal* query_status(bool success) inline EnumVal* query_status(bool success)
{ {
@ -37,34 +37,34 @@ inline EnumVal* query_status(bool success)
if ( ! store_query_status ) if ( ! store_query_status )
{ {
store_query_status = internal_type("BrokerStore::QueryStatus")->AsEnumType(); store_query_status = internal_type("Broker::QueryStatus")->AsEnumType();
success_val = store_query_status->Lookup("BrokerStore", "SUCCESS"); success_val = store_query_status->Lookup("Broker", "SUCCESS");
failure_val = store_query_status->Lookup("BrokerStore", "FAILURE"); failure_val = store_query_status->Lookup("Broker", "FAILURE");
} }
return new EnumVal(success ? success_val : failure_val, store_query_status); return new EnumVal(success ? success_val : failure_val, store_query_status);
} }
/** /**
* @return a BrokerStore::QueryResult value that has a BrokerStore::QueryStatus indicating * @return a Broker::QueryResult value that has a Broker::QueryStatus indicating
* a failure. * a failure.
*/ */
inline RecordVal* query_result() inline RecordVal* query_result()
{ {
auto rval = new RecordVal(BifType::Record::BrokerStore::QueryResult); auto rval = new RecordVal(BifType::Record::Broker::QueryResult);
rval->Assign(0, query_status(false)); rval->Assign(0, query_status(false));
rval->Assign(1, new RecordVal(BifType::Record::BrokerComm::Data)); rval->Assign(1, new RecordVal(BifType::Record::Broker::Data));
return rval; return rval;
} }
/** /**
* @param data the result of the query. * @param data the result of the query.
* @return a BrokerStore::QueryResult value that has a BrokerStore::QueryStatus indicating * @return a Broker::QueryResult value that has a Broker::QueryStatus indicating
* a success. * a success.
*/ */
inline RecordVal* query_result(RecordVal* data) inline RecordVal* query_result(RecordVal* data)
{ {
auto rval = new RecordVal(BifType::Record::BrokerStore::QueryResult); auto rval = new RecordVal(BifType::Record::Broker::QueryResult);
rval->Assign(0, query_status(true)); rval->Assign(0, query_status(true));
rval->Assign(1, data); rval->Assign(1, data);
return rval; return rval;
@ -130,7 +130,7 @@ public:
StoreHandleVal(broker::store::identifier id, StoreHandleVal(broker::store::identifier id,
bro_broker::StoreType arg_type, bro_broker::StoreType arg_type,
broker::util::optional<BifEnum::BrokerStore::BackendType> arg_back, broker::util::optional<BifEnum::Broker::BackendType> arg_back,
RecordVal* backend_options, RecordVal* backend_options,
std::chrono::duration<double> resync = std::chrono::seconds(1)); std::chrono::duration<double> resync = std::chrono::seconds(1));
@ -140,7 +140,7 @@ public:
broker::store::frontend* store; broker::store::frontend* store;
bro_broker::StoreType store_type; bro_broker::StoreType store_type;
broker::util::optional<BifEnum::BrokerStore::BackendType> backend_type; broker::util::optional<BifEnum::Broker::BackendType> backend_type;
protected: protected:

View file

@ -5,124 +5,124 @@
#include "broker/Manager.h" #include "broker/Manager.h"
%%} %%}
module BrokerComm; module Broker;
type BrokerComm::EndpointFlags: record; type Broker::EndpointFlags: record;
## Enable use of communication. ## Enable use of communication.
## ##
## flags: used to tune the local Broker endpoint behavior. ## flags: used to tune the local Broker endpoint behavior.
## ##
## Returns: true if communication is successfully initialized. ## Returns: true if communication is successfully initialized.
function BrokerComm::enable%(flags: EndpointFlags &default = EndpointFlags()%): bool function Broker::enable%(flags: EndpointFlags &default = EndpointFlags()%): bool
%{ %{
return new Val(broker_mgr->Enable(flags), TYPE_BOOL); return new Val(broker_mgr->Enable(flags), TYPE_BOOL);
%} %}
## Changes endpoint flags originally supplied to :bro:see:`BrokerComm::enable`. ## Changes endpoint flags originally supplied to :bro:see:`Broker::enable`.
## ##
## flags: the new endpoint behavior flags to use. ## flags: the new endpoint behavior flags to use.
## ##
## Returns: true if flags were changed. ## Returns: true if flags were changed.
function BrokerComm::set_endpoint_flags%(flags: EndpointFlags &default = EndpointFlags()%): bool function Broker::set_endpoint_flags%(flags: EndpointFlags &default = EndpointFlags()%): bool
%{ %{
return new Val(broker_mgr->SetEndpointFlags(flags), TYPE_BOOL); return new Val(broker_mgr->SetEndpointFlags(flags), TYPE_BOOL);
%} %}
## Allow sending messages to peers if associated with the given topic. ## Allow sending messages to peers if associated with the given topic.
## This has no effect if auto publication behavior is enabled via the flags ## This has no effect if auto publication behavior is enabled via the flags
## supplied to :bro:see:`BrokerComm::enable` or :bro:see:`BrokerComm::set_endpoint_flags`. ## supplied to :bro:see:`Broker::enable` or :bro:see:`Broker::set_endpoint_flags`.
## ##
## topic: a topic to allow messages to be published under. ## topic: a topic to allow messages to be published under.
## ##
## Returns: true if successful. ## Returns: true if successful.
function BrokerComm::publish_topic%(topic: string%): bool function Broker::publish_topic%(topic: string%): bool
%{ %{
return new Val(broker_mgr->PublishTopic(topic->CheckString()), TYPE_BOOL); return new Val(broker_mgr->PublishTopic(topic->CheckString()), TYPE_BOOL);
%} %}
## Disallow sending messages to peers if associated with the given topic. ## Disallow sending messages to peers if associated with the given topic.
## This has no effect if auto publication behavior is enabled via the flags ## This has no effect if auto publication behavior is enabled via the flags
## supplied to :bro:see:`BrokerComm::enable` or :bro:see:`BrokerComm::set_endpoint_flags`. ## supplied to :bro:see:`Broker::enable` or :bro:see:`Broker::set_endpoint_flags`.
## ##
## topic: a topic to disallow messages to be published under. ## topic: a topic to disallow messages to be published under.
## ##
## Returns: true if successful. ## Returns: true if successful.
function BrokerComm::unpublish_topic%(topic: string%): bool function Broker::unpublish_topic%(topic: string%): bool
%{ %{
return new Val(broker_mgr->UnpublishTopic(topic->CheckString()), TYPE_BOOL); return new Val(broker_mgr->UnpublishTopic(topic->CheckString()), TYPE_BOOL);
%} %}
## Allow advertising interest in the given topic to peers. ## Allow advertising interest in the given topic to peers.
## This has no effect if auto advertise behavior is enabled via the flags ## This has no effect if auto advertise behavior is enabled via the flags
## supplied to :bro:see:`BrokerComm::enable` or :bro:see:`BrokerComm::set_endpoint_flags`. ## supplied to :bro:see:`Broker::enable` or :bro:see:`Broker::set_endpoint_flags`.
## ##
## topic: a topic to allow advertising interest/subscription to peers. ## topic: a topic to allow advertising interest/subscription to peers.
## ##
## Returns: true if successful. ## Returns: true if successful.
function BrokerComm::advertise_topic%(topic: string%): bool function Broker::advertise_topic%(topic: string%): bool
%{ %{
return new Val(broker_mgr->AdvertiseTopic(topic->CheckString()), TYPE_BOOL); return new Val(broker_mgr->AdvertiseTopic(topic->CheckString()), TYPE_BOOL);
%} %}
## Disallow advertising interest in the given topic to peers. ## Disallow advertising interest in the given topic to peers.
## This has no effect if auto advertise behavior is enabled via the flags ## This has no effect if auto advertise behavior is enabled via the flags
## supplied to :bro:see:`BrokerComm::enable` or :bro:see:`BrokerComm::set_endpoint_flags`. ## supplied to :bro:see:`Broker::enable` or :bro:see:`Broker::set_endpoint_flags`.
## ##
## topic: a topic to disallow advertising interest/subscription to peers. ## topic: a topic to disallow advertising interest/subscription to peers.
## ##
## Returns: true if successful. ## Returns: true if successful.
function BrokerComm::unadvertise_topic%(topic: string%): bool function Broker::unadvertise_topic%(topic: string%): bool
%{ %{
return new Val(broker_mgr->UnadvertiseTopic(topic->CheckString()), TYPE_BOOL); return new Val(broker_mgr->UnadvertiseTopic(topic->CheckString()), TYPE_BOOL);
%} %}
## Generated when a connection has been established due to a previous call ## Generated when a connection has been established due to a previous call
## to :bro:see:`BrokerComm::connect`. ## to :bro:see:`Broker::connect`.
## ##
## peer_address: the address used to connect to the peer. ## peer_address: the address used to connect to the peer.
## ##
## peer_port: the port used to connect to the peer. ## peer_port: the port used to connect to the peer.
## ##
## peer_name: the name by which the peer identified itself. ## peer_name: the name by which the peer identified itself.
event BrokerComm::outgoing_connection_established%(peer_address: string, event Broker::outgoing_connection_established%(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string%); peer_name: string%);
## Generated when a previously established connection becomes broken. ## Generated when a previously established connection becomes broken.
## Reconnection will automatically be attempted at a frequency given ## Reconnection will automatically be attempted at a frequency given
## by the original call to :bro:see:`BrokerComm::connect`. ## by the original call to :bro:see:`Broker::connect`.
## ##
## peer_address: the address used to connect to the peer. ## peer_address: the address used to connect to the peer.
## ##
## peer_port: the port used to connect to the peer. ## peer_port: the port used to connect to the peer.
## ##
## .. bro:see:: BrokerComm::outgoing_connection_established ## .. bro:see:: Broker::outgoing_connection_established
event BrokerComm::outgoing_connection_broken%(peer_address: string, event Broker::outgoing_connection_broken%(peer_address: string,
peer_port: port%); peer_port: port%);
## Generated when a connection via :bro:see:`BrokerComm::connect` has failed ## Generated when a connection via :bro:see:`Broker::connect` has failed
## because the remote side is incompatible. ## because the remote side is incompatible.
## ##
## peer_address: the address used to connect to the peer. ## peer_address: the address used to connect to the peer.
## ##
## peer_port: the port used to connect to the peer. ## peer_port: the port used to connect to the peer.
event BrokerComm::outgoing_connection_incompatible%(peer_address: string, event Broker::outgoing_connection_incompatible%(peer_address: string,
peer_port: port%); peer_port: port%);
## Generated when a peer has established a connection with this process ## Generated when a peer has established a connection with this process
## as a result of previously performing a :bro:see:`BrokerComm::listen`. ## as a result of previously performing a :bro:see:`Broker::listen`.
## ##
## peer_name: the name by which the peer identified itself. ## peer_name: the name by which the peer identified itself.
event BrokerComm::incoming_connection_established%(peer_name: string%); event Broker::incoming_connection_established%(peer_name: string%);
## Generated when a peer that previously established a connection with this ## Generated when a peer that previously established a connection with this
## process becomes disconnected. ## process becomes disconnected.
## ##
## peer_name: the name by which the peer identified itself. ## peer_name: the name by which the peer identified itself.
## ##
## .. bro:see:: BrokerComm::incoming_connection_established ## .. bro:see:: Broker::incoming_connection_established
event BrokerComm::incoming_connection_broken%(peer_name: string%); event Broker::incoming_connection_broken%(peer_name: string%);
## Listen for remote connections. ## Listen for remote connections.
## ##
@ -135,8 +135,8 @@ event BrokerComm::incoming_connection_broken%(peer_name: string%);
## ##
## Returns: true if the local endpoint is now listening for connections. ## Returns: true if the local endpoint is now listening for connections.
## ##
## .. bro:see:: BrokerComm::incoming_connection_established ## .. bro:see:: Broker::incoming_connection_established
function BrokerComm::listen%(p: port, a: string &default = "", function Broker::listen%(p: port, a: string &default = "",
reuse: bool &default = T%): bool reuse: bool &default = T%): bool
%{ %{
if ( ! p->IsTCP() ) if ( ! p->IsTCP() )
@ -164,8 +164,8 @@ function BrokerComm::listen%(p: port, a: string &default = "",
## it's a new peer. The actual connection may not be established ## it's a new peer. The actual connection may not be established
## until a later point in time. ## until a later point in time.
## ##
## .. bro:see:: BrokerComm::outgoing_connection_established ## .. bro:see:: Broker::outgoing_connection_established
function BrokerComm::connect%(a: string, p: port, retry: interval%): bool function Broker::connect%(a: string, p: port, retry: interval%): bool
%{ %{
if ( ! p->IsTCP() ) if ( ! p->IsTCP() )
{ {
@ -180,13 +180,13 @@ function BrokerComm::connect%(a: string, p: port, retry: interval%): bool
## Remove a remote connection. ## Remove a remote connection.
## ##
## a: the address used in previous successful call to :bro:see:`BrokerComm::connect`. ## a: the address used in previous successful call to :bro:see:`Broker::connect`.
## ##
## p: the port used in previous successful call to :bro:see:`BrokerComm::connect`. ## p: the port used in previous successful call to :bro:see:`Broker::connect`.
## ##
## Returns: true if the arguments match a previously successful call to ## Returns: true if the arguments match a previously successful call to
## :bro:see:`BrokerComm::connect`. ## :bro:see:`Broker::connect`.
function BrokerComm::disconnect%(a: string, p: port%): bool function Broker::disconnect%(a: string, p: port%): bool
%{ %{
if ( ! p->IsTCP() ) if ( ! p->IsTCP() )
{ {

View file

@ -5,9 +5,9 @@
#include "broker/Data.h" #include "broker/Data.h"
%%} %%}
module BrokerComm; module Broker;
## Enumerates the possible types that :bro:see:`BrokerComm::Data` may be in ## Enumerates the possible types that :bro:see:`Broker::Data` may be in
## terms of Bro data types. ## terms of Bro data types.
enum DataType %{ enum DataType %{
BOOL, BOOL,
@ -27,9 +27,9 @@ enum DataType %{
RECORD, RECORD,
%} %}
type BrokerComm::Data: record; type Broker::Data: record;
type BrokerComm::TableItem: record; type Broker::TableItem: record;
## Convert any Bro value to communication data. ## Convert any Bro value to communication data.
## ##
@ -39,7 +39,7 @@ type BrokerComm::TableItem: record;
## field will not be set if the conversion was not possible (this can ## field will not be set if the conversion was not possible (this can
## happen if the Bro data type does not support being converted to ## happen if the Bro data type does not support being converted to
## communication data). ## communication data).
function BrokerComm::data%(d: any%): BrokerComm::Data function Broker::data%(d: any%): Broker::Data
%{ %{
return bro_broker::make_data_val(d); return bro_broker::make_data_val(d);
%} %}
@ -49,75 +49,75 @@ function BrokerComm::data%(d: any%): BrokerComm::Data
## d: the communication data. ## d: the communication data.
## ##
## Returns: the data type associated with the communication data. ## Returns: the data type associated with the communication data.
function BrokerComm::data_type%(d: BrokerComm::Data%): BrokerComm::DataType function Broker::data_type%(d: Broker::Data%): Broker::DataType
%{ %{
return bro_broker::get_data_type(d->AsRecordVal(), frame); return bro_broker::get_data_type(d->AsRecordVal(), frame);
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::BOOL` to ## Convert communication data with a type of :bro:see:`Broker::BOOL` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_bool%(d: BrokerComm::Data%): bool function Broker::refine_to_bool%(d: Broker::Data%): bool
%{ %{
return bro_broker::refine<bool>(d->AsRecordVal(), TYPE_BOOL, frame); return bro_broker::refine<bool>(d->AsRecordVal(), TYPE_BOOL, frame);
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::INT` to ## Convert communication data with a type of :bro:see:`Broker::INT` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_int%(d: BrokerComm::Data%): int function Broker::refine_to_int%(d: Broker::Data%): int
%{ %{
return bro_broker::refine<int64_t>(d->AsRecordVal(), TYPE_INT, frame); return bro_broker::refine<int64_t>(d->AsRecordVal(), TYPE_INT, frame);
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::COUNT` to ## Convert communication data with a type of :bro:see:`Broker::COUNT` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_count%(d: BrokerComm::Data%): count function Broker::refine_to_count%(d: Broker::Data%): count
%{ %{
return bro_broker::refine<uint64_t>(d->AsRecordVal(), TYPE_COUNT, frame); return bro_broker::refine<uint64_t>(d->AsRecordVal(), TYPE_COUNT, frame);
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::DOUBLE` to ## Convert communication data with a type of :bro:see:`Broker::DOUBLE` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_double%(d: BrokerComm::Data%): double function Broker::refine_to_double%(d: Broker::Data%): double
%{ %{
return bro_broker::refine<double>(d->AsRecordVal(), TYPE_DOUBLE, frame); return bro_broker::refine<double>(d->AsRecordVal(), TYPE_DOUBLE, frame);
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::STRING` to ## Convert communication data with a type of :bro:see:`Broker::STRING` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_string%(d: BrokerComm::Data%): string function Broker::refine_to_string%(d: Broker::Data%): string
%{ %{
return new StringVal(bro_broker::require_data_type<std::string>(d->AsRecordVal(), return new StringVal(bro_broker::require_data_type<std::string>(d->AsRecordVal(),
TYPE_STRING, TYPE_STRING,
frame)); frame));
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::ADDR` to ## Convert communication data with a type of :bro:see:`Broker::ADDR` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_addr%(d: BrokerComm::Data%): addr function Broker::refine_to_addr%(d: Broker::Data%): addr
%{ %{
auto& a = bro_broker::require_data_type<broker::address>(d->AsRecordVal(), auto& a = bro_broker::require_data_type<broker::address>(d->AsRecordVal(),
TYPE_ADDR, frame); TYPE_ADDR, frame);
@ -125,13 +125,13 @@ function BrokerComm::refine_to_addr%(d: BrokerComm::Data%): addr
return new AddrVal(IPAddr(*bits)); return new AddrVal(IPAddr(*bits));
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::SUBNET` to ## Convert communication data with a type of :bro:see:`Broker::SUBNET` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_subnet%(d: BrokerComm::Data%): subnet function Broker::refine_to_subnet%(d: Broker::Data%): subnet
%{ %{
auto& a = bro_broker::require_data_type<broker::subnet>(d->AsRecordVal(), auto& a = bro_broker::require_data_type<broker::subnet>(d->AsRecordVal(),
TYPE_SUBNET, frame); TYPE_SUBNET, frame);
@ -139,53 +139,53 @@ function BrokerComm::refine_to_subnet%(d: BrokerComm::Data%): subnet
return new SubNetVal(IPPrefix(IPAddr(*bits), a.length())); return new SubNetVal(IPPrefix(IPAddr(*bits), a.length()));
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::PORT` to ## Convert communication data with a type of :bro:see:`Broker::PORT` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_port%(d: BrokerComm::Data%): port function Broker::refine_to_port%(d: Broker::Data%): port
%{ %{
auto& a = bro_broker::require_data_type<broker::port>(d->AsRecordVal(), auto& a = bro_broker::require_data_type<broker::port>(d->AsRecordVal(),
TYPE_SUBNET, frame); TYPE_SUBNET, frame);
return new PortVal(a.number(), bro_broker::to_bro_port_proto(a.type())); return new PortVal(a.number(), bro_broker::to_bro_port_proto(a.type()));
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::TIME` to ## Convert communication data with a type of :bro:see:`Broker::TIME` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_time%(d: BrokerComm::Data%): time function Broker::refine_to_time%(d: Broker::Data%): time
%{ %{
auto v = bro_broker::require_data_type<broker::time_point>(d->AsRecordVal(), auto v = bro_broker::require_data_type<broker::time_point>(d->AsRecordVal(),
TYPE_TIME, frame).value; TYPE_TIME, frame).value;
return new Val(v, TYPE_TIME); return new Val(v, TYPE_TIME);
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::INTERVAL` to ## Convert communication data with a type of :bro:see:`Broker::INTERVAL` to
## an actual Bro value. ## an actual Bro value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the value retrieved from the communication data. ## Returns: the value retrieved from the communication data.
function BrokerComm::refine_to_interval%(d: BrokerComm::Data%): interval function Broker::refine_to_interval%(d: Broker::Data%): interval
%{ %{
auto v = bro_broker::require_data_type<broker::time_duration>(d->AsRecordVal(), auto v = bro_broker::require_data_type<broker::time_duration>(d->AsRecordVal(),
TYPE_TIME, frame).value; TYPE_TIME, frame).value;
return new Val(v, TYPE_INTERVAL); return new Val(v, TYPE_INTERVAL);
%} %}
## Convert communication data with a type of :bro:see:`BrokerComm::ENUM` to ## Convert communication data with a type of :bro:see:`Broker::ENUM` to
## the name of the enum value. :bro:see:`lookup_ID` may be used to convert ## the name of the enum value. :bro:see:`lookup_ID` may be used to convert
## the name to the actual enum value. ## the name to the actual enum value.
## ##
## d: the communication data to convert. ## d: the communication data to convert.
## ##
## Returns: the enum name retrieved from the communication data. ## Returns: the enum name retrieved from the communication data.
function BrokerComm::refine_to_enum_name%(d: BrokerComm::Data%): string function Broker::refine_to_enum_name%(d: Broker::Data%): string
%{ %{
auto& v = bro_broker::require_data_type<broker::enum_value>(d->AsRecordVal(), auto& v = bro_broker::require_data_type<broker::enum_value>(d->AsRecordVal(),
TYPE_ENUM, frame).name; TYPE_ENUM, frame).name;
@ -193,7 +193,7 @@ function BrokerComm::refine_to_enum_name%(d: BrokerComm::Data%): string
%} %}
## Create communication data of type "set". ## Create communication data of type "set".
function BrokerComm::set_create%(%): BrokerComm::Data function Broker::set_create%(%): Broker::Data
%{ %{
return bro_broker::make_data_val(broker::set()); return bro_broker::make_data_val(broker::set());
%} %}
@ -203,7 +203,7 @@ function BrokerComm::set_create%(%): BrokerComm::Data
## s: the set to clear. ## s: the set to clear.
## ##
## Returns: always true. ## Returns: always true.
function BrokerComm::set_clear%(s: BrokerComm::Data%): bool function Broker::set_clear%(s: Broker::Data%): bool
%{ %{
auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE, auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE,
frame); frame);
@ -216,7 +216,7 @@ function BrokerComm::set_clear%(s: BrokerComm::Data%): bool
## s: the set to query. ## s: the set to query.
## ##
## Returns: the number of elements in the set. ## Returns: the number of elements in the set.
function BrokerComm::set_size%(s: BrokerComm::Data%): count function Broker::set_size%(s: Broker::Data%): count
%{ %{
auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE, auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE,
frame); frame);
@ -230,7 +230,7 @@ function BrokerComm::set_size%(s: BrokerComm::Data%): count
## key: the element to check for existence. ## key: the element to check for existence.
## ##
## Returns: true if the key exists in the set. ## Returns: true if the key exists in the set.
function BrokerComm::set_contains%(s: BrokerComm::Data, key: BrokerComm::Data%): bool function Broker::set_contains%(s: Broker::Data, key: Broker::Data%): bool
%{ %{
auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE, auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE,
frame); frame);
@ -245,7 +245,7 @@ function BrokerComm::set_contains%(s: BrokerComm::Data, key: BrokerComm::Data%):
## key: the element to insert. ## key: the element to insert.
## ##
## Returns: true if the key was inserted, or false if it already existed. ## Returns: true if the key was inserted, or false if it already existed.
function BrokerComm::set_insert%(s: BrokerComm::Data, key: BrokerComm::Data%): bool function Broker::set_insert%(s: Broker::Data, key: Broker::Data%): bool
%{ %{
auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE, auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE,
frame); frame);
@ -260,7 +260,7 @@ function BrokerComm::set_insert%(s: BrokerComm::Data, key: BrokerComm::Data%): b
## key: the element to remove. ## key: the element to remove.
## ##
## Returns: true if the element existed in the set and is now removed. ## Returns: true if the element existed in the set and is now removed.
function BrokerComm::set_remove%(s: BrokerComm::Data, key: BrokerComm::Data%): bool function Broker::set_remove%(s: Broker::Data, key: Broker::Data%): bool
%{ %{
auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE, auto& v = bro_broker::require_data_type<broker::set>(s->AsRecordVal(), TYPE_TABLE,
frame); frame);
@ -274,7 +274,7 @@ function BrokerComm::set_remove%(s: BrokerComm::Data, key: BrokerComm::Data%): b
## s: the set to iterate over. ## s: the set to iterate over.
## ##
## Returns: an iterator. ## Returns: an iterator.
function BrokerComm::set_iterator%(s: BrokerComm::Data%): opaque of BrokerComm::SetIterator function Broker::set_iterator%(s: Broker::Data%): opaque of Broker::SetIterator
%{ %{
return new bro_broker::SetIterator(s->AsRecordVal(), TYPE_TABLE, frame); return new bro_broker::SetIterator(s->AsRecordVal(), TYPE_TABLE, frame);
%} %}
@ -285,7 +285,7 @@ function BrokerComm::set_iterator%(s: BrokerComm::Data%): opaque of BrokerComm::
## ##
## Returns: true if there are no more elements to iterator over, i.e. ## Returns: true if there are no more elements to iterator over, i.e.
## the iterator is one-past-the-final-element. ## the iterator is one-past-the-final-element.
function BrokerComm::set_iterator_last%(it: opaque of BrokerComm::SetIterator%): bool function Broker::set_iterator_last%(it: opaque of Broker::SetIterator%): bool
%{ %{
auto set_it = static_cast<bro_broker::SetIterator*>(it); auto set_it = static_cast<bro_broker::SetIterator*>(it);
return new Val(set_it->it == set_it->dat.end(), TYPE_BOOL); return new Val(set_it->it == set_it->dat.end(), TYPE_BOOL);
@ -298,7 +298,7 @@ function BrokerComm::set_iterator_last%(it: opaque of BrokerComm::SetIterator%):
## Returns: true if the iterator, after advancing, still references an element ## Returns: true if the iterator, after advancing, still references an element
## in the collection. False if the iterator, after advancing, is ## in the collection. False if the iterator, after advancing, is
## one-past-the-final-element. ## one-past-the-final-element.
function BrokerComm::set_iterator_next%(it: opaque of BrokerComm::SetIterator%): bool function Broker::set_iterator_next%(it: opaque of Broker::SetIterator%): bool
%{ %{
auto set_it = static_cast<bro_broker::SetIterator*>(it); auto set_it = static_cast<bro_broker::SetIterator*>(it);
@ -314,10 +314,10 @@ function BrokerComm::set_iterator_next%(it: opaque of BrokerComm::SetIterator%):
## it: an iterator. ## it: an iterator.
## ##
## Returns: element in the collection that the iterator currently references. ## Returns: element in the collection that the iterator currently references.
function BrokerComm::set_iterator_value%(it: opaque of BrokerComm::SetIterator%): BrokerComm::Data function Broker::set_iterator_value%(it: opaque of Broker::SetIterator%): Broker::Data
%{ %{
auto set_it = static_cast<bro_broker::SetIterator*>(it); auto set_it = static_cast<bro_broker::SetIterator*>(it);
auto rval = new RecordVal(BifType::Record::BrokerComm::Data); auto rval = new RecordVal(BifType::Record::Broker::Data);
if ( set_it->it == set_it->dat.end() ) if ( set_it->it == set_it->dat.end() )
{ {
@ -332,7 +332,7 @@ function BrokerComm::set_iterator_value%(it: opaque of BrokerComm::SetIterator%)
%} %}
## Create communication data of type "table". ## Create communication data of type "table".
function BrokerComm::table_create%(%): BrokerComm::Data function Broker::table_create%(%): Broker::Data
%{ %{
return bro_broker::make_data_val(broker::table()); return bro_broker::make_data_val(broker::table());
%} %}
@ -342,7 +342,7 @@ function BrokerComm::table_create%(%): BrokerComm::Data
## t: the table to clear. ## t: the table to clear.
## ##
## Returns: always true. ## Returns: always true.
function BrokerComm::table_clear%(t: BrokerComm::Data%): bool function Broker::table_clear%(t: Broker::Data%): bool
%{ %{
auto& v = bro_broker::require_data_type<broker::table>(t->AsRecordVal(), auto& v = bro_broker::require_data_type<broker::table>(t->AsRecordVal(),
TYPE_TABLE, frame); TYPE_TABLE, frame);
@ -355,7 +355,7 @@ function BrokerComm::table_clear%(t: BrokerComm::Data%): bool
## t: the table to query. ## t: the table to query.
## ##
## Returns: the number of elements in the table. ## Returns: the number of elements in the table.
function BrokerComm::table_size%(t: BrokerComm::Data%): count function Broker::table_size%(t: Broker::Data%): count
%{ %{
auto& v = bro_broker::require_data_type<broker::table>(t->AsRecordVal(), auto& v = bro_broker::require_data_type<broker::table>(t->AsRecordVal(),
TYPE_TABLE, frame); TYPE_TABLE, frame);
@ -369,7 +369,7 @@ function BrokerComm::table_size%(t: BrokerComm::Data%): count
## key: the key to check for existence. ## key: the key to check for existence.
## ##
## Returns: true if the key exists in the table. ## Returns: true if the key exists in the table.
function BrokerComm::table_contains%(t: BrokerComm::Data, key: BrokerComm::Data%): bool function Broker::table_contains%(t: Broker::Data, key: Broker::Data%): bool
%{ %{
auto& v = bro_broker::require_data_type<broker::table>(t->AsRecordVal(), auto& v = bro_broker::require_data_type<broker::table>(t->AsRecordVal(),
TYPE_TABLE, frame); TYPE_TABLE, frame);
@ -387,7 +387,7 @@ function BrokerComm::table_contains%(t: BrokerComm::Data, key: BrokerComm::Data%
## ##
## Returns: true if the key-value pair was inserted, or false if the key ## Returns: true if the key-value pair was inserted, or false if the key
## already existed in the table. ## already existed in the table.
function BrokerComm::table_insert%(t: BrokerComm::Data, key: BrokerComm::Data, val: BrokerComm::Data%): BrokerComm::Data function Broker::table_insert%(t: Broker::Data, key: Broker::Data, val: Broker::Data%): Broker::Data
%{ %{
auto& table = bro_broker::require_data_type<broker::table>(t->AsRecordVal(), auto& table = bro_broker::require_data_type<broker::table>(t->AsRecordVal(),
TYPE_TABLE, frame); TYPE_TABLE, frame);
@ -404,7 +404,7 @@ function BrokerComm::table_insert%(t: BrokerComm::Data, key: BrokerComm::Data, v
catch (const std::out_of_range&) catch (const std::out_of_range&)
{ {
table[k] = v; table[k] = v;
return new RecordVal(BifType::Record::BrokerComm::Data); return new RecordVal(BifType::Record::Broker::Data);
} }
%} %}
@ -416,7 +416,7 @@ function BrokerComm::table_insert%(t: BrokerComm::Data, key: BrokerComm::Data, v
## ##
## Returns: the value associated with the key. If the key did not exist, then ## Returns: the value associated with the key. If the key did not exist, then
## the optional field of the returned record is not set. ## the optional field of the returned record is not set.
function BrokerComm::table_remove%(t: BrokerComm::Data, key: BrokerComm::Data%): BrokerComm::Data function Broker::table_remove%(t: Broker::Data, key: Broker::Data%): Broker::Data
%{ %{
auto& table = bro_broker::require_data_type<broker::table>(t->AsRecordVal(), auto& table = bro_broker::require_data_type<broker::table>(t->AsRecordVal(),
TYPE_TABLE, frame); TYPE_TABLE, frame);
@ -424,7 +424,7 @@ function BrokerComm::table_remove%(t: BrokerComm::Data, key: BrokerComm::Data%):
auto it = table.find(k); auto it = table.find(k);
if ( it == table.end() ) if ( it == table.end() )
return new RecordVal(BifType::Record::BrokerComm::Data); return new RecordVal(BifType::Record::Broker::Data);
else else
{ {
auto rval = bro_broker::make_data_val(move(it->second)); auto rval = bro_broker::make_data_val(move(it->second));
@ -441,7 +441,7 @@ function BrokerComm::table_remove%(t: BrokerComm::Data, key: BrokerComm::Data%):
## ##
## Returns: the value associated with the key. If the key did not exist, then ## Returns: the value associated with the key. If the key did not exist, then
## the optional field of the returned record is not set. ## the optional field of the returned record is not set.
function BrokerComm::table_lookup%(t: BrokerComm::Data, key: BrokerComm::Data%): BrokerComm::Data function Broker::table_lookup%(t: Broker::Data, key: Broker::Data%): Broker::Data
%{ %{
auto& table = bro_broker::require_data_type<broker::table>(t->AsRecordVal(), auto& table = bro_broker::require_data_type<broker::table>(t->AsRecordVal(),
TYPE_TABLE, frame); TYPE_TABLE, frame);
@ -449,7 +449,7 @@ function BrokerComm::table_lookup%(t: BrokerComm::Data, key: BrokerComm::Data%):
auto it = table.find(k); auto it = table.find(k);
if ( it == table.end() ) if ( it == table.end() )
return new RecordVal(BifType::Record::BrokerComm::Data); return new RecordVal(BifType::Record::Broker::Data);
else else
return bro_broker::make_data_val(it->second); return bro_broker::make_data_val(it->second);
%} %}
@ -460,7 +460,7 @@ function BrokerComm::table_lookup%(t: BrokerComm::Data, key: BrokerComm::Data%):
## t: the table to iterate over. ## t: the table to iterate over.
## ##
## Returns: an iterator. ## Returns: an iterator.
function BrokerComm::table_iterator%(t: BrokerComm::Data%): opaque of BrokerComm::TableIterator function Broker::table_iterator%(t: Broker::Data%): opaque of Broker::TableIterator
%{ %{
return new bro_broker::TableIterator(t->AsRecordVal(), TYPE_TABLE, frame); return new bro_broker::TableIterator(t->AsRecordVal(), TYPE_TABLE, frame);
%} %}
@ -471,7 +471,7 @@ function BrokerComm::table_iterator%(t: BrokerComm::Data%): opaque of BrokerComm
## ##
## Returns: true if there are no more elements to iterator over, i.e. ## Returns: true if there are no more elements to iterator over, i.e.
## the iterator is one-past-the-final-element. ## the iterator is one-past-the-final-element.
function BrokerComm::table_iterator_last%(it: opaque of BrokerComm::TableIterator%): bool function Broker::table_iterator_last%(it: opaque of Broker::TableIterator%): bool
%{ %{
auto ti = static_cast<bro_broker::TableIterator*>(it); auto ti = static_cast<bro_broker::TableIterator*>(it);
return new Val(ti->it == ti->dat.end(), TYPE_BOOL); return new Val(ti->it == ti->dat.end(), TYPE_BOOL);
@ -484,7 +484,7 @@ function BrokerComm::table_iterator_last%(it: opaque of BrokerComm::TableIterato
## Returns: true if the iterator, after advancing, still references an element ## Returns: true if the iterator, after advancing, still references an element
## in the collection. False if the iterator, after advancing, is ## in the collection. False if the iterator, after advancing, is
## one-past-the-final-element. ## one-past-the-final-element.
function BrokerComm::table_iterator_next%(it: opaque of BrokerComm::TableIterator%): bool function Broker::table_iterator_next%(it: opaque of Broker::TableIterator%): bool
%{ %{
auto ti = static_cast<bro_broker::TableIterator*>(it); auto ti = static_cast<bro_broker::TableIterator*>(it);
@ -500,12 +500,12 @@ function BrokerComm::table_iterator_next%(it: opaque of BrokerComm::TableIterato
## it: an iterator. ## it: an iterator.
## ##
## Returns: element in the collection that the iterator currently references. ## Returns: element in the collection that the iterator currently references.
function BrokerComm::table_iterator_value%(it: opaque of BrokerComm::TableIterator%): BrokerComm::TableItem function Broker::table_iterator_value%(it: opaque of Broker::TableIterator%): Broker::TableItem
%{ %{
auto ti = static_cast<bro_broker::TableIterator*>(it); auto ti = static_cast<bro_broker::TableIterator*>(it);
auto rval = new RecordVal(BifType::Record::BrokerComm::TableItem); auto rval = new RecordVal(BifType::Record::Broker::TableItem);
auto key_val = new RecordVal(BifType::Record::BrokerComm::Data); auto key_val = new RecordVal(BifType::Record::Broker::Data);
auto val_val = new RecordVal(BifType::Record::BrokerComm::Data); auto val_val = new RecordVal(BifType::Record::Broker::Data);
rval->Assign(0, key_val); rval->Assign(0, key_val);
rval->Assign(1, val_val); rval->Assign(1, val_val);
@ -523,7 +523,7 @@ function BrokerComm::table_iterator_value%(it: opaque of BrokerComm::TableIterat
%} %}
## Create communication data of type "vector". ## Create communication data of type "vector".
function BrokerComm::vector_create%(%): BrokerComm::Data function Broker::vector_create%(%): Broker::Data
%{ %{
return bro_broker::make_data_val(broker::vector()); return bro_broker::make_data_val(broker::vector());
%} %}
@ -533,7 +533,7 @@ function BrokerComm::vector_create%(%): BrokerComm::Data
## v: the vector to clear. ## v: the vector to clear.
## ##
## Returns: always true. ## Returns: always true.
function BrokerComm::vector_clear%(v: BrokerComm::Data%): bool function Broker::vector_clear%(v: Broker::Data%): bool
%{ %{
auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(), auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(),
TYPE_VECTOR, frame); TYPE_VECTOR, frame);
@ -546,7 +546,7 @@ function BrokerComm::vector_clear%(v: BrokerComm::Data%): bool
## v: the vector to query. ## v: the vector to query.
## ##
## Returns: the number of elements in the vector. ## Returns: the number of elements in the vector.
function BrokerComm::vector_size%(v: BrokerComm::Data%): count function Broker::vector_size%(v: Broker::Data%): count
%{ %{
auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(), auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(),
TYPE_VECTOR, frame); TYPE_VECTOR, frame);
@ -564,7 +564,7 @@ function BrokerComm::vector_size%(v: BrokerComm::Data%): count
## current size of the vector, the element is inserted at the end. ## current size of the vector, the element is inserted at the end.
## ##
## Returns: always true. ## Returns: always true.
function BrokerComm::vector_insert%(v: BrokerComm::Data, d: BrokerComm::Data, idx: count%): bool function Broker::vector_insert%(v: Broker::Data, d: Broker::Data, idx: count%): bool
%{ %{
auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(), auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(),
TYPE_VECTOR, frame); TYPE_VECTOR, frame);
@ -584,14 +584,14 @@ function BrokerComm::vector_insert%(v: BrokerComm::Data, d: BrokerComm::Data, id
## ##
## Returns: the value that was just evicted. If the index was larger than any ## Returns: the value that was just evicted. If the index was larger than any
## valid index, the optional field of the returned record is not set. ## valid index, the optional field of the returned record is not set.
function BrokerComm::vector_replace%(v: BrokerComm::Data, d: BrokerComm::Data, idx: count%): BrokerComm::Data function Broker::vector_replace%(v: Broker::Data, d: Broker::Data, idx: count%): Broker::Data
%{ %{
auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(), auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(),
TYPE_VECTOR, frame); TYPE_VECTOR, frame);
auto& item = bro_broker::opaque_field_to_data(d->AsRecordVal(), frame); auto& item = bro_broker::opaque_field_to_data(d->AsRecordVal(), frame);
if ( idx >= vec.size() ) if ( idx >= vec.size() )
return new RecordVal(BifType::Record::BrokerComm::Data); return new RecordVal(BifType::Record::Broker::Data);
auto rval = bro_broker::make_data_val(move(vec[idx])); auto rval = bro_broker::make_data_val(move(vec[idx]));
vec[idx] = item; vec[idx] = item;
@ -606,13 +606,13 @@ function BrokerComm::vector_replace%(v: BrokerComm::Data, d: BrokerComm::Data, i
## ##
## Returns: the value that was just evicted. If the index was larger than any ## Returns: the value that was just evicted. If the index was larger than any
## valid index, the optional field of the returned record is not set. ## valid index, the optional field of the returned record is not set.
function BrokerComm::vector_remove%(v: BrokerComm::Data, idx: count%): BrokerComm::Data function Broker::vector_remove%(v: Broker::Data, idx: count%): Broker::Data
%{ %{
auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(), auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(),
TYPE_VECTOR, frame); TYPE_VECTOR, frame);
if ( idx >= vec.size() ) if ( idx >= vec.size() )
return new RecordVal(BifType::Record::BrokerComm::Data); return new RecordVal(BifType::Record::Broker::Data);
auto rval = bro_broker::make_data_val(move(vec[idx])); auto rval = bro_broker::make_data_val(move(vec[idx]));
vec.erase(vec.begin() + idx); vec.erase(vec.begin() + idx);
@ -627,13 +627,13 @@ function BrokerComm::vector_remove%(v: BrokerComm::Data, idx: count%): BrokerCom
## ##
## Returns: the value at the index. If the index was larger than any ## Returns: the value at the index. If the index was larger than any
## valid index, the optional field of the returned record is not set. ## valid index, the optional field of the returned record is not set.
function BrokerComm::vector_lookup%(v: BrokerComm::Data, idx: count%): BrokerComm::Data function Broker::vector_lookup%(v: Broker::Data, idx: count%): Broker::Data
%{ %{
auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(), auto& vec = bro_broker::require_data_type<broker::vector>(v->AsRecordVal(),
TYPE_VECTOR, frame); TYPE_VECTOR, frame);
if ( idx >= vec.size() ) if ( idx >= vec.size() )
return new RecordVal(BifType::Record::BrokerComm::Data); return new RecordVal(BifType::Record::Broker::Data);
return bro_broker::make_data_val(vec[idx]); return bro_broker::make_data_val(vec[idx]);
%} %}
@ -644,7 +644,7 @@ function BrokerComm::vector_lookup%(v: BrokerComm::Data, idx: count%): BrokerCom
## v: the vector to iterate over. ## v: the vector to iterate over.
## ##
## Returns: an iterator. ## Returns: an iterator.
function BrokerComm::vector_iterator%(v: BrokerComm::Data%): opaque of BrokerComm::VectorIterator function Broker::vector_iterator%(v: Broker::Data%): opaque of Broker::VectorIterator
%{ %{
return new bro_broker::VectorIterator(v->AsRecordVal(), TYPE_VECTOR, frame); return new bro_broker::VectorIterator(v->AsRecordVal(), TYPE_VECTOR, frame);
%} %}
@ -655,7 +655,7 @@ function BrokerComm::vector_iterator%(v: BrokerComm::Data%): opaque of BrokerCom
## ##
## Returns: true if there are no more elements to iterator over, i.e. ## Returns: true if there are no more elements to iterator over, i.e.
## the iterator is one-past-the-final-element. ## the iterator is one-past-the-final-element.
function BrokerComm::vector_iterator_last%(it: opaque of BrokerComm::VectorIterator%): bool function Broker::vector_iterator_last%(it: opaque of Broker::VectorIterator%): bool
%{ %{
auto vi = static_cast<bro_broker::VectorIterator*>(it); auto vi = static_cast<bro_broker::VectorIterator*>(it);
return new Val(vi->it == vi->dat.end(), TYPE_BOOL); return new Val(vi->it == vi->dat.end(), TYPE_BOOL);
@ -668,7 +668,7 @@ function BrokerComm::vector_iterator_last%(it: opaque of BrokerComm::VectorItera
## Returns: true if the iterator, after advancing, still references an element ## Returns: true if the iterator, after advancing, still references an element
## in the collection. False if the iterator, after advancing, is ## in the collection. False if the iterator, after advancing, is
## one-past-the-final-element. ## one-past-the-final-element.
function BrokerComm::vector_iterator_next%(it: opaque of BrokerComm::VectorIterator%): bool function Broker::vector_iterator_next%(it: opaque of Broker::VectorIterator%): bool
%{ %{
auto vi = static_cast<bro_broker::VectorIterator*>(it); auto vi = static_cast<bro_broker::VectorIterator*>(it);
@ -684,10 +684,10 @@ function BrokerComm::vector_iterator_next%(it: opaque of BrokerComm::VectorItera
## it: an iterator. ## it: an iterator.
## ##
## Returns: element in the collection that the iterator currently references. ## Returns: element in the collection that the iterator currently references.
function BrokerComm::vector_iterator_value%(it: opaque of BrokerComm::VectorIterator%): BrokerComm::Data function Broker::vector_iterator_value%(it: opaque of Broker::VectorIterator%): Broker::Data
%{ %{
auto vi = static_cast<bro_broker::VectorIterator*>(it); auto vi = static_cast<bro_broker::VectorIterator*>(it);
auto rval = new RecordVal(BifType::Record::BrokerComm::Data); auto rval = new RecordVal(BifType::Record::Broker::Data);
if ( vi->it == vi->dat.end() ) if ( vi->it == vi->dat.end() )
{ {
@ -706,7 +706,7 @@ function BrokerComm::vector_iterator_value%(it: opaque of BrokerComm::VectorIter
## sz: the number of fields in the record. ## sz: the number of fields in the record.
## ##
## Returns: record data, with all fields uninitialized. ## Returns: record data, with all fields uninitialized.
function BrokerComm::record_create%(sz: count%): BrokerComm::Data function Broker::record_create%(sz: count%): Broker::Data
%{ %{
return bro_broker::make_data_val(broker::record(std::vector<broker::record::field>(sz))); return bro_broker::make_data_val(broker::record(std::vector<broker::record::field>(sz)));
%} %}
@ -716,7 +716,7 @@ function BrokerComm::record_create%(sz: count%): BrokerComm::Data
## r: the record to query. ## r: the record to query.
## ##
## Returns: the number of fields in the record. ## Returns: the number of fields in the record.
function BrokerComm::record_size%(r: BrokerComm::Data%): count function Broker::record_size%(r: Broker::Data%): count
%{ %{
auto& v = bro_broker::require_data_type<broker::record>(r->AsRecordVal(), auto& v = bro_broker::require_data_type<broker::record>(r->AsRecordVal(),
TYPE_RECORD, frame); TYPE_RECORD, frame);
@ -732,7 +732,7 @@ function BrokerComm::record_size%(r: BrokerComm::Data%): count
## idx: the index to replace. ## idx: the index to replace.
## ##
## Returns: false if the index was larger than any valid index, else true. ## Returns: false if the index was larger than any valid index, else true.
function BrokerComm::record_assign%(r: BrokerComm::Data, d: BrokerComm::Data, idx: count%): bool function Broker::record_assign%(r: Broker::Data, d: Broker::Data, idx: count%): bool
%{ %{
auto& v = bro_broker::require_data_type<broker::record>(r->AsRecordVal(), auto& v = bro_broker::require_data_type<broker::record>(r->AsRecordVal(),
TYPE_RECORD, frame); TYPE_RECORD, frame);
@ -754,16 +754,16 @@ function BrokerComm::record_assign%(r: BrokerComm::Data, d: BrokerComm::Data, id
## Returns: the value at the index. The optional field of the returned record ## Returns: the value at the index. The optional field of the returned record
## may not be set if the field of the record has no value or if the ## may not be set if the field of the record has no value or if the
## index was not valid. ## index was not valid.
function BrokerComm::record_lookup%(r: BrokerComm::Data, idx: count%): BrokerComm::Data function Broker::record_lookup%(r: Broker::Data, idx: count%): Broker::Data
%{ %{
auto& v = bro_broker::require_data_type<broker::record>(r->AsRecordVal(), auto& v = bro_broker::require_data_type<broker::record>(r->AsRecordVal(),
TYPE_RECORD, frame); TYPE_RECORD, frame);
if ( idx >= v.size() ) if ( idx >= v.size() )
return new RecordVal(BifType::Record::BrokerComm::Data); return new RecordVal(BifType::Record::Broker::Data);
if ( ! v.fields[idx] ) if ( ! v.fields[idx] )
return new RecordVal(BifType::Record::BrokerComm::Data); return new RecordVal(BifType::Record::Broker::Data);
return bro_broker::make_data_val(*v.fields[idx]); return bro_broker::make_data_val(*v.fields[idx]);
%} %}
@ -774,7 +774,7 @@ function BrokerComm::record_lookup%(r: BrokerComm::Data, idx: count%): BrokerCom
## r: the record to iterate over. ## r: the record to iterate over.
## ##
## Returns: an iterator. ## Returns: an iterator.
function BrokerComm::record_iterator%(r: BrokerComm::Data%): opaque of BrokerComm::RecordIterator function Broker::record_iterator%(r: Broker::Data%): opaque of Broker::RecordIterator
%{ %{
return new bro_broker::RecordIterator(r->AsRecordVal(), TYPE_RECORD, frame); return new bro_broker::RecordIterator(r->AsRecordVal(), TYPE_RECORD, frame);
%} %}
@ -785,7 +785,7 @@ function BrokerComm::record_iterator%(r: BrokerComm::Data%): opaque of BrokerCom
## ##
## Returns: true if there are no more elements to iterator over, i.e. ## Returns: true if there are no more elements to iterator over, i.e.
## the iterator is one-past-the-final-element. ## the iterator is one-past-the-final-element.
function BrokerComm::record_iterator_last%(it: opaque of BrokerComm::RecordIterator%): bool function Broker::record_iterator_last%(it: opaque of Broker::RecordIterator%): bool
%{ %{
auto ri = static_cast<bro_broker::RecordIterator*>(it); auto ri = static_cast<bro_broker::RecordIterator*>(it);
return new Val(ri->it == ri->dat.fields.end(), TYPE_BOOL); return new Val(ri->it == ri->dat.fields.end(), TYPE_BOOL);
@ -798,7 +798,7 @@ function BrokerComm::record_iterator_last%(it: opaque of BrokerComm::RecordItera
## Returns: true if the iterator, after advancing, still references an element ## Returns: true if the iterator, after advancing, still references an element
## in the collection. False if the iterator, after advancing, is ## in the collection. False if the iterator, after advancing, is
## one-past-the-final-element. ## one-past-the-final-element.
function BrokerComm::record_iterator_next%(it: opaque of BrokerComm::RecordIterator%): bool function Broker::record_iterator_next%(it: opaque of Broker::RecordIterator%): bool
%{ %{
auto ri = static_cast<bro_broker::RecordIterator*>(it); auto ri = static_cast<bro_broker::RecordIterator*>(it);
@ -814,10 +814,10 @@ function BrokerComm::record_iterator_next%(it: opaque of BrokerComm::RecordItera
## it: an iterator. ## it: an iterator.
## ##
## Returns: element in the collection that the iterator currently references. ## Returns: element in the collection that the iterator currently references.
function BrokerComm::record_iterator_value%(it: opaque of BrokerComm::RecordIterator%): BrokerComm::Data function Broker::record_iterator_value%(it: opaque of Broker::RecordIterator%): Broker::Data
%{ %{
auto ri = static_cast<bro_broker::RecordIterator*>(it); auto ri = static_cast<bro_broker::RecordIterator*>(it);
auto rval = new RecordVal(BifType::Record::BrokerComm::Data); auto rval = new RecordVal(BifType::Record::Broker::Data);
if ( ri->it == ri->dat.fields.end() ) if ( ri->it == ri->dat.fields.end() )
{ {

View file

@ -6,18 +6,18 @@
#include "logging/Manager.h" #include "logging/Manager.h"
%%} %%}
module BrokerComm; module Broker;
type BrokerComm::SendFlags: record; type Broker::SendFlags: record;
type BrokerComm::EventArgs: record; type Broker::EventArgs: record;
## Used to handle remote print messages from peers that call ## Used to handle remote print messages from peers that call
## :bro:see:`BrokerComm::print`. ## :bro:see:`Broker::print`.
event BrokerComm::print_handler%(msg: string%); event Broker::print_handler%(msg: string%);
## Print a simple message to any interested peers. The receiver can use ## Print a simple message to any interested peers. The receiver can use
## :bro:see:`BrokerComm::print_handler` to handle messages. ## :bro:see:`Broker::print_handler` to handle messages.
## ##
## topic: a topic associated with the printed message. ## topic: a topic associated with the printed message.
## ##
@ -26,7 +26,7 @@ event BrokerComm::print_handler%(msg: string%);
## flags: tune the behavior of how the message is sent. ## flags: tune the behavior of how the message is sent.
## ##
## Returns: true if the message is sent. ## Returns: true if the message is sent.
function BrokerComm::print%(topic: string, msg: string, function Broker::print%(topic: string, msg: string,
flags: SendFlags &default = SendFlags()%): bool flags: SendFlags &default = SendFlags()%): bool
%{ %{
auto rval = broker_mgr->Print(topic->CheckString(), msg->CheckString(), auto rval = broker_mgr->Print(topic->CheckString(), msg->CheckString(),
@ -35,14 +35,14 @@ function BrokerComm::print%(topic: string, msg: string,
%} %}
## Register interest in all peer print messages that use a certain topic prefix. ## Register interest in all peer print messages that use a certain topic prefix.
## Use :bro:see:`BrokerComm::print_handler` to handle received messages. ## Use :bro:see:`Broker::print_handler` to handle received messages.
## ##
## topic_prefix: a prefix to match against remote message topics. ## topic_prefix: a prefix to match against remote message topics.
## e.g. an empty prefix matches everything and "a" matches ## e.g. an empty prefix matches everything and "a" matches
## "alice" and "amy" but not "bob". ## "alice" and "amy" but not "bob".
## ##
## Returns: true if it's a new print subscription and it is now registered. ## Returns: true if it's a new print subscription and it is now registered.
function BrokerComm::subscribe_to_prints%(topic_prefix: string%): bool function Broker::subscribe_to_prints%(topic_prefix: string%): bool
%{ %{
auto rval = broker_mgr->SubscribeToPrints(topic_prefix->CheckString()); auto rval = broker_mgr->SubscribeToPrints(topic_prefix->CheckString());
return new Val(rval, TYPE_BOOL); return new Val(rval, TYPE_BOOL);
@ -51,23 +51,23 @@ function BrokerComm::subscribe_to_prints%(topic_prefix: string%): bool
## Unregister interest in all peer print messages that use a topic prefix. ## Unregister interest in all peer print messages that use a topic prefix.
## ##
## topic_prefix: a prefix previously supplied to a successful call to ## topic_prefix: a prefix previously supplied to a successful call to
## :bro:see:`BrokerComm::subscribe_to_prints`. ## :bro:see:`Broker::subscribe_to_prints`.
## ##
## Returns: true if interest in the topic prefix is no longer advertised. ## Returns: true if interest in the topic prefix is no longer advertised.
function BrokerComm::unsubscribe_to_prints%(topic_prefix: string%): bool function Broker::unsubscribe_to_prints%(topic_prefix: string%): bool
%{ %{
auto rval = broker_mgr->UnsubscribeToPrints(topic_prefix->CheckString()); auto rval = broker_mgr->UnsubscribeToPrints(topic_prefix->CheckString());
return new Val(rval, TYPE_BOOL); return new Val(rval, TYPE_BOOL);
%} %}
## Create a data structure that may be used to send a remote event via ## Create a data structure that may be used to send a remote event via
## :bro:see:`BrokerComm::event`. ## :bro:see:`Broker::event`.
## ##
## args: an event, followed by a list of argument values that may be used ## args: an event, followed by a list of argument values that may be used
## to call it. ## to call it.
## ##
## Returns: opaque communication data that may be used to send a remote event. ## Returns: opaque communication data that may be used to send a remote event.
function BrokerComm::event_args%(...%): BrokerComm::EventArgs function Broker::event_args%(...%): Broker::EventArgs
%{ %{
auto rval = broker_mgr->MakeEventArgs(@ARGS@); auto rval = broker_mgr->MakeEventArgs(@ARGS@);
return rval; return rval;
@ -77,12 +77,12 @@ function BrokerComm::event_args%(...%): BrokerComm::EventArgs
## ##
## topic: a topic associated with the event message. ## topic: a topic associated with the event message.
## ##
## args: event arguments as made by :bro:see:`BrokerComm::event_args`. ## args: event arguments as made by :bro:see:`Broker::event_args`.
## ##
## flags: tune the behavior of how the message is sent. ## flags: tune the behavior of how the message is sent.
## ##
## Returns: true if the message is sent. ## Returns: true if the message is sent.
function BrokerComm::event%(topic: string, args: BrokerComm::EventArgs, function Broker::event%(topic: string, args: Broker::EventArgs,
flags: SendFlags &default = SendFlags()%): bool flags: SendFlags &default = SendFlags()%): bool
%{ %{
auto rval = broker_mgr->Event(topic->CheckString(), args->AsRecordVal(), auto rval = broker_mgr->Event(topic->CheckString(), args->AsRecordVal(),
@ -102,7 +102,7 @@ function BrokerComm::event%(topic: string, args: BrokerComm::EventArgs,
## flags: tune the behavior of how the message is sent. ## flags: tune the behavior of how the message is sent.
## ##
## Returns: true if automatic event sending is now enabled. ## Returns: true if automatic event sending is now enabled.
function BrokerComm::auto_event%(topic: string, ev: any, function Broker::auto_event%(topic: string, ev: any,
flags: SendFlags &default = SendFlags()%): bool flags: SendFlags &default = SendFlags()%): bool
%{ %{
auto rval = broker_mgr->AutoEvent(topic->CheckString(), ev, flags); auto rval = broker_mgr->AutoEvent(topic->CheckString(), ev, flags);
@ -111,12 +111,12 @@ function BrokerComm::auto_event%(topic: string, ev: any,
## Stop automatically sending an event to peers upon local dispatch. ## Stop automatically sending an event to peers upon local dispatch.
## ##
## topic: a topic originally given to :bro:see:`BrokerComm::auto_event`. ## topic: a topic originally given to :bro:see:`Broker::auto_event`.
## ##
## ev: an event originally given to :bro:see:`BrokerComm::auto_event`. ## ev: an event originally given to :bro:see:`Broker::auto_event`.
## ##
## Returns: true if automatic events will not occur for the topic/event pair. ## Returns: true if automatic events will not occur for the topic/event pair.
function BrokerComm::auto_event_stop%(topic: string, ev: any%): bool function Broker::auto_event_stop%(topic: string, ev: any%): bool
%{ %{
auto rval = broker_mgr->AutoEventStop(topic->CheckString(), ev); auto rval = broker_mgr->AutoEventStop(topic->CheckString(), ev);
return new Val(rval, TYPE_BOOL); return new Val(rval, TYPE_BOOL);
@ -129,7 +129,7 @@ function BrokerComm::auto_event_stop%(topic: string, ev: any%): bool
## "alice" and "amy" but not "bob". ## "alice" and "amy" but not "bob".
## ##
## Returns: true if it's a new event subscription and it is now registered. ## Returns: true if it's a new event subscription and it is now registered.
function BrokerComm::subscribe_to_events%(topic_prefix: string%): bool function Broker::subscribe_to_events%(topic_prefix: string%): bool
%{ %{
auto rval = broker_mgr->SubscribeToEvents(topic_prefix->CheckString()); auto rval = broker_mgr->SubscribeToEvents(topic_prefix->CheckString());
return new Val(rval, TYPE_BOOL); return new Val(rval, TYPE_BOOL);
@ -138,10 +138,10 @@ function BrokerComm::subscribe_to_events%(topic_prefix: string%): bool
## Unregister interest in all peer event messages that use a topic prefix. ## Unregister interest in all peer event messages that use a topic prefix.
## ##
## topic_prefix: a prefix previously supplied to a successful call to ## topic_prefix: a prefix previously supplied to a successful call to
## :bro:see:`BrokerComm::subscribe_to_events`. ## :bro:see:`Broker::subscribe_to_events`.
## ##
## Returns: true if interest in the topic prefix is no longer advertised. ## Returns: true if interest in the topic prefix is no longer advertised.
function BrokerComm::unsubscribe_to_events%(topic_prefix: string%): bool function Broker::unsubscribe_to_events%(topic_prefix: string%): bool
%{ %{
auto rval = broker_mgr->UnsubscribeToEvents(topic_prefix->CheckString()); auto rval = broker_mgr->UnsubscribeToEvents(topic_prefix->CheckString());
return new Val(rval, TYPE_BOOL); return new Val(rval, TYPE_BOOL);
@ -155,7 +155,7 @@ function BrokerComm::unsubscribe_to_events%(topic_prefix: string%): bool
## ##
## Returns: true if remote logs are enabled for the stream. ## Returns: true if remote logs are enabled for the stream.
function function
BrokerComm::enable_remote_logs%(id: Log::ID, Broker::enable_remote_logs%(id: Log::ID,
flags: SendFlags &default = SendFlags()%): bool flags: SendFlags &default = SendFlags()%): bool
%{ %{
auto rval = log_mgr->EnableRemoteLogs(id->AsEnumVal(), auto rval = log_mgr->EnableRemoteLogs(id->AsEnumVal(),
@ -168,7 +168,7 @@ BrokerComm::enable_remote_logs%(id: Log::ID,
## id: the log stream to disable remote logs for. ## id: the log stream to disable remote logs for.
## ##
## Returns: true if remote logs are disabled for the stream. ## Returns: true if remote logs are disabled for the stream.
function BrokerComm::disable_remote_logs%(id: Log::ID%): bool function Broker::disable_remote_logs%(id: Log::ID%): bool
%{ %{
auto rval = log_mgr->DisableRemoteLogs(id->AsEnumVal()); auto rval = log_mgr->DisableRemoteLogs(id->AsEnumVal());
return new Val(rval, TYPE_BOOL); return new Val(rval, TYPE_BOOL);
@ -179,7 +179,7 @@ function BrokerComm::disable_remote_logs%(id: Log::ID%): bool
## id: the log stream to check. ## id: the log stream to check.
## ##
## Returns: true if remote logs are enabled for the given stream. ## Returns: true if remote logs are enabled for the given stream.
function BrokerComm::remote_logs_enabled%(id: Log::ID%): bool function Broker::remote_logs_enabled%(id: Log::ID%): bool
%{ %{
auto rval = log_mgr->RemoteLogsAreEnabled(id->AsEnumVal()); auto rval = log_mgr->RemoteLogsAreEnabled(id->AsEnumVal());
return new Val(rval, TYPE_BOOL); return new Val(rval, TYPE_BOOL);
@ -194,7 +194,7 @@ function BrokerComm::remote_logs_enabled%(id: Log::ID%): bool
## "alice" and "amy" but not "bob". ## "alice" and "amy" but not "bob".
## ##
## Returns: true if it's a new log subscription and it is now registered. ## Returns: true if it's a new log subscription and it is now registered.
function BrokerComm::subscribe_to_logs%(topic_prefix: string%): bool function Broker::subscribe_to_logs%(topic_prefix: string%): bool
%{ %{
auto rval = broker_mgr->SubscribeToLogs(topic_prefix->CheckString()); auto rval = broker_mgr->SubscribeToLogs(topic_prefix->CheckString());
return new Val(rval, TYPE_BOOL); return new Val(rval, TYPE_BOOL);
@ -205,10 +205,10 @@ function BrokerComm::subscribe_to_logs%(topic_prefix: string%): bool
## receiving side processes them through the logging framework as usual. ## receiving side processes them through the logging framework as usual.
## ##
## topic_prefix: a prefix previously supplied to a successful call to ## topic_prefix: a prefix previously supplied to a successful call to
## :bro:see:`BrokerComm::subscribe_to_logs`. ## :bro:see:`Broker::subscribe_to_logs`.
## ##
## Returns: true if interest in the topic prefix is no longer advertised. ## Returns: true if interest in the topic prefix is no longer advertised.
function BrokerComm::unsubscribe_to_logs%(topic_prefix: string%): bool function Broker::unsubscribe_to_logs%(topic_prefix: string%): bool
%{ %{
auto rval = broker_mgr->UnsubscribeToLogs(topic_prefix->CheckString()); auto rval = broker_mgr->UnsubscribeToLogs(topic_prefix->CheckString());
return new Val(rval, TYPE_BOOL); return new Val(rval, TYPE_BOOL);

View file

@ -8,13 +8,13 @@
#include "Trigger.h" #include "Trigger.h"
%%} %%}
module BrokerStore; module Broker;
type BrokerStore::ExpiryTime: record; type Broker::ExpiryTime: record;
type BrokerStore::QueryResult: record; type Broker::QueryResult: record;
type BrokerStore::BackendOptions: record; type Broker::BackendOptions: record;
## Enumerates the possible storage backends. ## Enumerates the possible storage backends.
enum BackendType %{ enum BackendType %{
@ -32,8 +32,8 @@ enum BackendType %{
## options: tunes how some storage backends operate. ## options: tunes how some storage backends operate.
## ##
## Returns: a handle to the data store. ## Returns: a handle to the data store.
function BrokerStore::create_master%(id: string, b: BackendType &default = MEMORY, function Broker::create_master%(id: string, b: BackendType &default = MEMORY,
options: BackendOptions &default = BackendOptions()%): opaque of BrokerStore::Handle options: BackendOptions &default = BackendOptions()%): opaque of Broker::Handle
%{ %{
auto id_str = id->CheckString(); auto id_str = id->CheckString();
auto type = bro_broker::StoreType::MASTER; auto type = bro_broker::StoreType::MASTER;
@ -46,7 +46,7 @@ function BrokerStore::create_master%(id: string, b: BackendType &default = MEMOR
} }
rval = new bro_broker::StoreHandleVal(id_str, type, rval = new bro_broker::StoreHandleVal(id_str, type,
static_cast<BifEnum::BrokerStore::BackendType>(b->AsEnum()), static_cast<BifEnum::Broker::BackendType>(b->AsEnum()),
options->AsRecordVal()); options->AsRecordVal());
auto added = broker_mgr->AddStore(rval); auto added = broker_mgr->AddStore(rval);
assert(added); assert(added);
@ -75,9 +75,9 @@ function BrokerStore::create_master%(id: string, b: BackendType &default = MEMOR
## but updates will be lost until the master is once again available. ## but updates will be lost until the master is once again available.
## ##
## Returns: a handle to the data store. ## Returns: a handle to the data store.
function BrokerStore::create_clone%(id: string, b: BackendType &default = MEMORY, function Broker::create_clone%(id: string, b: BackendType &default = MEMORY,
options: BackendOptions &default = BackendOptions(), options: BackendOptions &default = BackendOptions(),
resync: interval &default = 1sec%): opaque of BrokerStore::Handle resync: interval &default = 1sec%): opaque of Broker::Handle
%{ %{
auto id_str = id->CheckString(); auto id_str = id->CheckString();
auto type = bro_broker::StoreType::CLONE; auto type = bro_broker::StoreType::CLONE;
@ -90,7 +90,7 @@ function BrokerStore::create_clone%(id: string, b: BackendType &default = MEMORY
} }
rval = new bro_broker::StoreHandleVal(id_str, type, rval = new bro_broker::StoreHandleVal(id_str, type,
static_cast<BifEnum::BrokerStore::BackendType>(b->AsEnum()), static_cast<BifEnum::Broker::BackendType>(b->AsEnum()),
options->AsRecordVal(), options->AsRecordVal(),
std::chrono::duration<double>(resync)); std::chrono::duration<double>(resync));
auto added = broker_mgr->AddStore(rval); auto added = broker_mgr->AddStore(rval);
@ -104,7 +104,7 @@ function BrokerStore::create_clone%(id: string, b: BackendType &default = MEMORY
## id: the unique name which identifies the master data store. ## id: the unique name which identifies the master data store.
## ##
## Returns: a handle to the data store. ## Returns: a handle to the data store.
function BrokerStore::create_frontend%(id: string%): opaque of BrokerStore::Handle function Broker::create_frontend%(id: string%): opaque of Broker::Handle
%{ %{
auto id_str = id->CheckString(); auto id_str = id->CheckString();
auto type = bro_broker::StoreType::FRONTEND; auto type = bro_broker::StoreType::FRONTEND;
@ -128,7 +128,7 @@ function BrokerStore::create_frontend%(id: string%): opaque of BrokerStore::Hand
## ##
## Returns: true if store was valid and is now closed. The handle can no ## Returns: true if store was valid and is now closed. The handle can no
## longer be used for data store operations. ## longer be used for data store operations.
function BrokerStore::close_by_handle%(h: opaque of BrokerStore::Handle%): bool function Broker::close_by_handle%(h: opaque of Broker::Handle%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -154,9 +154,9 @@ function BrokerStore::close_by_handle%(h: opaque of BrokerStore::Handle%): bool
## e: the expiration time of the key-value pair. ## e: the expiration time of the key-value pair.
## ##
## Returns: false if the store handle was not valid. ## Returns: false if the store handle was not valid.
function BrokerStore::insert%(h: opaque of BrokerStore::Handle, function Broker::insert%(h: opaque of Broker::Handle,
k: BrokerComm::Data, v: BrokerComm::Data, k: Broker::Data, v: Broker::Data,
e: BrokerStore::ExpiryTime &default = BrokerStore::ExpiryTime()%): bool e: Broker::ExpiryTime &default = Broker::ExpiryTime()%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -198,7 +198,7 @@ function BrokerStore::insert%(h: opaque of BrokerStore::Handle,
## k: the key to remove. ## k: the key to remove.
## ##
## Returns: false if the store handle was not valid. ## Returns: false if the store handle was not valid.
function BrokerStore::erase%(h: opaque of BrokerStore::Handle, k: BrokerComm::Data%): bool function Broker::erase%(h: opaque of Broker::Handle, k: Broker::Data%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -215,7 +215,7 @@ function BrokerStore::erase%(h: opaque of BrokerStore::Handle, k: BrokerComm::Da
## h: the handle of the store to modify. ## h: the handle of the store to modify.
## ##
## Returns: false if the store handle was not valid. ## Returns: false if the store handle was not valid.
function BrokerStore::clear%(h: opaque of BrokerStore::Handle%): bool function Broker::clear%(h: opaque of Broker::Handle%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -236,8 +236,8 @@ function BrokerStore::clear%(h: opaque of BrokerStore::Handle%): bool
## create it with an implicit value of zero before incrementing. ## create it with an implicit value of zero before incrementing.
## ##
## Returns: false if the store handle was not valid. ## Returns: false if the store handle was not valid.
function BrokerStore::increment%(h: opaque of BrokerStore::Handle, function Broker::increment%(h: opaque of Broker::Handle,
k: BrokerComm::Data, by: int &default = +1%): bool k: Broker::Data, by: int &default = +1%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -259,8 +259,8 @@ function BrokerStore::increment%(h: opaque of BrokerStore::Handle,
## create it with an implicit value of zero before decrementing. ## create it with an implicit value of zero before decrementing.
## ##
## Returns: false if the store handle was not valid. ## Returns: false if the store handle was not valid.
function BrokerStore::decrement%(h: opaque of BrokerStore::Handle, function Broker::decrement%(h: opaque of Broker::Handle,
k: BrokerComm::Data, by: int &default = +1%): bool k: Broker::Data, by: int &default = +1%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -282,8 +282,8 @@ function BrokerStore::decrement%(h: opaque of BrokerStore::Handle,
## create it with an implicit empty set value before modifying. ## create it with an implicit empty set value before modifying.
## ##
## Returns: false if the store handle was not valid. ## Returns: false if the store handle was not valid.
function BrokerStore::add_to_set%(h: opaque of BrokerStore::Handle, function Broker::add_to_set%(h: opaque of Broker::Handle,
k: BrokerComm::Data, element: BrokerComm::Data%): bool k: Broker::Data, element: Broker::Data%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -306,8 +306,8 @@ function BrokerStore::add_to_set%(h: opaque of BrokerStore::Handle,
## implicitly create an empty set value associated with the key. ## implicitly create an empty set value associated with the key.
## ##
## Returns: false if the store handle was not valid. ## Returns: false if the store handle was not valid.
function BrokerStore::remove_from_set%(h: opaque of BrokerStore::Handle, function Broker::remove_from_set%(h: opaque of Broker::Handle,
k: BrokerComm::Data, element: BrokerComm::Data%): bool k: Broker::Data, element: Broker::Data%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -330,8 +330,8 @@ function BrokerStore::remove_from_set%(h: opaque of BrokerStore::Handle,
## create an empty vector value before modifying. ## create an empty vector value before modifying.
## ##
## Returns: false if the store handle was not valid. ## Returns: false if the store handle was not valid.
function BrokerStore::push_left%(h: opaque of BrokerStore::Handle, k: BrokerComm::Data, function Broker::push_left%(h: opaque of Broker::Handle, k: Broker::Data,
items: BrokerComm::DataVector%): bool items: Broker::DataVector%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -363,8 +363,8 @@ function BrokerStore::push_left%(h: opaque of BrokerStore::Handle, k: BrokerComm
## create an empty vector value before modifying. ## create an empty vector value before modifying.
## ##
## Returns: false if the store handle was not valid. ## Returns: false if the store handle was not valid.
function BrokerStore::push_right%(h: opaque of BrokerStore::Handle, k: BrokerComm::Data, function Broker::push_right%(h: opaque of Broker::Handle, k: Broker::Data,
items: BrokerComm::DataVector%): bool items: Broker::DataVector%): bool
%{ %{
auto handle = static_cast<bro_broker::StoreHandleVal*>(h); auto handle = static_cast<bro_broker::StoreHandleVal*>(h);
@ -401,7 +401,7 @@ static bool prepare_for_query(Val* opaque, Frame* frame,
if ( ! (*handle)->store ) if ( ! (*handle)->store )
{ {
reporter->PushLocation(frame->GetCall()->GetLocationInfo()); reporter->PushLocation(frame->GetCall()->GetLocationInfo());
reporter->Error("BrokerStore query has an invalid data store"); reporter->Error("Broker query has an invalid data store");
reporter->PopLocation(); reporter->PopLocation();
return false; return false;
} }
@ -411,7 +411,7 @@ static bool prepare_for_query(Val* opaque, Frame* frame,
if ( ! trigger ) if ( ! trigger )
{ {
reporter->PushLocation(frame->GetCall()->GetLocationInfo()); reporter->PushLocation(frame->GetCall()->GetLocationInfo());
reporter->Error("BrokerStore queries can only be called inside when-condition"); reporter->Error("Broker queries can only be called inside when-condition");
reporter->PopLocation(); reporter->PopLocation();
return false; return false;
} }
@ -421,7 +421,7 @@ static bool prepare_for_query(Val* opaque, Frame* frame,
if ( *timeout < 0 ) if ( *timeout < 0 )
{ {
reporter->PushLocation(frame->GetCall()->GetLocationInfo()); reporter->PushLocation(frame->GetCall()->GetLocationInfo());
reporter->Error("BrokerStore queries must specify a timeout block"); reporter->Error("Broker queries must specify a timeout block");
reporter->PopLocation(); reporter->PopLocation();
return false; return false;
} }
@ -444,8 +444,8 @@ static bool prepare_for_query(Val* opaque, Frame* frame,
## k: the key associated with the vector to modify. ## k: the key associated with the vector to modify.
## ##
## Returns: the result of the query. ## Returns: the result of the query.
function BrokerStore::pop_left%(h: opaque of BrokerStore::Handle, function Broker::pop_left%(h: opaque of Broker::Handle,
k: BrokerComm::Data%): BrokerStore::QueryResult k: Broker::Data%): Broker::QueryResult
%{ %{
if ( ! broker_mgr->Enabled() ) if ( ! broker_mgr->Enabled() )
return bro_broker::query_result(); return bro_broker::query_result();
@ -474,8 +474,8 @@ function BrokerStore::pop_left%(h: opaque of BrokerStore::Handle,
## k: the key associated with the vector to modify. ## k: the key associated with the vector to modify.
## ##
## Returns: the result of the query. ## Returns: the result of the query.
function BrokerStore::pop_right%(h: opaque of BrokerStore::Handle, function Broker::pop_right%(h: opaque of Broker::Handle,
k: BrokerComm::Data%): BrokerStore::QueryResult k: Broker::Data%): Broker::QueryResult
%{ %{
if ( ! broker_mgr->Enabled() ) if ( ! broker_mgr->Enabled() )
return bro_broker::query_result(); return bro_broker::query_result();
@ -504,8 +504,8 @@ function BrokerStore::pop_right%(h: opaque of BrokerStore::Handle,
## k: the key to lookup. ## k: the key to lookup.
## ##
## Returns: the result of the query. ## Returns: the result of the query.
function BrokerStore::lookup%(h: opaque of BrokerStore::Handle, function Broker::lookup%(h: opaque of Broker::Handle,
k: BrokerComm::Data%): BrokerStore::QueryResult k: Broker::Data%): Broker::QueryResult
%{ %{
if ( ! broker_mgr->Enabled() ) if ( ! broker_mgr->Enabled() )
return bro_broker::query_result(); return bro_broker::query_result();
@ -533,9 +533,9 @@ function BrokerStore::lookup%(h: opaque of BrokerStore::Handle,
## ##
## k: the key to check for existence. ## k: the key to check for existence.
## ##
## Returns: the result of the query (uses :bro:see:`BrokerComm::BOOL`). ## Returns: the result of the query (uses :bro:see:`Broker::BOOL`).
function BrokerStore::exists%(h: opaque of BrokerStore::Handle, function Broker::exists%(h: opaque of Broker::Handle,
k: BrokerComm::Data%): BrokerStore::QueryResult k: Broker::Data%): Broker::QueryResult
%{ %{
if ( ! broker_mgr->Enabled() ) if ( ! broker_mgr->Enabled() )
return bro_broker::query_result(); return bro_broker::query_result();
@ -561,8 +561,8 @@ function BrokerStore::exists%(h: opaque of BrokerStore::Handle,
## ##
## h: the handle of the store to query. ## h: the handle of the store to query.
## ##
## Returns: the result of the query (uses :bro:see:`BrokerComm::VECTOR`). ## Returns: the result of the query (uses :bro:see:`Broker::VECTOR`).
function BrokerStore::keys%(h: opaque of BrokerStore::Handle%): BrokerStore::QueryResult function Broker::keys%(h: opaque of Broker::Handle%): Broker::QueryResult
%{ %{
double timeout; double timeout;
bro_broker::StoreQueryCallback* cb; bro_broker::StoreQueryCallback* cb;
@ -579,8 +579,8 @@ function BrokerStore::keys%(h: opaque of BrokerStore::Handle%): BrokerStore::Que
## ##
## h: the handle of the store to query. ## h: the handle of the store to query.
## ##
## Returns: the result of the query (uses :bro:see:`BrokerComm::COUNT`). ## Returns: the result of the query (uses :bro:see:`Broker::COUNT`).
function BrokerStore::size%(h: opaque of BrokerStore::Handle%): BrokerStore::QueryResult function Broker::size%(h: opaque of Broker::Handle%): Broker::QueryResult
%{ %{
if ( ! broker_mgr->Enabled() ) if ( ! broker_mgr->Enabled() )
return bro_broker::query_result(); return bro_broker::query_result();

View file

@ -1,5 +1,5 @@
clone keys, [status=BrokerStore::SUCCESS, result=[d=broker::data{[one, two, myset, myvec]}]] clone keys, [status=Broker::SUCCESS, result=[d=broker::data{[one, two, myset, myvec]}]]
lookup, one, [status=BrokerStore::SUCCESS, result=[d=broker::data{111}]] lookup, two, [status=Broker::SUCCESS, result=[d=broker::data{222}]]
lookup, myset, [status=BrokerStore::SUCCESS, result=[d=broker::data{{a, c, d}}]] lookup, one, [status=Broker::SUCCESS, result=[d=broker::data{111}]]
lookup, two, [status=BrokerStore::SUCCESS, result=[d=broker::data{222}]] lookup, myvec, [status=Broker::SUCCESS, result=[d=broker::data{[delta, alpha, beta, gamma, omega]}]]
lookup, myvec, [status=BrokerStore::SUCCESS, result=[d=broker::data{[delta, alpha, beta, gamma, omega]}]] lookup, myset, [status=Broker::SUCCESS, result=[d=broker::data{{a, c, d}}]]

View file

@ -1,2 +1,2 @@
BrokerComm::incoming_connection_established, connector Broker::incoming_connection_established, connector
BrokerComm::incoming_connection_broken, connector Broker::incoming_connection_broken, connector

View file

@ -1 +1 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp, listener Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp, listener

View file

@ -1,18 +1,18 @@
BrokerComm::BOOL Broker::BOOL
BrokerComm::INT Broker::INT
BrokerComm::COUNT Broker::COUNT
BrokerComm::DOUBLE Broker::DOUBLE
BrokerComm::STRING Broker::STRING
BrokerComm::ADDR Broker::ADDR
BrokerComm::SUBNET Broker::SUBNET
BrokerComm::PORT Broker::PORT
BrokerComm::TIME Broker::TIME
BrokerComm::INTERVAL Broker::INTERVAL
BrokerComm::ENUM Broker::ENUM
BrokerComm::SET Broker::SET
BrokerComm::TABLE Broker::TABLE
BrokerComm::VECTOR Broker::VECTOR
BrokerComm::RECORD Broker::RECORD
*************************** ***************************
T T
F F
@ -29,7 +29,7 @@ hello
22/tcp 22/tcp
42.0 42.0
180.0 180.0
BrokerComm::BOOL Broker::BOOL
*************************** ***************************
{ {
two, two,

View file

@ -1,14 +1,14 @@
lookup(two): [status=BrokerStore::SUCCESS, result=[d=broker::data{222}]] lookup(two): [status=Broker::SUCCESS, result=[d=broker::data{222}]]
lookup(four): [status=BrokerStore::SUCCESS, result=[d=<uninitialized>]] lookup(myset): [status=Broker::SUCCESS, result=[d=broker::data{{a, c, d}}]]
lookup(myset): [status=BrokerStore::SUCCESS, result=[d=broker::data{{a, c, d}}]] lookup(one): [status=Broker::SUCCESS, result=[d=broker::data{111}]]
lookup(one): [status=BrokerStore::SUCCESS, result=[d=broker::data{111}]] lookup(myvec): [status=Broker::SUCCESS, result=[d=broker::data{[delta, alpha, beta, gamma, omega]}]]
lookup(myvec): [status=BrokerStore::SUCCESS, result=[d=broker::data{[delta, alpha, beta, gamma, omega]}]] lookup(four): [status=Broker::SUCCESS, result=[d=<uninitialized>]]
exists(one): [status=BrokerStore::SUCCESS, result=[d=broker::data{1}]] exists(two): [status=Broker::SUCCESS, result=[d=broker::data{0}]]
exists(two): [status=BrokerStore::SUCCESS, result=[d=broker::data{0}]] exists(myset): [status=Broker::SUCCESS, result=[d=broker::data{1}]]
exists(myset): [status=BrokerStore::SUCCESS, result=[d=broker::data{1}]] exists(one): [status=Broker::SUCCESS, result=[d=broker::data{1}]]
exists(four): [status=BrokerStore::SUCCESS, result=[d=broker::data{0}]] exists(four): [status=Broker::SUCCESS, result=[d=broker::data{0}]]
pop_right(myvec): [status=BrokerStore::SUCCESS, result=[d=broker::data{omega}]] pop_left(myvec): [status=Broker::SUCCESS, result=[d=broker::data{delta}]]
pop_left(myvec): [status=BrokerStore::SUCCESS, result=[d=broker::data{delta}]] pop_right(myvec): [status=Broker::SUCCESS, result=[d=broker::data{omega}]]
keys: [status=BrokerStore::SUCCESS, result=[d=broker::data{[myvec, myset, one]}]] keys: [status=Broker::SUCCESS, result=[d=broker::data{[myvec, myset, one]}]]
size: [status=BrokerStore::SUCCESS, result=[d=broker::data{3}]] size: [status=Broker::SUCCESS, result=[d=broker::data{3}]]
size (after clear): [status=BrokerStore::SUCCESS, result=[d=broker::data{0}]] size (after clear): [status=Broker::SUCCESS, result=[d=broker::data{0}]]

View file

@ -1,4 +1,4 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp
got event msg, pong, 0 got event msg, pong, 0
got auto event msg, ping, 0 got auto event msg, ping, 0
got event msg, pong, 1 got event msg, pong, 1

View file

@ -1 +1 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp

View file

@ -1,4 +1,4 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp
got print msg, pong 0 got print msg, pong 0
got print msg, pong 1 got print msg, pong 1
got print msg, pong 2 got print msg, pong 2

View file

@ -1,5 +1,5 @@
clone keys, [status=BrokerStore::SUCCESS, result=[d=broker::data{[one, two, myset, myvec]}]] clone keys, [status=Broker::SUCCESS, result=[d=broker::data{[one, two, myset, myvec]}]]
lookup, one, [status=BrokerStore::SUCCESS, result=[d=broker::data{111}]] lookup, one, [status=Broker::SUCCESS, result=[d=broker::data{111}]]
lookup, two, [status=BrokerStore::SUCCESS, result=[d=broker::data{222}]] lookup, two, [status=Broker::SUCCESS, result=[d=broker::data{222}]]
lookup, myset, [status=BrokerStore::SUCCESS, result=[d=broker::data{{a, c, d}}]] lookup, myset, [status=Broker::SUCCESS, result=[d=broker::data{{a, c, d}}]]
lookup, myvec, [status=BrokerStore::SUCCESS, result=[d=broker::data{[delta, alpha, beta, gamma, omega]}]] lookup, myvec, [status=Broker::SUCCESS, result=[d=broker::data{[delta, alpha, beta, gamma, omega]}]]

View file

@ -1,18 +1,18 @@
BrokerComm::BOOL Broker::BOOL
BrokerComm::INT Broker::INT
BrokerComm::COUNT Broker::COUNT
BrokerComm::DOUBLE Broker::DOUBLE
BrokerComm::STRING Broker::STRING
BrokerComm::ADDR Broker::ADDR
BrokerComm::SUBNET Broker::SUBNET
BrokerComm::PORT Broker::PORT
BrokerComm::TIME Broker::TIME
BrokerComm::INTERVAL Broker::INTERVAL
BrokerComm::ENUM Broker::ENUM
BrokerComm::SET Broker::SET
BrokerComm::TABLE Broker::TABLE
BrokerComm::VECTOR Broker::VECTOR
BrokerComm::RECORD Broker::RECORD
*************************** ***************************
T T
F F
@ -29,7 +29,7 @@ hello
22/tcp 22/tcp
42.0 42.0
180.0 180.0
BrokerComm::BOOL Broker::BOOL
*************************** ***************************
{ {
two, two,

View file

@ -1,14 +1,14 @@
lookup(two): [status=BrokerStore::SUCCESS, result=[d=broker::data{222}]] lookup(two): [status=Broker::SUCCESS, result=[d=broker::data{222}]]
lookup(four): [status=BrokerStore::SUCCESS, result=[d=<uninitialized>]] lookup(four): [status=Broker::SUCCESS, result=[d=<uninitialized>]]
lookup(myset): [status=BrokerStore::SUCCESS, result=[d=broker::data{{a, c, d}}]] lookup(myset): [status=Broker::SUCCESS, result=[d=broker::data{{a, c, d}}]]
lookup(one): [status=BrokerStore::SUCCESS, result=[d=broker::data{111}]] lookup(one): [status=Broker::SUCCESS, result=[d=broker::data{111}]]
lookup(myvec): [status=BrokerStore::SUCCESS, result=[d=broker::data{[delta, alpha, beta, gamma, omega]}]] lookup(myvec): [status=Broker::SUCCESS, result=[d=broker::data{[delta, alpha, beta, gamma, omega]}]]
exists(one): [status=BrokerStore::SUCCESS, result=[d=broker::data{1}]] exists(one): [status=Broker::SUCCESS, result=[d=broker::data{1}]]
exists(two): [status=BrokerStore::SUCCESS, result=[d=broker::data{0}]] exists(two): [status=Broker::SUCCESS, result=[d=broker::data{0}]]
exists(myset): [status=BrokerStore::SUCCESS, result=[d=broker::data{1}]] exists(myset): [status=Broker::SUCCESS, result=[d=broker::data{1}]]
exists(four): [status=BrokerStore::SUCCESS, result=[d=broker::data{0}]] exists(four): [status=Broker::SUCCESS, result=[d=broker::data{0}]]
pop_right(myvec): [status=BrokerStore::SUCCESS, result=[d=broker::data{omega}]] pop_right(myvec): [status=Broker::SUCCESS, result=[d=broker::data{omega}]]
pop_left(myvec): [status=BrokerStore::SUCCESS, result=[d=broker::data{delta}]] pop_left(myvec): [status=Broker::SUCCESS, result=[d=broker::data{delta}]]
keys: [status=BrokerStore::SUCCESS, result=[d=broker::data{[myvec, myset, one]}]] keys: [status=Broker::SUCCESS, result=[d=broker::data{[myvec, myset, one]}]]
size: [status=BrokerStore::SUCCESS, result=[d=broker::data{3}]] size: [status=Broker::SUCCESS, result=[d=broker::data{3}]]
size (after clear): [status=BrokerStore::SUCCESS, result=[d=broker::data{0}]] size (after clear): [status=Broker::SUCCESS, result=[d=broker::data{0}]]

View file

@ -1,4 +1,4 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp
got event msg, pong, 0 got event msg, pong, 0
got auto event msg, ping, 0 got auto event msg, ping, 0
got event msg, pong, 1 got event msg, pong, 1

View file

@ -1 +1 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp

View file

@ -1,4 +1,4 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp
got print msg, pong 0 got print msg, pong 0
got print msg, pong 1 got print msg, pong 1
got print msg, pong 2 got print msg, pong 2

View file

@ -3,7 +3,7 @@
#empty_field (empty) #empty_field (empty)
#unset_field - #unset_field -
#path loaded_scripts #path loaded_scripts
#open 2016-04-13-04-57-15 #open 2016-04-22-23-21-01
#fields name #fields name
#types string #types string
scripts/base/init-bare.bro scripts/base/init-bare.bro
@ -17,6 +17,7 @@ scripts/base/init-bare.bro
build/scripts/base/bif/event.bif.bro build/scripts/base/bif/event.bif.bro
scripts/base/frameworks/broker/__load__.bro scripts/base/frameworks/broker/__load__.bro
scripts/base/frameworks/broker/main.bro scripts/base/frameworks/broker/main.bro
scripts/base/frameworks/broker/store.bro
scripts/base/frameworks/logging/__load__.bro scripts/base/frameworks/logging/__load__.bro
scripts/base/frameworks/logging/main.bro scripts/base/frameworks/logging/main.bro
build/scripts/base/bif/logging.bif.bro build/scripts/base/bif/logging.bif.bro
@ -130,4 +131,4 @@ scripts/base/init-bare.bro
build/scripts/base/bif/plugins/Bro_SQLiteWriter.sqlite.bif.bro build/scripts/base/bif/plugins/Bro_SQLiteWriter.sqlite.bif.bro
scripts/policy/misc/loaded-scripts.bro scripts/policy/misc/loaded-scripts.bro
scripts/base/utils/paths.bro scripts/base/utils/paths.bro
#close 2016-04-13-04-57-15 #close 2016-04-22-23-21-01

View file

@ -3,7 +3,7 @@
#empty_field (empty) #empty_field (empty)
#unset_field - #unset_field -
#path loaded_scripts #path loaded_scripts
#open 2016-04-13-04-57-25 #open 2016-04-22-23-21-18
#fields name #fields name
#types string #types string
scripts/base/init-bare.bro scripts/base/init-bare.bro
@ -17,6 +17,7 @@ scripts/base/init-bare.bro
build/scripts/base/bif/event.bif.bro build/scripts/base/bif/event.bif.bro
scripts/base/frameworks/broker/__load__.bro scripts/base/frameworks/broker/__load__.bro
scripts/base/frameworks/broker/main.bro scripts/base/frameworks/broker/main.bro
scripts/base/frameworks/broker/store.bro
scripts/base/frameworks/logging/__load__.bro scripts/base/frameworks/logging/__load__.bro
scripts/base/frameworks/logging/main.bro scripts/base/frameworks/logging/main.bro
build/scripts/base/bif/logging.bif.bro build/scripts/base/bif/logging.bif.bro
@ -301,4 +302,4 @@ scripts/base/init-default.bro
scripts/base/misc/find-checksum-offloading.bro scripts/base/misc/find-checksum-offloading.bro
scripts/base/misc/find-filtered-trace.bro scripts/base/misc/find-filtered-trace.bro
scripts/policy/misc/loaded-scripts.bro scripts/policy/misc/loaded-scripts.bro
#close 2016-04-13-04-57-25 #close 2016-04-22-23-21-18

View file

@ -4,19 +4,19 @@ connecting-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
terminate(); terminate();
} }

View file

@ -4,21 +4,21 @@ connecting-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event BrokerComm::incoming_connection_broken(peer_name: string) event Broker::incoming_connection_broken(peer_name: string)
{ {
print "BrokerComm::incoming_connection_broken", peer_name; print "Broker::incoming_connection_broken", peer_name;
terminate(); terminate();
} }

View file

@ -4,31 +4,31 @@ events-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
global my_event: event(msg: string, c: count); global my_event: event(msg: string, c: count);
global my_auto_event: event(msg: string, c: count); global my_auto_event: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
BrokerComm::auto_event("bro/event/my_auto_event", my_auto_event); Broker::auto_event("bro/event/my_auto_event", my_auto_event);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
BrokerComm::event("bro/event/my_event", BrokerComm::event_args(my_event, "hi", 0)); Broker::event("bro/event/my_event", Broker::event_args(my_event, "hi", 0));
event my_auto_event("stuff", 88); event my_auto_event("stuff", 88);
BrokerComm::event("bro/event/my_event", BrokerComm::event_args(my_event, "...", 1)); Broker::event("bro/event/my_event", Broker::event_args(my_event, "...", 1));
event my_auto_event("more stuff", 51); event my_auto_event("more stuff", 51);
BrokerComm::event("bro/event/my_event", BrokerComm::event_args(my_event, "bye", 2)); Broker::event("bro/event/my_event", Broker::event_args(my_event, "bye", 2));
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -4,21 +4,21 @@ events-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
global msg_count = 0; global msg_count = 0;
global my_event: event(msg: string, c: count); global my_event: event(msg: string, c: count);
global my_auto_event: event(msg: string, c: count); global my_auto_event: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/"); Broker::subscribe_to_events("bro/event/");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event my_event(msg: string, c: count) event my_event(msg: string, c: count)

View file

@ -6,16 +6,16 @@ logs-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
redef Log::enable_local_logging = F; redef Log::enable_local_logging = F;
redef Log::enable_remote_logging = F; redef Log::enable_remote_logging = F;
global n = 0; global n = 0;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::enable_remote_logs(Test::LOG); Broker::enable_remote_logs(Test::LOG);
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event do_write() event do_write()
@ -28,16 +28,16 @@ event do_write()
event do_write(); event do_write();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
event do_write(); event do_write();
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -6,18 +6,18 @@ logs-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_logs("bro/log/Test::LOG"); Broker::subscribe_to_logs("bro/log/Test::LOG");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event Test::log_test(rec: Test::Info) event Test::log_test(rec: Test::Info)

View file

@ -4,26 +4,26 @@ printing-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
BrokerComm::print("bro/print/hi", "hello"); Broker::print("bro/print/hi", "hello");
BrokerComm::print("bro/print/stuff", "..."); Broker::print("bro/print/stuff", "...");
BrokerComm::print("bro/print/bye", "goodbye"); Broker::print("bro/print/bye", "goodbye");
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -4,22 +4,22 @@ printing-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
global msg_count = 0; global msg_count = 0;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_prints("bro/print/"); Broker::subscribe_to_prints("bro/print/");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event BrokerComm::print_handler(msg: string) event Broker::print_handler(msg: string)
{ {
++msg_count; ++msg_count;
print "got print message", msg; print "got print message", msg;

View file

@ -5,42 +5,42 @@ stores-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
function dv(d: BrokerComm::Data): BrokerComm::DataVector function dv(d: Broker::Data): Broker::DataVector
{ {
local rval: BrokerComm::DataVector; local rval: Broker::DataVector;
rval[0] = d; rval[0] = d;
return rval; return rval;
} }
global ready: event(); global ready: event();
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
local myset: set[string] = {"a", "b", "c"}; local myset: set[string] = {"a", "b", "c"};
local myvec: vector of string = {"alpha", "beta", "gamma"}; local myvec: vector of string = {"alpha", "beta", "gamma"};
h = BrokerStore::create_master("mystore"); h = Broker::create_master("mystore");
BrokerStore::insert(h, BrokerComm::data("one"), BrokerComm::data(110)); Broker::insert(h, Broker::data("one"), Broker::data(110));
BrokerStore::insert(h, BrokerComm::data("two"), BrokerComm::data(223)); Broker::insert(h, Broker::data("two"), Broker::data(223));
BrokerStore::insert(h, BrokerComm::data("myset"), BrokerComm::data(myset)); Broker::insert(h, Broker::data("myset"), Broker::data(myset));
BrokerStore::insert(h, BrokerComm::data("myvec"), BrokerComm::data(myvec)); Broker::insert(h, Broker::data("myvec"), Broker::data(myvec));
BrokerStore::increment(h, BrokerComm::data("one")); Broker::increment(h, Broker::data("one"));
BrokerStore::decrement(h, BrokerComm::data("two")); Broker::decrement(h, Broker::data("two"));
BrokerStore::add_to_set(h, BrokerComm::data("myset"), BrokerComm::data("d")); Broker::add_to_set(h, Broker::data("myset"), Broker::data("d"));
BrokerStore::remove_from_set(h, BrokerComm::data("myset"), BrokerComm::data("b")); Broker::remove_from_set(h, Broker::data("myset"), Broker::data("b"));
BrokerStore::push_left(h, BrokerComm::data("myvec"), dv(BrokerComm::data("delta"))); Broker::push_left(h, Broker::data("myvec"), dv(Broker::data("delta")));
BrokerStore::push_right(h, BrokerComm::data("myvec"), dv(BrokerComm::data("omega"))); Broker::push_right(h, Broker::data("myvec"), dv(Broker::data("omega")));
when ( local res = BrokerStore::size(h) ) when ( local res = Broker::size(h) )
{ {
print "master size", res; print "master size", res;
event ready(); event ready();
@ -51,7 +51,7 @@ event BrokerComm::outgoing_connection_established(peer_address: string,
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
BrokerComm::auto_event("bro/event/ready", ready); Broker::auto_event("bro/event/ready", ready);
} }

View file

@ -5,13 +5,13 @@ stores-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
global expected_key_count = 4; global expected_key_count = 4;
global key_count = 0; global key_count = 0;
function do_lookup(key: string) function do_lookup(key: string)
{ {
when ( local res = BrokerStore::lookup(h, BrokerComm::data(key)) ) when ( local res = Broker::lookup(h, Broker::data(key)) )
{ {
++key_count; ++key_count;
print "lookup", key, res; print "lookup", key, res;
@ -25,15 +25,15 @@ function do_lookup(key: string)
event ready() event ready()
{ {
h = BrokerStore::create_clone("mystore"); h = Broker::create_clone("mystore");
when ( local res = BrokerStore::keys(h) ) when ( local res = Broker::keys(h) )
{ {
print "clone keys", res; print "clone keys", res;
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 0))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 0)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 1))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 1)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 2))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 2)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 3))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 3)));
} }
timeout 10sec timeout 10sec
{ print "timeout"; } { print "timeout"; }
@ -41,7 +41,7 @@ event ready()
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/ready"); Broker::subscribe_to_events("bro/event/ready");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }

View file

@ -17,6 +17,6 @@ export {
event bro_init() &priority=5 event bro_init() &priority=5
{ {
BrokerComm::enable(); Broker::enable();
Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test, $path="test"]); Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test, $path="test"]);
} }

View file

@ -230,7 +230,7 @@
0.000000 MetaHookPost CallFunction(Log::__create_stream, <frame>, (Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird])) -> <no result> 0.000000 MetaHookPost CallFunction(Log::__create_stream, <frame>, (Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird])) -> <no result>
0.000000 MetaHookPost CallFunction(Log::__create_stream, <frame>, (X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509])) -> <no result> 0.000000 MetaHookPost CallFunction(Log::__create_stream, <frame>, (X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509])) -> <no result>
0.000000 MetaHookPost CallFunction(Log::__create_stream, <frame>, (mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql])) -> <no result> 0.000000 MetaHookPost CallFunction(Log::__create_stream, <frame>, (mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql])) -> <no result>
0.000000 MetaHookPost CallFunction(Log::__write, <frame>, (PacketFilter::LOG, [ts=1460523470.220624, node=bro, filter=ip or not ip, init=T, success=T])) -> <no result> 0.000000 MetaHookPost CallFunction(Log::__write, <frame>, (PacketFilter::LOG, [ts=1461367323.154279, node=bro, filter=ip or not ip, init=T, success=T])) -> <no result>
0.000000 MetaHookPost CallFunction(Log::add_default_filter, <frame>, (Cluster::LOG)) -> <no result> 0.000000 MetaHookPost CallFunction(Log::add_default_filter, <frame>, (Cluster::LOG)) -> <no result>
0.000000 MetaHookPost CallFunction(Log::add_default_filter, <frame>, (Communication::LOG)) -> <no result> 0.000000 MetaHookPost CallFunction(Log::add_default_filter, <frame>, (Communication::LOG)) -> <no result>
0.000000 MetaHookPost CallFunction(Log::add_default_filter, <frame>, (Conn::LOG)) -> <no result> 0.000000 MetaHookPost CallFunction(Log::add_default_filter, <frame>, (Conn::LOG)) -> <no result>
@ -351,7 +351,7 @@
0.000000 MetaHookPost CallFunction(Log::create_stream, <frame>, (Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird])) -> <no result> 0.000000 MetaHookPost CallFunction(Log::create_stream, <frame>, (Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird])) -> <no result>
0.000000 MetaHookPost CallFunction(Log::create_stream, <frame>, (X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509])) -> <no result> 0.000000 MetaHookPost CallFunction(Log::create_stream, <frame>, (X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509])) -> <no result>
0.000000 MetaHookPost CallFunction(Log::create_stream, <frame>, (mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql])) -> <no result> 0.000000 MetaHookPost CallFunction(Log::create_stream, <frame>, (mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql])) -> <no result>
0.000000 MetaHookPost CallFunction(Log::write, <frame>, (PacketFilter::LOG, [ts=1460523470.220624, node=bro, filter=ip or not ip, init=T, success=T])) -> <no result> 0.000000 MetaHookPost CallFunction(Log::write, <frame>, (PacketFilter::LOG, [ts=1461367323.154279, node=bro, filter=ip or not ip, init=T, success=T])) -> <no result>
0.000000 MetaHookPost CallFunction(NetControl::check_plugins, <frame>, ()) -> <no result> 0.000000 MetaHookPost CallFunction(NetControl::check_plugins, <frame>, ()) -> <no result>
0.000000 MetaHookPost CallFunction(NetControl::init, <null>, ()) -> <no result> 0.000000 MetaHookPost CallFunction(NetControl::init, <null>, ()) -> <no result>
0.000000 MetaHookPost CallFunction(Notice::want_pp, <frame>, ()) -> <no result> 0.000000 MetaHookPost CallFunction(Notice::want_pp, <frame>, ()) -> <no result>
@ -524,6 +524,7 @@
0.000000 MetaHookPost LoadFile(./shunt) -> -1 0.000000 MetaHookPost LoadFile(./shunt) -> -1
0.000000 MetaHookPost LoadFile(./site) -> -1 0.000000 MetaHookPost LoadFile(./site) -> -1
0.000000 MetaHookPost LoadFile(./std-dev) -> -1 0.000000 MetaHookPost LoadFile(./std-dev) -> -1
0.000000 MetaHookPost LoadFile(./store) -> -1
0.000000 MetaHookPost LoadFile(./store.bif.bro) -> -1 0.000000 MetaHookPost LoadFile(./store.bif.bro) -> -1
0.000000 MetaHookPost LoadFile(./strings.bif.bro) -> -1 0.000000 MetaHookPost LoadFile(./strings.bif.bro) -> -1
0.000000 MetaHookPost LoadFile(./sum) -> -1 0.000000 MetaHookPost LoadFile(./sum) -> -1
@ -869,7 +870,7 @@
0.000000 MetaHookPre CallFunction(Log::__create_stream, <frame>, (Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird])) 0.000000 MetaHookPre CallFunction(Log::__create_stream, <frame>, (Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird]))
0.000000 MetaHookPre CallFunction(Log::__create_stream, <frame>, (X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509])) 0.000000 MetaHookPre CallFunction(Log::__create_stream, <frame>, (X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509]))
0.000000 MetaHookPre CallFunction(Log::__create_stream, <frame>, (mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql])) 0.000000 MetaHookPre CallFunction(Log::__create_stream, <frame>, (mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql]))
0.000000 MetaHookPre CallFunction(Log::__write, <frame>, (PacketFilter::LOG, [ts=1460523470.220624, node=bro, filter=ip or not ip, init=T, success=T])) 0.000000 MetaHookPre CallFunction(Log::__write, <frame>, (PacketFilter::LOG, [ts=1461367323.154279, node=bro, filter=ip or not ip, init=T, success=T]))
0.000000 MetaHookPre CallFunction(Log::add_default_filter, <frame>, (Cluster::LOG)) 0.000000 MetaHookPre CallFunction(Log::add_default_filter, <frame>, (Cluster::LOG))
0.000000 MetaHookPre CallFunction(Log::add_default_filter, <frame>, (Communication::LOG)) 0.000000 MetaHookPre CallFunction(Log::add_default_filter, <frame>, (Communication::LOG))
0.000000 MetaHookPre CallFunction(Log::add_default_filter, <frame>, (Conn::LOG)) 0.000000 MetaHookPre CallFunction(Log::add_default_filter, <frame>, (Conn::LOG))
@ -990,7 +991,7 @@
0.000000 MetaHookPre CallFunction(Log::create_stream, <frame>, (Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird])) 0.000000 MetaHookPre CallFunction(Log::create_stream, <frame>, (Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird]))
0.000000 MetaHookPre CallFunction(Log::create_stream, <frame>, (X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509])) 0.000000 MetaHookPre CallFunction(Log::create_stream, <frame>, (X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509]))
0.000000 MetaHookPre CallFunction(Log::create_stream, <frame>, (mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql])) 0.000000 MetaHookPre CallFunction(Log::create_stream, <frame>, (mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql]))
0.000000 MetaHookPre CallFunction(Log::write, <frame>, (PacketFilter::LOG, [ts=1460523470.220624, node=bro, filter=ip or not ip, init=T, success=T])) 0.000000 MetaHookPre CallFunction(Log::write, <frame>, (PacketFilter::LOG, [ts=1461367323.154279, node=bro, filter=ip or not ip, init=T, success=T]))
0.000000 MetaHookPre CallFunction(NetControl::check_plugins, <frame>, ()) 0.000000 MetaHookPre CallFunction(NetControl::check_plugins, <frame>, ())
0.000000 MetaHookPre CallFunction(NetControl::init, <null>, ()) 0.000000 MetaHookPre CallFunction(NetControl::init, <null>, ())
0.000000 MetaHookPre CallFunction(Notice::want_pp, <frame>, ()) 0.000000 MetaHookPre CallFunction(Notice::want_pp, <frame>, ())
@ -1163,6 +1164,7 @@
0.000000 MetaHookPre LoadFile(./shunt) 0.000000 MetaHookPre LoadFile(./shunt)
0.000000 MetaHookPre LoadFile(./site) 0.000000 MetaHookPre LoadFile(./site)
0.000000 MetaHookPre LoadFile(./std-dev) 0.000000 MetaHookPre LoadFile(./std-dev)
0.000000 MetaHookPre LoadFile(./store)
0.000000 MetaHookPre LoadFile(./store.bif.bro) 0.000000 MetaHookPre LoadFile(./store.bif.bro)
0.000000 MetaHookPre LoadFile(./strings.bif.bro) 0.000000 MetaHookPre LoadFile(./strings.bif.bro)
0.000000 MetaHookPre LoadFile(./sum) 0.000000 MetaHookPre LoadFile(./sum)
@ -1507,7 +1509,7 @@
0.000000 | HookCallFunction Log::__create_stream(Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird]) 0.000000 | HookCallFunction Log::__create_stream(Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird])
0.000000 | HookCallFunction Log::__create_stream(X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509]) 0.000000 | HookCallFunction Log::__create_stream(X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509])
0.000000 | HookCallFunction Log::__create_stream(mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql]) 0.000000 | HookCallFunction Log::__create_stream(mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql])
0.000000 | HookCallFunction Log::__write(PacketFilter::LOG, [ts=1460523470.220624, node=bro, filter=ip or not ip, init=T, success=T]) 0.000000 | HookCallFunction Log::__write(PacketFilter::LOG, [ts=1461367323.154279, node=bro, filter=ip or not ip, init=T, success=T])
0.000000 | HookCallFunction Log::add_default_filter(Cluster::LOG) 0.000000 | HookCallFunction Log::add_default_filter(Cluster::LOG)
0.000000 | HookCallFunction Log::add_default_filter(Communication::LOG) 0.000000 | HookCallFunction Log::add_default_filter(Communication::LOG)
0.000000 | HookCallFunction Log::add_default_filter(Conn::LOG) 0.000000 | HookCallFunction Log::add_default_filter(Conn::LOG)
@ -1628,7 +1630,7 @@
0.000000 | HookCallFunction Log::create_stream(Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird]) 0.000000 | HookCallFunction Log::create_stream(Weird::LOG, [columns=<no value description>, ev=Weird::log_weird, path=weird])
0.000000 | HookCallFunction Log::create_stream(X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509]) 0.000000 | HookCallFunction Log::create_stream(X509::LOG, [columns=<no value description>, ev=X509::log_x509, path=x509])
0.000000 | HookCallFunction Log::create_stream(mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql]) 0.000000 | HookCallFunction Log::create_stream(mysql::LOG, [columns=<no value description>, ev=MySQL::log_mysql, path=mysql])
0.000000 | HookCallFunction Log::write(PacketFilter::LOG, [ts=1460523470.220624, node=bro, filter=ip or not ip, init=T, success=T]) 0.000000 | HookCallFunction Log::write(PacketFilter::LOG, [ts=1461367323.154279, node=bro, filter=ip or not ip, init=T, success=T])
0.000000 | HookCallFunction NetControl::check_plugins() 0.000000 | HookCallFunction NetControl::check_plugins()
0.000000 | HookCallFunction NetControl::init() 0.000000 | HookCallFunction NetControl::init()
0.000000 | HookCallFunction Notice::want_pp() 0.000000 | HookCallFunction Notice::want_pp()

View file

@ -1,4 +1,4 @@
BrokerComm::incoming_connection_established Broker::incoming_connection_established
add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=192.168.18.50/32, src_p=<uninitialized>, dst_h=74.125.239.97/32, dst_p=<uninitialized>, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [command=blockhosthost, cookie=2, arg=192.168.18.50 74.125.239.97, comment=here] add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=192.168.18.50/32, src_p=<uninitialized>, dst_h=74.125.239.97/32, dst_p=<uninitialized>, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [command=blockhosthost, cookie=2, arg=192.168.18.50 74.125.239.97, comment=here]
add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=<uninitialized>, src_p=<uninitialized>, dst_h=<uninitialized>, dst_p=443/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [command=droptcpport, cookie=3, arg=443, comment=there] add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=<uninitialized>, src_p=<uninitialized>, dst_h=<uninitialized>, dst_p=443/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [command=droptcpport, cookie=3, arg=443, comment=there]
add_rule, 0, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=192.168.18.50/32, mac=<uninitialized>], NetControl::DROP, [command=nullzero, cookie=4, arg=192.168.18.50/32, comment=] add_rule, 0, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=192.168.18.50/32, mac=<uninitialized>], NetControl::DROP, [command=nullzero, cookie=4, arg=192.168.18.50/32, comment=]

View file

@ -1,4 +1,4 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp
rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=192.168.18.50/32, src_p=<uninitialized>, dst_h=74.125.239.97/32, dst_p=<uninitialized>, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=192.168.18.50/32, src_p=<uninitialized>, dst_h=74.125.239.97/32, dst_p=<uninitialized>, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP
rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=<uninitialized>, src_p=<uninitialized>, dst_h=<uninitialized>, dst_p=443/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=<uninitialized>, src_p=<uninitialized>, dst_h=<uninitialized>, dst_p=443/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP
rule added, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=192.168.18.50/32, mac=<uninitialized>], NetControl::DROP rule added, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=192.168.18.50/32, mac=<uninitialized>], NetControl::DROP

View file

@ -1,4 +1,4 @@
BrokerComm::incoming_connection_established Broker::incoming_connection_established
add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=192.168.18.50/32, src_p=<uninitialized>, dst_h=74.125.239.97/32, dst_p=<uninitialized>, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [command=blockhosthost, cookie=2, arg=192.168.18.50 74.125.239.97, comment=here] add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=192.168.18.50/32, src_p=<uninitialized>, dst_h=74.125.239.97/32, dst_p=<uninitialized>, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [command=blockhosthost, cookie=2, arg=192.168.18.50 74.125.239.97, comment=here]
add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=<uninitialized>, src_p=<uninitialized>, dst_h=<uninitialized>, dst_p=443/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [command=droptcpport, cookie=3, arg=443, comment=there] add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=<uninitialized>, src_p=<uninitialized>, dst_h=<uninitialized>, dst_p=443/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [command=droptcpport, cookie=3, arg=443, comment=there]
add_rule, 0, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=192.168.18.50/32, mac=<uninitialized>], NetControl::DROP, [command=drop, cookie=4, arg=192.168.18.50/32, comment=] add_rule, 0, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=192.168.18.50/32, mac=<uninitialized>], NetControl::DROP, [command=drop, cookie=4, arg=192.168.18.50/32, comment=]

View file

@ -1,4 +1,4 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp
rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=192.168.18.50/32, src_p=<uninitialized>, dst_h=74.125.239.97/32, dst_p=<uninitialized>, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=192.168.18.50/32, src_p=<uninitialized>, dst_h=74.125.239.97/32, dst_p=<uninitialized>, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP
rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=<uninitialized>, src_p=<uninitialized>, dst_h=<uninitialized>, dst_p=443/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=<uninitialized>, src_p=<uninitialized>, dst_h=<uninitialized>, dst_p=443/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP
rule added, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=192.168.18.50/32, mac=<uninitialized>], NetControl::DROP rule added, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=192.168.18.50/32, mac=<uninitialized>], NetControl::DROP

View file

@ -1,4 +1,4 @@
BrokerComm::incoming_connection_established Broker::incoming_connection_established
add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=10.10.1.4/32, src_p=1470/tcp, dst_h=74.53.140.153/32, dst_p=25/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP add_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=10.10.1.4/32, src_p=1470/tcp, dst_h=74.53.140.153/32, dst_p=25/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP
add_rule, 0, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=10.10.1.4/32, mac=<uninitialized>], NetControl::DROP add_rule, 0, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=10.10.1.4/32, mac=<uninitialized>], NetControl::DROP
remove_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=10.10.1.4/32, src_p=1470/tcp, dst_h=74.53.140.153/32, dst_p=25/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP remove_rule, 0, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=10.10.1.4/32, src_p=1470/tcp, dst_h=74.53.140.153/32, dst_p=25/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP

View file

@ -1,4 +1,4 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp
rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=10.10.1.4/32, src_p=1470/tcp, dst_h=74.53.140.153/32, dst_p=25/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP rule added, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=10.10.1.4/32, src_p=1470/tcp, dst_h=74.53.140.153/32, dst_p=25/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP
rule added, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=10.10.1.4/32, mac=<uninitialized>], NetControl::DROP rule added, [ty=NetControl::ADDRESS, conn=<uninitialized>, flow=<uninitialized>, ip=10.10.1.4/32, mac=<uninitialized>], NetControl::DROP
rule timeout, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=10.10.1.4/32, src_p=1470/tcp, dst_h=74.53.140.153/32, dst_p=25/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [duration=<uninitialized>, packet_count=<uninitialized>, byte_count=<uninitialized>] rule timeout, [ty=NetControl::FLOW, conn=<uninitialized>, flow=[src_h=10.10.1.4/32, src_p=1470/tcp, dst_h=74.53.140.153/32, dst_p=25/tcp, src_m=<uninitialized>, dst_m=<uninitialized>], ip=<uninitialized>, mac=<uninitialized>], NetControl::DROP, [duration=<uninitialized>, packet_count=<uninitialized>, byte_count=<uninitialized>]

View file

@ -1,4 +1,4 @@
BrokerComm::incoming_connection_established Broker::incoming_connection_established
flow_clear, 42 flow_clear, 42
got flow_mod, 42, [in_port=<uninitialized>, dl_src=<uninitialized>, dl_dst=<uninitialized>, dl_vlan=<uninitialized>, dl_vlan_pcp=<uninitialized>, dl_type=<uninitialized>, nw_tos=<uninitialized>, nw_proto=<uninitialized>, nw_src=<uninitialized>, nw_dst=<uninitialized>, tp_src=<uninitialized>, tp_dst=<uninitialized>], [cookie=4398046511105, table_id=<uninitialized>, command=OpenFlow::OFPFC_ADD, idle_timeout=0, hard_timeout=0, priority=0, out_port=<uninitialized>, out_group=<uninitialized>, flags=0, actions=[out_ports=[3, 7], vlan_vid=<uninitialized>, vlan_pcp=<uninitialized>, vlan_strip=F, dl_src=<uninitialized>, dl_dst=<uninitialized>, nw_tos=<uninitialized>, nw_src=<uninitialized>, nw_dst=<uninitialized>, tp_src=<uninitialized>, tp_dst=<uninitialized>]] got flow_mod, 42, [in_port=<uninitialized>, dl_src=<uninitialized>, dl_dst=<uninitialized>, dl_vlan=<uninitialized>, dl_vlan_pcp=<uninitialized>, dl_type=<uninitialized>, nw_tos=<uninitialized>, nw_proto=<uninitialized>, nw_src=<uninitialized>, nw_dst=<uninitialized>, tp_src=<uninitialized>, tp_dst=<uninitialized>], [cookie=4398046511105, table_id=<uninitialized>, command=OpenFlow::OFPFC_ADD, idle_timeout=0, hard_timeout=0, priority=0, out_port=<uninitialized>, out_group=<uninitialized>, flags=0, actions=[out_ports=[3, 7], vlan_vid=<uninitialized>, vlan_pcp=<uninitialized>, vlan_strip=F, dl_src=<uninitialized>, dl_dst=<uninitialized>, nw_tos=<uninitialized>, nw_src=<uninitialized>, nw_dst=<uninitialized>, tp_src=<uninitialized>, tp_dst=<uninitialized>]]
got flow_mod, 42, [in_port=<uninitialized>, dl_src=<uninitialized>, dl_dst=<uninitialized>, dl_vlan=<uninitialized>, dl_vlan_pcp=<uninitialized>, dl_type=2048, nw_tos=<uninitialized>, nw_proto=6, nw_src=10.10.1.4/32, nw_dst=74.53.140.153/32, tp_src=1470, tp_dst=25], [cookie=4398046511146, table_id=<uninitialized>, command=OpenFlow::OFPFC_ADD, idle_timeout=30, hard_timeout=0, priority=5, out_port=<uninitialized>, out_group=<uninitialized>, flags=0, actions=[out_ports=[], vlan_vid=<uninitialized>, vlan_pcp=<uninitialized>, vlan_strip=F, dl_src=<uninitialized>, dl_dst=<uninitialized>, nw_tos=<uninitialized>, nw_src=<uninitialized>, nw_dst=<uninitialized>, tp_src=<uninitialized>, tp_dst=<uninitialized>]] got flow_mod, 42, [in_port=<uninitialized>, dl_src=<uninitialized>, dl_dst=<uninitialized>, dl_vlan=<uninitialized>, dl_vlan_pcp=<uninitialized>, dl_type=2048, nw_tos=<uninitialized>, nw_proto=6, nw_src=10.10.1.4/32, nw_dst=74.53.140.153/32, tp_src=1470, tp_dst=25], [cookie=4398046511146, table_id=<uninitialized>, command=OpenFlow::OFPFC_ADD, idle_timeout=30, hard_timeout=0, priority=5, out_port=<uninitialized>, out_group=<uninitialized>, flags=0, actions=[out_ports=[], vlan_vid=<uninitialized>, vlan_pcp=<uninitialized>, vlan_strip=F, dl_src=<uninitialized>, dl_dst=<uninitialized>, nw_tos=<uninitialized>, nw_src=<uninitialized>, nw_dst=<uninitialized>, tp_src=<uninitialized>, tp_dst=<uninitialized>]]

View file

@ -1,4 +1,4 @@
BrokerComm::outgoing_connection_established, 127.0.0.1, 9999/tcp Broker::outgoing_connection_established, 127.0.0.1, 9999/tcp
Flow_mod_success Flow_mod_success
Flow_mod_failure Flow_mod_failure
connection established connection established

View file

@ -13,7 +13,7 @@
const broker_port: port &redef; const broker_port: port &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
global expected_key_count = 4; global expected_key_count = 4;
global key_count = 0; global key_count = 0;
@ -21,7 +21,7 @@ global query_timeout = 30sec;
function do_lookup(key: string) function do_lookup(key: string)
{ {
when ( local res = BrokerStore::lookup(h, BrokerComm::data(key)) ) when ( local res = Broker::lookup(h, Broker::data(key)) )
{ {
++key_count; ++key_count;
print "lookup", key, res; print "lookup", key, res;
@ -38,15 +38,15 @@ function do_lookup(key: string)
event ready() event ready()
{ {
h = BrokerStore::create_clone("mystore"); h = Broker::create_clone("mystore");
when ( local res = BrokerStore::keys(h) ) when ( local res = Broker::keys(h) )
{ {
print "clone keys", res; print "clone keys", res;
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 0))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 0)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 1))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 1)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 2))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 2)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 3))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 3)));
} }
timeout query_timeout timeout query_timeout
{ {
@ -57,9 +57,9 @@ event ready()
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/ready"); Broker::subscribe_to_events("bro/event/ready");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
@TEST-END-FILE @TEST-END-FILE
@ -71,42 +71,42 @@ global query_timeout = 15sec;
const broker_port: port &redef; const broker_port: port &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
function dv(d: BrokerComm::Data): BrokerComm::DataVector function dv(d: Broker::Data): Broker::DataVector
{ {
local rval: BrokerComm::DataVector; local rval: Broker::DataVector;
rval[0] = d; rval[0] = d;
return rval; return rval;
} }
global ready: event(); global ready: event();
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
local myset: set[string] = {"a", "b", "c"}; local myset: set[string] = {"a", "b", "c"};
local myvec: vector of string = {"alpha", "beta", "gamma"}; local myvec: vector of string = {"alpha", "beta", "gamma"};
h = BrokerStore::create_master("mystore"); h = Broker::create_master("mystore");
BrokerStore::insert(h, BrokerComm::data("one"), BrokerComm::data(110)); Broker::insert(h, Broker::data("one"), Broker::data(110));
BrokerStore::insert(h, BrokerComm::data("two"), BrokerComm::data(223)); Broker::insert(h, Broker::data("two"), Broker::data(223));
BrokerStore::insert(h, BrokerComm::data("myset"), BrokerComm::data(myset)); Broker::insert(h, Broker::data("myset"), Broker::data(myset));
BrokerStore::insert(h, BrokerComm::data("myvec"), BrokerComm::data(myvec)); Broker::insert(h, Broker::data("myvec"), Broker::data(myvec));
BrokerStore::increment(h, BrokerComm::data("one")); Broker::increment(h, Broker::data("one"));
BrokerStore::decrement(h, BrokerComm::data("two")); Broker::decrement(h, Broker::data("two"));
BrokerStore::add_to_set(h, BrokerComm::data("myset"), BrokerComm::data("d")); Broker::add_to_set(h, Broker::data("myset"), Broker::data("d"));
BrokerStore::remove_from_set(h, BrokerComm::data("myset"), BrokerComm::data("b")); Broker::remove_from_set(h, Broker::data("myset"), Broker::data("b"));
BrokerStore::push_left(h, BrokerComm::data("myvec"), dv(BrokerComm::data("delta"))); Broker::push_left(h, Broker::data("myvec"), dv(Broker::data("delta")));
BrokerStore::push_right(h, BrokerComm::data("myvec"), dv(BrokerComm::data("omega"))); Broker::push_right(h, Broker::data("myvec"), dv(Broker::data("omega")));
when ( local res = BrokerStore::size(h) ) when ( local res = Broker::size(h) )
{ event ready(); } { event ready(); }
timeout query_timeout timeout query_timeout
{ {
@ -117,9 +117,9 @@ event BrokerComm::outgoing_connection_established(peer_address: string,
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::auto_event("bro/event/ready", ready); Broker::auto_event("bro/event/ready", ready);
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
} }
@TEST-END-FILE @TEST-END-FILE

View file

@ -12,22 +12,22 @@
const broker_port: port &redef; const broker_port: port &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name;; print "Broker::incoming_connection_established", peer_name;;
} }
event BrokerComm::incoming_connection_broken(peer_name: string) event Broker::incoming_connection_broken(peer_name: string)
{ {
print "BrokerComm::incoming_connection_broken", peer_name;; print "Broker::incoming_connection_broken", peer_name;;
terminate(); terminate();
} }
@ -37,19 +37,19 @@ event BrokerComm::incoming_connection_broken(peer_name: string)
const broker_port: port &redef; const broker_port: port &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name;; peer_address, peer_port, peer_name;;
terminate(); terminate();
} }

View file

@ -13,210 +13,210 @@ type bro_record : record {
c: count; c: count;
}; };
function comm_record_to_bro_record_recurse(it: opaque of BrokerComm::RecordIterator, function comm_record_to_bro_record_recurse(it: opaque of Broker::RecordIterator,
rval: bro_record, rval: bro_record,
idx: count): bro_record idx: count): bro_record
{ {
if ( BrokerComm::record_iterator_last(it) ) if ( Broker::record_iterator_last(it) )
return rval; return rval;
local field_value = BrokerComm::record_iterator_value(it); local field_value = Broker::record_iterator_value(it);
if ( field_value?$d ) if ( field_value?$d )
switch ( idx ) { switch ( idx ) {
case 0: case 0:
rval$a = BrokerComm::refine_to_string(field_value); rval$a = Broker::refine_to_string(field_value);
break; break;
case 1: case 1:
rval$b = BrokerComm::refine_to_string(field_value); rval$b = Broker::refine_to_string(field_value);
break; break;
case 2: case 2:
rval$c = BrokerComm::refine_to_count(field_value); rval$c = Broker::refine_to_count(field_value);
break; break;
}; };
++idx; ++idx;
BrokerComm::record_iterator_next(it); Broker::record_iterator_next(it);
return comm_record_to_bro_record_recurse(it, rval, idx); return comm_record_to_bro_record_recurse(it, rval, idx);
} }
function comm_record_to_bro_record(d: BrokerComm::Data): bro_record function comm_record_to_bro_record(d: Broker::Data): bro_record
{ {
return comm_record_to_bro_record_recurse(BrokerComm::record_iterator(d), return comm_record_to_bro_record_recurse(Broker::record_iterator(d),
bro_record($c = 0), 0); bro_record($c = 0), 0);
} }
function function
comm_set_to_bro_set_recurse(it: opaque of BrokerComm::SetIterator, comm_set_to_bro_set_recurse(it: opaque of Broker::SetIterator,
rval: bro_set): bro_set rval: bro_set): bro_set
{ {
if ( BrokerComm::set_iterator_last(it) ) if ( Broker::set_iterator_last(it) )
return rval; return rval;
add rval[BrokerComm::refine_to_string(BrokerComm::set_iterator_value(it))]; add rval[Broker::refine_to_string(Broker::set_iterator_value(it))];
BrokerComm::set_iterator_next(it); Broker::set_iterator_next(it);
return comm_set_to_bro_set_recurse(it, rval); return comm_set_to_bro_set_recurse(it, rval);
} }
function comm_set_to_bro_set(d: BrokerComm::Data): bro_set function comm_set_to_bro_set(d: Broker::Data): bro_set
{ {
return comm_set_to_bro_set_recurse(BrokerComm::set_iterator(d), bro_set()); return comm_set_to_bro_set_recurse(Broker::set_iterator(d), bro_set());
} }
function function
comm_table_to_bro_table_recurse(it: opaque of BrokerComm::TableIterator, comm_table_to_bro_table_recurse(it: opaque of Broker::TableIterator,
rval: bro_table): bro_table rval: bro_table): bro_table
{ {
if ( BrokerComm::table_iterator_last(it) ) if ( Broker::table_iterator_last(it) )
return rval; return rval;
local item = BrokerComm::table_iterator_value(it); local item = Broker::table_iterator_value(it);
rval[BrokerComm::refine_to_string(item$key)] = BrokerComm::refine_to_count(item$val); rval[Broker::refine_to_string(item$key)] = Broker::refine_to_count(item$val);
BrokerComm::table_iterator_next(it); Broker::table_iterator_next(it);
return comm_table_to_bro_table_recurse(it, rval); return comm_table_to_bro_table_recurse(it, rval);
} }
function comm_table_to_bro_table(d: BrokerComm::Data): bro_table function comm_table_to_bro_table(d: Broker::Data): bro_table
{ {
return comm_table_to_bro_table_recurse(BrokerComm::table_iterator(d), return comm_table_to_bro_table_recurse(Broker::table_iterator(d),
bro_table()); bro_table());
} }
function comm_vector_to_bro_vector_recurse(it: opaque of BrokerComm::VectorIterator, function comm_vector_to_bro_vector_recurse(it: opaque of Broker::VectorIterator,
rval: bro_vector): bro_vector rval: bro_vector): bro_vector
{ {
if ( BrokerComm::vector_iterator_last(it) ) if ( Broker::vector_iterator_last(it) )
return rval; return rval;
rval[|rval|] = BrokerComm::refine_to_string(BrokerComm::vector_iterator_value(it)); rval[|rval|] = Broker::refine_to_string(Broker::vector_iterator_value(it));
BrokerComm::vector_iterator_next(it); Broker::vector_iterator_next(it);
return comm_vector_to_bro_vector_recurse(it, rval); return comm_vector_to_bro_vector_recurse(it, rval);
} }
function comm_vector_to_bro_vector(d: BrokerComm::Data): bro_vector function comm_vector_to_bro_vector(d: Broker::Data): bro_vector
{ {
return comm_vector_to_bro_vector_recurse(BrokerComm::vector_iterator(d), return comm_vector_to_bro_vector_recurse(Broker::vector_iterator(d),
bro_vector()); bro_vector());
} }
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
print BrokerComm::data_type(BrokerComm::data(T)); print Broker::data_type(Broker::data(T));
print BrokerComm::data_type(BrokerComm::data(+1)); print Broker::data_type(Broker::data(+1));
print BrokerComm::data_type(BrokerComm::data(1)); print Broker::data_type(Broker::data(1));
print BrokerComm::data_type(BrokerComm::data(1.1)); print Broker::data_type(Broker::data(1.1));
print BrokerComm::data_type(BrokerComm::data("1 (how creative)")); print Broker::data_type(Broker::data("1 (how creative)"));
print BrokerComm::data_type(BrokerComm::data(1.1.1.1)); print Broker::data_type(Broker::data(1.1.1.1));
print BrokerComm::data_type(BrokerComm::data(1.1.1.1/1)); print Broker::data_type(Broker::data(1.1.1.1/1));
print BrokerComm::data_type(BrokerComm::data(1/udp)); print Broker::data_type(Broker::data(1/udp));
print BrokerComm::data_type(BrokerComm::data(double_to_time(1))); print Broker::data_type(Broker::data(double_to_time(1)));
print BrokerComm::data_type(BrokerComm::data(1sec)); print Broker::data_type(Broker::data(1sec));
print BrokerComm::data_type(BrokerComm::data(BrokerComm::BOOL)); print Broker::data_type(Broker::data(Broker::BOOL));
local s: bro_set = bro_set("one", "two", "three"); local s: bro_set = bro_set("one", "two", "three");
local t: bro_table = bro_table(["one"] = 1, ["two"] = 2, ["three"] = 3); local t: bro_table = bro_table(["one"] = 1, ["two"] = 2, ["three"] = 3);
local v: bro_vector = bro_vector("zero", "one", "two"); local v: bro_vector = bro_vector("zero", "one", "two");
local r: bro_record = bro_record($c = 1); local r: bro_record = bro_record($c = 1);
print BrokerComm::data_type(BrokerComm::data(s)); print Broker::data_type(Broker::data(s));
print BrokerComm::data_type(BrokerComm::data(t)); print Broker::data_type(Broker::data(t));
print BrokerComm::data_type(BrokerComm::data(v)); print Broker::data_type(Broker::data(v));
print BrokerComm::data_type(BrokerComm::data(r)); print Broker::data_type(Broker::data(r));
print "***************************"; print "***************************";
print BrokerComm::refine_to_bool(BrokerComm::data(T)); print Broker::refine_to_bool(Broker::data(T));
print BrokerComm::refine_to_bool(BrokerComm::data(F)); print Broker::refine_to_bool(Broker::data(F));
print BrokerComm::refine_to_int(BrokerComm::data(+1)); print Broker::refine_to_int(Broker::data(+1));
print BrokerComm::refine_to_int(BrokerComm::data(+0)); print Broker::refine_to_int(Broker::data(+0));
print BrokerComm::refine_to_int(BrokerComm::data(-1)); print Broker::refine_to_int(Broker::data(-1));
print BrokerComm::refine_to_count(BrokerComm::data(1)); print Broker::refine_to_count(Broker::data(1));
print BrokerComm::refine_to_count(BrokerComm::data(0)); print Broker::refine_to_count(Broker::data(0));
print BrokerComm::refine_to_double(BrokerComm::data(1.1)); print Broker::refine_to_double(Broker::data(1.1));
print BrokerComm::refine_to_double(BrokerComm::data(-11.1)); print Broker::refine_to_double(Broker::data(-11.1));
print BrokerComm::refine_to_string(BrokerComm::data("hello")); print Broker::refine_to_string(Broker::data("hello"));
print BrokerComm::refine_to_addr(BrokerComm::data(1.2.3.4)); print Broker::refine_to_addr(Broker::data(1.2.3.4));
print BrokerComm::refine_to_subnet(BrokerComm::data(192.168.1.1/16)); print Broker::refine_to_subnet(Broker::data(192.168.1.1/16));
print BrokerComm::refine_to_port(BrokerComm::data(22/tcp)); print Broker::refine_to_port(Broker::data(22/tcp));
print BrokerComm::refine_to_time(BrokerComm::data(double_to_time(42))); print Broker::refine_to_time(Broker::data(double_to_time(42)));
print BrokerComm::refine_to_interval(BrokerComm::data(3min)); print Broker::refine_to_interval(Broker::data(3min));
print BrokerComm::refine_to_enum_name(BrokerComm::data(BrokerComm::BOOL)); print Broker::refine_to_enum_name(Broker::data(Broker::BOOL));
print "***************************"; print "***************************";
local cs = BrokerComm::data(s); local cs = Broker::data(s);
print comm_set_to_bro_set(cs); print comm_set_to_bro_set(cs);
cs = BrokerComm::set_create(); cs = Broker::set_create();
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print BrokerComm::set_insert(cs, BrokerComm::data("hi")); print Broker::set_insert(cs, Broker::data("hi"));
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print BrokerComm::set_contains(cs, BrokerComm::data("hi")); print Broker::set_contains(cs, Broker::data("hi"));
print BrokerComm::set_contains(cs, BrokerComm::data("bye")); print Broker::set_contains(cs, Broker::data("bye"));
print BrokerComm::set_insert(cs, BrokerComm::data("bye")); print Broker::set_insert(cs, Broker::data("bye"));
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print BrokerComm::set_remove(cs, BrokerComm::data("hi")); print Broker::set_remove(cs, Broker::data("hi"));
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print BrokerComm::set_remove(cs, BrokerComm::data("hi")); print Broker::set_remove(cs, Broker::data("hi"));
print comm_set_to_bro_set(cs); print comm_set_to_bro_set(cs);
BrokerComm::set_clear(cs); Broker::set_clear(cs);
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print "***************************"; print "***************************";
local ct = BrokerComm::data(t); local ct = Broker::data(t);
print comm_table_to_bro_table(ct); print comm_table_to_bro_table(ct);
ct = BrokerComm::table_create(); ct = Broker::table_create();
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print BrokerComm::table_insert(ct, BrokerComm::data("hi"), BrokerComm::data(42)); print Broker::table_insert(ct, Broker::data("hi"), Broker::data(42));
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print BrokerComm::table_contains(ct, BrokerComm::data("hi")); print Broker::table_contains(ct, Broker::data("hi"));
print BrokerComm::refine_to_count(BrokerComm::table_lookup(ct, BrokerComm::data("hi"))); print Broker::refine_to_count(Broker::table_lookup(ct, Broker::data("hi")));
print BrokerComm::table_contains(ct, BrokerComm::data("bye")); print Broker::table_contains(ct, Broker::data("bye"));
print BrokerComm::table_insert(ct, BrokerComm::data("bye"), BrokerComm::data(7)); print Broker::table_insert(ct, Broker::data("bye"), Broker::data(7));
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print BrokerComm::table_insert(ct, BrokerComm::data("bye"), BrokerComm::data(37)); print Broker::table_insert(ct, Broker::data("bye"), Broker::data(37));
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print BrokerComm::refine_to_count(BrokerComm::table_lookup(ct, BrokerComm::data("bye"))); print Broker::refine_to_count(Broker::table_lookup(ct, Broker::data("bye")));
print BrokerComm::table_remove(ct, BrokerComm::data("hi")); print Broker::table_remove(ct, Broker::data("hi"));
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print "***************************"; print "***************************";
local cv = BrokerComm::data(v); local cv = Broker::data(v);
print comm_vector_to_bro_vector(cv); print comm_vector_to_bro_vector(cv);
cv = BrokerComm::vector_create(); cv = Broker::vector_create();
print BrokerComm::vector_size(cv); print Broker::vector_size(cv);
print BrokerComm::vector_insert(cv, BrokerComm::data("hi"), 0); print Broker::vector_insert(cv, Broker::data("hi"), 0);
print BrokerComm::vector_insert(cv, BrokerComm::data("hello"), 1); print Broker::vector_insert(cv, Broker::data("hello"), 1);
print BrokerComm::vector_insert(cv, BrokerComm::data("greetings"), 2); print Broker::vector_insert(cv, Broker::data("greetings"), 2);
print BrokerComm::vector_insert(cv, BrokerComm::data("salutations"), 1); print Broker::vector_insert(cv, Broker::data("salutations"), 1);
print comm_vector_to_bro_vector(cv); print comm_vector_to_bro_vector(cv);
print BrokerComm::vector_size(cv); print Broker::vector_size(cv);
print BrokerComm::vector_replace(cv, BrokerComm::data("bah"), 2); print Broker::vector_replace(cv, Broker::data("bah"), 2);
print BrokerComm::vector_lookup(cv, 2); print Broker::vector_lookup(cv, 2);
print BrokerComm::vector_lookup(cv, 0); print Broker::vector_lookup(cv, 0);
print comm_vector_to_bro_vector(cv); print comm_vector_to_bro_vector(cv);
print BrokerComm::vector_remove(cv, 2); print Broker::vector_remove(cv, 2);
print comm_vector_to_bro_vector(cv); print comm_vector_to_bro_vector(cv);
print BrokerComm::vector_size(cv); print Broker::vector_size(cv);
print "***************************"; print "***************************";
local cr = BrokerComm::data(r); local cr = Broker::data(r);
print comm_record_to_bro_record(cr); print comm_record_to_bro_record(cr);
r$a = "test"; r$a = "test";
cr = BrokerComm::data(r); cr = Broker::data(r);
print comm_record_to_bro_record(cr); print comm_record_to_bro_record(cr);
r$b = "testagain"; r$b = "testagain";
cr = BrokerComm::data(r); cr = Broker::data(r);
print comm_record_to_bro_record(cr); print comm_record_to_bro_record(cr);
cr = BrokerComm::record_create(3); cr = Broker::record_create(3);
print BrokerComm::record_size(cr); print Broker::record_size(cr);
print BrokerComm::record_assign(cr, BrokerComm::data("hi"), 0); print Broker::record_assign(cr, Broker::data("hi"), 0);
print BrokerComm::record_assign(cr, BrokerComm::data("hello"), 1); print Broker::record_assign(cr, Broker::data("hello"), 1);
print BrokerComm::record_assign(cr, BrokerComm::data(37), 2); print Broker::record_assign(cr, Broker::data(37), 2);
print BrokerComm::record_lookup(cr, 0); print Broker::record_lookup(cr, 0);
print BrokerComm::record_lookup(cr, 1); print Broker::record_lookup(cr, 1);
print BrokerComm::record_lookup(cr, 2); print Broker::record_lookup(cr, 2);
print BrokerComm::record_size(cr); print Broker::record_size(cr);
} }

View file

@ -11,7 +11,7 @@ event terminate_me() {
} }
event bro_init() { event bro_init() {
BrokerComm::enable(); Broker::enable();
print "1"; print "1";
schedule 1sec { terminate_me() }; schedule 1sec { terminate_me() };

View file

@ -6,7 +6,7 @@
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
global lookup_count = 0; global lookup_count = 0;
const lookup_expect_count = 5; const lookup_expect_count = 5;
global exists_count = 0; global exists_count = 0;
@ -20,13 +20,13 @@ global query_timeout = 30sec;
event test_clear() event test_clear()
{ {
BrokerStore::clear(h); Broker::clear(h);
event test_size("after clear"); event test_size("after clear");
} }
event test_size(where: string) event test_size(where: string)
{ {
when ( local res = BrokerStore::size(h) ) when ( local res = Broker::size(h) )
{ {
if ( where == "" ) if ( where == "" )
{ {
@ -52,7 +52,7 @@ event test_size(where: string)
event test_keys() event test_keys()
{ {
when ( local res = BrokerStore::keys(h) ) when ( local res = Broker::keys(h) )
{ {
print fmt("keys: %s", res); print fmt("keys: %s", res);
event test_size(); event test_size();
@ -66,7 +66,7 @@ event test_keys()
event test_pop(key: string) event test_pop(key: string)
{ {
when ( local lres = BrokerStore::pop_left(h, BrokerComm::data(key)) ) when ( local lres = Broker::pop_left(h, Broker::data(key)) )
{ {
print fmt("pop_left(%s): %s", key, lres); print fmt("pop_left(%s): %s", key, lres);
++pop_count; ++pop_count;
@ -83,7 +83,7 @@ event test_pop(key: string)
event test_keys(); event test_keys();
} }
when ( local rres = BrokerStore::pop_right(h, BrokerComm::data(key)) ) when ( local rres = Broker::pop_right(h, Broker::data(key)) )
{ {
print fmt("pop_right(%s): %s", key, rres); print fmt("pop_right(%s): %s", key, rres);
++pop_count; ++pop_count;
@ -103,7 +103,7 @@ event test_pop(key: string)
function do_exists(key: string) function do_exists(key: string)
{ {
when ( local res = BrokerStore::exists(h, BrokerComm::data(key)) ) when ( local res = Broker::exists(h, Broker::data(key)) )
{ {
print fmt("exists(%s): %s", key, res); print fmt("exists(%s): %s", key, res);
++exists_count; ++exists_count;
@ -123,7 +123,7 @@ function do_exists(key: string)
event test_erase() event test_erase()
{ {
BrokerStore::erase(h, BrokerComm::data("two")); Broker::erase(h, Broker::data("two"));
do_exists("one"); do_exists("one");
do_exists("two"); do_exists("two");
do_exists("myset"); do_exists("myset");
@ -132,7 +132,7 @@ event test_erase()
function do_lookup(key: string) function do_lookup(key: string)
{ {
when ( local res = BrokerStore::lookup(h, BrokerComm::data(key)) ) when ( local res = Broker::lookup(h, Broker::data(key)) )
{ {
print fmt("lookup(%s): %s", key, res); print fmt("lookup(%s): %s", key, res);
++lookup_count; ++lookup_count;
@ -150,29 +150,29 @@ function do_lookup(key: string)
} }
} }
function dv(d: BrokerComm::Data): BrokerComm::DataVector function dv(d: Broker::Data): Broker::DataVector
{ {
local rval: BrokerComm::DataVector; local rval: Broker::DataVector;
rval[0] = d; rval[0] = d;
return rval; return rval;
} }
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
local myset: set[string] = {"a", "b", "c"}; local myset: set[string] = {"a", "b", "c"};
local myvec: vector of string = {"alpha", "beta", "gamma"}; local myvec: vector of string = {"alpha", "beta", "gamma"};
h = BrokerStore::create_master("master"); h = Broker::create_master("master");
BrokerStore::insert(h, BrokerComm::data("one"), BrokerComm::data(110)); Broker::insert(h, Broker::data("one"), Broker::data(110));
BrokerStore::insert(h, BrokerComm::data("two"), BrokerComm::data(223)); Broker::insert(h, Broker::data("two"), Broker::data(223));
BrokerStore::insert(h, BrokerComm::data("myset"), BrokerComm::data(myset)); Broker::insert(h, Broker::data("myset"), Broker::data(myset));
BrokerStore::insert(h, BrokerComm::data("myvec"), BrokerComm::data(myvec)); Broker::insert(h, Broker::data("myvec"), Broker::data(myvec));
BrokerStore::increment(h, BrokerComm::data("one")); Broker::increment(h, Broker::data("one"));
BrokerStore::decrement(h, BrokerComm::data("two")); Broker::decrement(h, Broker::data("two"));
BrokerStore::add_to_set(h, BrokerComm::data("myset"), BrokerComm::data("d")); Broker::add_to_set(h, Broker::data("myset"), Broker::data("d"));
BrokerStore::remove_from_set(h, BrokerComm::data("myset"), BrokerComm::data("b")); Broker::remove_from_set(h, Broker::data("myset"), Broker::data("b"));
BrokerStore::push_left(h, BrokerComm::data("myvec"), dv(BrokerComm::data("delta"))); Broker::push_left(h, Broker::data("myvec"), dv(Broker::data("delta")));
BrokerStore::push_right(h, BrokerComm::data("myvec"), dv(BrokerComm::data("omega"))); Broker::push_right(h, Broker::data("myvec"), dv(Broker::data("omega")));
do_lookup("one"); do_lookup("one");
do_lookup("two"); do_lookup("two");
do_lookup("myset"); do_lookup("myset");

View file

@ -18,10 +18,10 @@ global auto_event_handler: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/"); Broker::subscribe_to_events("bro/event/");
BrokerComm::auto_event("bro/event/my_topic", auto_event_handler); Broker::auto_event("bro/event/my_topic", auto_event_handler);
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
global event_count = 0; global event_count = 0;
@ -39,8 +39,8 @@ event event_handler(msg: string, n: count)
} }
event auto_event_handler(msg, n); event auto_event_handler(msg, n);
local args = BrokerComm::event_args(event_handler, "pong", n); local args = Broker::event_args(event_handler, "pong", n);
BrokerComm::event("bro/event/my_topic", args); Broker::event("bro/event/my_topic", args);
} }
@TEST-END-FILE @TEST-END-FILE
@ -55,24 +55,24 @@ global auto_event_handler: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/my_topic"); Broker::subscribe_to_events("bro/event/my_topic");
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
} }
global event_count = 0; global event_count = 0;
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
local args = BrokerComm::event_args(event_handler, "ping", event_count); local args = Broker::event_args(event_handler, "ping", event_count);
BrokerComm::event("bro/event/hi", args); Broker::event("bro/event/hi", args);
++event_count; ++event_count;
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
@ -81,8 +81,8 @@ event BrokerComm::outgoing_connection_broken(peer_address: string,
event event_handler(msg: string, n: count) event event_handler(msg: string, n: count)
{ {
print "got event msg", msg, n; print "got event msg", msg, n;
local args = BrokerComm::event_args(event_handler, "ping", event_count); local args = Broker::event_args(event_handler, "ping", event_count);
BrokerComm::event("bro/event/hi", args); Broker::event("bro/event/hi", args);
++event_count; ++event_count;
} }

View file

@ -28,7 +28,7 @@ export {
event bro_init() &priority=5 event bro_init() &priority=5
{ {
BrokerComm::enable(); Broker::enable();
Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test]); Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test]);
} }
@ -41,8 +41,8 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::subscribe_to_logs("bro/log/"); Broker::subscribe_to_logs("bro/log/");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event Test::log_test(rec: Test::Info) event Test::log_test(rec: Test::Info)
@ -62,8 +62,8 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::enable_remote_logs(Test::LOG); Broker::enable_remote_logs(Test::LOG);
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
} }
global n = 0; global n = 0;
@ -80,15 +80,15 @@ event do_write()
} }
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
event do_write(); event do_write();
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -15,16 +15,16 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
BrokerComm::subscribe_to_prints("bro/print/"); Broker::subscribe_to_prints("bro/print/");
} }
global messages_to_recv = 6; global messages_to_recv = 6;
global messages_sent = 0; global messages_sent = 0;
global messages_recv = 0; global messages_recv = 0;
event BrokerComm::print_handler(msg: string) event Broker::print_handler(msg: string)
{ {
++messages_recv; ++messages_recv;
print "got print msg", msg; print "got print msg", msg;
@ -35,7 +35,7 @@ event BrokerComm::print_handler(msg: string)
return; return;
} }
BrokerComm::print("bro/print/my_topic", fmt("pong %d", messages_sent)); Broker::print("bro/print/my_topic", fmt("pong %d", messages_sent));
++messages_sent; ++messages_sent;
} }
@ -48,35 +48,35 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_prints("bro/print/my_topic"); Broker::subscribe_to_prints("bro/print/my_topic");
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
} }
global messages_sent = 0; global messages_sent = 0;
global messages_recv = 0; global messages_recv = 0;
global peer_disconnected = F; global peer_disconnected = F;
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
BrokerComm::print("bro/print/hi", fmt("ping %d", messages_sent)); Broker::print("bro/print/hi", fmt("ping %d", messages_sent));
++messages_sent; ++messages_sent;
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
} }
event BrokerComm::print_handler(msg: string) event Broker::print_handler(msg: string)
{ {
++messages_recv; ++messages_recv;
print "got print msg", msg; print "got print msg", msg;
BrokerComm::print("bro/print/hi", fmt("ping %d", messages_sent)); Broker::print("bro/print/hi", fmt("ping %d", messages_sent));
++messages_sent; ++messages_sent;
} }

View file

@ -14,13 +14,13 @@
const broker_port: port &redef; const broker_port: port &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
global expected_key_count = 4; global expected_key_count = 4;
global key_count = 0; global key_count = 0;
function do_lookup(key: string) function do_lookup(key: string)
{ {
when ( local res = BrokerStore::lookup(h, BrokerComm::data(key)) ) when ( local res = Broker::lookup(h, Broker::data(key)) )
{ {
++key_count; ++key_count;
print "lookup", key, res; print "lookup", key, res;
@ -34,15 +34,15 @@ function do_lookup(key: string)
event ready() event ready()
{ {
h = BrokerStore::create_clone("mystore"); h = Broker::create_clone("mystore");
when ( local res = BrokerStore::keys(h) ) when ( local res = Broker::keys(h) )
{ {
print "clone keys", res; print "clone keys", res;
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 0))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 0)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 1))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 1)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 2))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 2)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 3))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 3)));
} }
timeout 10sec timeout 10sec
{ print "timeout"; } { print "timeout"; }
@ -50,9 +50,9 @@ event ready()
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
BrokerComm::subscribe_to_events("bro/event/ready"); Broker::subscribe_to_events("bro/event/ready");
} }
@TEST-END-FILE @TEST-END-FILE
@ -62,41 +62,41 @@ event bro_init()
const broker_port: port &redef; const broker_port: port &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
function dv(d: BrokerComm::Data): BrokerComm::DataVector function dv(d: Broker::Data): Broker::DataVector
{ {
local rval: BrokerComm::DataVector; local rval: Broker::DataVector;
rval[0] = d; rval[0] = d;
return rval; return rval;
} }
global ready: event(); global ready: event();
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
local myset: set[string] = {"a", "b", "c"}; local myset: set[string] = {"a", "b", "c"};
local myvec: vector of string = {"alpha", "beta", "gamma"}; local myvec: vector of string = {"alpha", "beta", "gamma"};
BrokerStore::insert(h, BrokerComm::data("one"), BrokerComm::data(110)); Broker::insert(h, Broker::data("one"), Broker::data(110));
BrokerStore::insert(h, BrokerComm::data("two"), BrokerComm::data(223)); Broker::insert(h, Broker::data("two"), Broker::data(223));
BrokerStore::insert(h, BrokerComm::data("myset"), BrokerComm::data(myset)); Broker::insert(h, Broker::data("myset"), Broker::data(myset));
BrokerStore::insert(h, BrokerComm::data("myvec"), BrokerComm::data(myvec)); Broker::insert(h, Broker::data("myvec"), Broker::data(myvec));
BrokerStore::increment(h, BrokerComm::data("one")); Broker::increment(h, Broker::data("one"));
BrokerStore::decrement(h, BrokerComm::data("two")); Broker::decrement(h, Broker::data("two"));
BrokerStore::add_to_set(h, BrokerComm::data("myset"), BrokerComm::data("d")); Broker::add_to_set(h, Broker::data("myset"), Broker::data("d"));
BrokerStore::remove_from_set(h, BrokerComm::data("myset"), BrokerComm::data("b")); Broker::remove_from_set(h, Broker::data("myset"), Broker::data("b"));
BrokerStore::push_left(h, BrokerComm::data("myvec"), dv(BrokerComm::data("delta"))); Broker::push_left(h, Broker::data("myvec"), dv(Broker::data("delta")));
BrokerStore::push_right(h, BrokerComm::data("myvec"), dv(BrokerComm::data("omega"))); Broker::push_right(h, Broker::data("myvec"), dv(Broker::data("omega")));
when ( local res = BrokerStore::size(h) ) when ( local res = Broker::size(h) )
{ event ready(); } { event ready(); }
timeout 10sec timeout 10sec
{ print "timeout"; } { print "timeout"; }
@ -104,10 +104,10 @@ event BrokerComm::outgoing_connection_established(peer_address: string,
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
h = BrokerStore::create_master("mystore"); h = Broker::create_master("mystore");
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
BrokerComm::auto_event("bro/event/ready", ready); Broker::auto_event("bro/event/ready", ready);
} }
@TEST-END-FILE @TEST-END-FILE

View file

@ -16,96 +16,96 @@ type bro_record : record {
c: count; c: count;
}; };
function comm_record_to_bro_record_recurse(it: opaque of BrokerComm::RecordIterator, function comm_record_to_bro_record_recurse(it: opaque of Broker::RecordIterator,
rval: bro_record, rval: bro_record,
idx: count): bro_record idx: count): bro_record
{ {
if ( BrokerComm::record_iterator_last(it) ) if ( Broker::record_iterator_last(it) )
return rval; return rval;
local field_value = BrokerComm::record_iterator_value(it); local field_value = Broker::record_iterator_value(it);
if ( field_value?$d ) if ( field_value?$d )
switch ( idx ) { switch ( idx ) {
case 0: case 0:
rval$a = BrokerComm::refine_to_string(field_value); rval$a = Broker::refine_to_string(field_value);
break; break;
case 1: case 1:
rval$b = BrokerComm::refine_to_string(field_value); rval$b = Broker::refine_to_string(field_value);
break; break;
case 2: case 2:
rval$c = BrokerComm::refine_to_count(field_value); rval$c = Broker::refine_to_count(field_value);
break; break;
}; };
++idx; ++idx;
BrokerComm::record_iterator_next(it); Broker::record_iterator_next(it);
return comm_record_to_bro_record_recurse(it, rval, idx); return comm_record_to_bro_record_recurse(it, rval, idx);
} }
function comm_record_to_bro_record(d: BrokerComm::Data): bro_record function comm_record_to_bro_record(d: Broker::Data): bro_record
{ {
return comm_record_to_bro_record_recurse(BrokerComm::record_iterator(d), return comm_record_to_bro_record_recurse(Broker::record_iterator(d),
bro_record($c = 0), 0); bro_record($c = 0), 0);
} }
function function
comm_set_to_bro_set_recurse(it: opaque of BrokerComm::SetIterator, comm_set_to_bro_set_recurse(it: opaque of Broker::SetIterator,
rval: bro_set): bro_set rval: bro_set): bro_set
{ {
if ( BrokerComm::set_iterator_last(it) ) if ( Broker::set_iterator_last(it) )
return rval; return rval;
add rval[BrokerComm::refine_to_string(BrokerComm::set_iterator_value(it))]; add rval[Broker::refine_to_string(Broker::set_iterator_value(it))];
BrokerComm::set_iterator_next(it); Broker::set_iterator_next(it);
return comm_set_to_bro_set_recurse(it, rval); return comm_set_to_bro_set_recurse(it, rval);
} }
function comm_set_to_bro_set(d: BrokerComm::Data): bro_set function comm_set_to_bro_set(d: Broker::Data): bro_set
{ {
return comm_set_to_bro_set_recurse(BrokerComm::set_iterator(d), bro_set()); return comm_set_to_bro_set_recurse(Broker::set_iterator(d), bro_set());
} }
function function
comm_table_to_bro_table_recurse(it: opaque of BrokerComm::TableIterator, comm_table_to_bro_table_recurse(it: opaque of Broker::TableIterator,
rval: bro_table): bro_table rval: bro_table): bro_table
{ {
if ( BrokerComm::table_iterator_last(it) ) if ( Broker::table_iterator_last(it) )
return rval; return rval;
local item = BrokerComm::table_iterator_value(it); local item = Broker::table_iterator_value(it);
rval[BrokerComm::refine_to_string(item$key)] = BrokerComm::refine_to_count(item$val); rval[Broker::refine_to_string(item$key)] = Broker::refine_to_count(item$val);
BrokerComm::table_iterator_next(it); Broker::table_iterator_next(it);
return comm_table_to_bro_table_recurse(it, rval); return comm_table_to_bro_table_recurse(it, rval);
} }
function comm_table_to_bro_table(d: BrokerComm::Data): bro_table function comm_table_to_bro_table(d: Broker::Data): bro_table
{ {
return comm_table_to_bro_table_recurse(BrokerComm::table_iterator(d), return comm_table_to_bro_table_recurse(Broker::table_iterator(d),
bro_table()); bro_table());
} }
function comm_vector_to_bro_vector_recurse(it: opaque of BrokerComm::VectorIterator, function comm_vector_to_bro_vector_recurse(it: opaque of Broker::VectorIterator,
rval: bro_vector): bro_vector rval: bro_vector): bro_vector
{ {
if ( BrokerComm::vector_iterator_last(it) ) if ( Broker::vector_iterator_last(it) )
return rval; return rval;
rval[|rval|] = BrokerComm::refine_to_string(BrokerComm::vector_iterator_value(it)); rval[|rval|] = Broker::refine_to_string(Broker::vector_iterator_value(it));
BrokerComm::vector_iterator_next(it); Broker::vector_iterator_next(it);
return comm_vector_to_bro_vector_recurse(it, rval); return comm_vector_to_bro_vector_recurse(it, rval);
} }
function comm_vector_to_bro_vector(d: BrokerComm::Data): bro_vector function comm_vector_to_bro_vector(d: Broker::Data): bro_vector
{ {
return comm_vector_to_bro_vector_recurse(BrokerComm::vector_iterator(d), return comm_vector_to_bro_vector_recurse(Broker::vector_iterator(d),
bro_vector()); bro_vector());
} }
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
} }
global did_it = F; global did_it = F;
@ -114,120 +114,120 @@ event new_connection(c: connection)
{ {
if ( did_it ) return; if ( did_it ) return;
did_it = T; did_it = T;
print BrokerComm::data_type(BrokerComm::data(T)); print Broker::data_type(Broker::data(T));
print BrokerComm::data_type(BrokerComm::data(+1)); print Broker::data_type(Broker::data(+1));
print BrokerComm::data_type(BrokerComm::data(1)); print Broker::data_type(Broker::data(1));
print BrokerComm::data_type(BrokerComm::data(1.1)); print Broker::data_type(Broker::data(1.1));
print BrokerComm::data_type(BrokerComm::data("1 (how creative)")); print Broker::data_type(Broker::data("1 (how creative)"));
print BrokerComm::data_type(BrokerComm::data(1.1.1.1)); print Broker::data_type(Broker::data(1.1.1.1));
print BrokerComm::data_type(BrokerComm::data(1.1.1.1/1)); print Broker::data_type(Broker::data(1.1.1.1/1));
print BrokerComm::data_type(BrokerComm::data(1/udp)); print Broker::data_type(Broker::data(1/udp));
print BrokerComm::data_type(BrokerComm::data(double_to_time(1))); print Broker::data_type(Broker::data(double_to_time(1)));
print BrokerComm::data_type(BrokerComm::data(1sec)); print Broker::data_type(Broker::data(1sec));
print BrokerComm::data_type(BrokerComm::data(BrokerComm::BOOL)); print Broker::data_type(Broker::data(Broker::BOOL));
local s: bro_set = bro_set("one", "two", "three"); local s: bro_set = bro_set("one", "two", "three");
local t: bro_table = bro_table(["one"] = 1, ["two"] = 2, ["three"] = 3); local t: bro_table = bro_table(["one"] = 1, ["two"] = 2, ["three"] = 3);
local v: bro_vector = bro_vector("zero", "one", "two"); local v: bro_vector = bro_vector("zero", "one", "two");
local r: bro_record = bro_record($c = 1); local r: bro_record = bro_record($c = 1);
print BrokerComm::data_type(BrokerComm::data(s)); print Broker::data_type(Broker::data(s));
print BrokerComm::data_type(BrokerComm::data(t)); print Broker::data_type(Broker::data(t));
print BrokerComm::data_type(BrokerComm::data(v)); print Broker::data_type(Broker::data(v));
print BrokerComm::data_type(BrokerComm::data(r)); print Broker::data_type(Broker::data(r));
print "***************************"; print "***************************";
print BrokerComm::refine_to_bool(BrokerComm::data(T)); print Broker::refine_to_bool(Broker::data(T));
print BrokerComm::refine_to_bool(BrokerComm::data(F)); print Broker::refine_to_bool(Broker::data(F));
print BrokerComm::refine_to_int(BrokerComm::data(+1)); print Broker::refine_to_int(Broker::data(+1));
print BrokerComm::refine_to_int(BrokerComm::data(+0)); print Broker::refine_to_int(Broker::data(+0));
print BrokerComm::refine_to_int(BrokerComm::data(-1)); print Broker::refine_to_int(Broker::data(-1));
print BrokerComm::refine_to_count(BrokerComm::data(1)); print Broker::refine_to_count(Broker::data(1));
print BrokerComm::refine_to_count(BrokerComm::data(0)); print Broker::refine_to_count(Broker::data(0));
print BrokerComm::refine_to_double(BrokerComm::data(1.1)); print Broker::refine_to_double(Broker::data(1.1));
print BrokerComm::refine_to_double(BrokerComm::data(-11.1)); print Broker::refine_to_double(Broker::data(-11.1));
print BrokerComm::refine_to_string(BrokerComm::data("hello")); print Broker::refine_to_string(Broker::data("hello"));
print BrokerComm::refine_to_addr(BrokerComm::data(1.2.3.4)); print Broker::refine_to_addr(Broker::data(1.2.3.4));
print BrokerComm::refine_to_subnet(BrokerComm::data(192.168.1.1/16)); print Broker::refine_to_subnet(Broker::data(192.168.1.1/16));
print BrokerComm::refine_to_port(BrokerComm::data(22/tcp)); print Broker::refine_to_port(Broker::data(22/tcp));
print BrokerComm::refine_to_time(BrokerComm::data(double_to_time(42))); print Broker::refine_to_time(Broker::data(double_to_time(42)));
print BrokerComm::refine_to_interval(BrokerComm::data(3min)); print Broker::refine_to_interval(Broker::data(3min));
print BrokerComm::refine_to_enum_name(BrokerComm::data(BrokerComm::BOOL)); print Broker::refine_to_enum_name(Broker::data(Broker::BOOL));
print "***************************"; print "***************************";
local cs = BrokerComm::data(s); local cs = Broker::data(s);
print comm_set_to_bro_set(cs); print comm_set_to_bro_set(cs);
cs = BrokerComm::set_create(); cs = Broker::set_create();
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print BrokerComm::set_insert(cs, BrokerComm::data("hi")); print Broker::set_insert(cs, Broker::data("hi"));
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print BrokerComm::set_contains(cs, BrokerComm::data("hi")); print Broker::set_contains(cs, Broker::data("hi"));
print BrokerComm::set_contains(cs, BrokerComm::data("bye")); print Broker::set_contains(cs, Broker::data("bye"));
print BrokerComm::set_insert(cs, BrokerComm::data("bye")); print Broker::set_insert(cs, Broker::data("bye"));
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print BrokerComm::set_remove(cs, BrokerComm::data("hi")); print Broker::set_remove(cs, Broker::data("hi"));
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print BrokerComm::set_remove(cs, BrokerComm::data("hi")); print Broker::set_remove(cs, Broker::data("hi"));
print comm_set_to_bro_set(cs); print comm_set_to_bro_set(cs);
BrokerComm::set_clear(cs); Broker::set_clear(cs);
print BrokerComm::set_size(cs); print Broker::set_size(cs);
print "***************************"; print "***************************";
local ct = BrokerComm::data(t); local ct = Broker::data(t);
print comm_table_to_bro_table(ct); print comm_table_to_bro_table(ct);
ct = BrokerComm::table_create(); ct = Broker::table_create();
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print BrokerComm::table_insert(ct, BrokerComm::data("hi"), BrokerComm::data(42)); print Broker::table_insert(ct, Broker::data("hi"), Broker::data(42));
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print BrokerComm::table_contains(ct, BrokerComm::data("hi")); print Broker::table_contains(ct, Broker::data("hi"));
print BrokerComm::refine_to_count(BrokerComm::table_lookup(ct, BrokerComm::data("hi"))); print Broker::refine_to_count(Broker::table_lookup(ct, Broker::data("hi")));
print BrokerComm::table_contains(ct, BrokerComm::data("bye")); print Broker::table_contains(ct, Broker::data("bye"));
print BrokerComm::table_insert(ct, BrokerComm::data("bye"), BrokerComm::data(7)); print Broker::table_insert(ct, Broker::data("bye"), Broker::data(7));
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print BrokerComm::table_insert(ct, BrokerComm::data("bye"), BrokerComm::data(37)); print Broker::table_insert(ct, Broker::data("bye"), Broker::data(37));
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print BrokerComm::refine_to_count(BrokerComm::table_lookup(ct, BrokerComm::data("bye"))); print Broker::refine_to_count(Broker::table_lookup(ct, Broker::data("bye")));
print BrokerComm::table_remove(ct, BrokerComm::data("hi")); print Broker::table_remove(ct, Broker::data("hi"));
print BrokerComm::table_size(ct); print Broker::table_size(ct);
print "***************************"; print "***************************";
local cv = BrokerComm::data(v); local cv = Broker::data(v);
print comm_vector_to_bro_vector(cv); print comm_vector_to_bro_vector(cv);
cv = BrokerComm::vector_create(); cv = Broker::vector_create();
print BrokerComm::vector_size(cv); print Broker::vector_size(cv);
print BrokerComm::vector_insert(cv, BrokerComm::data("hi"), 0); print Broker::vector_insert(cv, Broker::data("hi"), 0);
print BrokerComm::vector_insert(cv, BrokerComm::data("hello"), 1); print Broker::vector_insert(cv, Broker::data("hello"), 1);
print BrokerComm::vector_insert(cv, BrokerComm::data("greetings"), 2); print Broker::vector_insert(cv, Broker::data("greetings"), 2);
print BrokerComm::vector_insert(cv, BrokerComm::data("salutations"), 1); print Broker::vector_insert(cv, Broker::data("salutations"), 1);
print comm_vector_to_bro_vector(cv); print comm_vector_to_bro_vector(cv);
print BrokerComm::vector_size(cv); print Broker::vector_size(cv);
print BrokerComm::vector_replace(cv, BrokerComm::data("bah"), 2); print Broker::vector_replace(cv, Broker::data("bah"), 2);
print BrokerComm::vector_lookup(cv, 2); print Broker::vector_lookup(cv, 2);
print BrokerComm::vector_lookup(cv, 0); print Broker::vector_lookup(cv, 0);
print comm_vector_to_bro_vector(cv); print comm_vector_to_bro_vector(cv);
print BrokerComm::vector_remove(cv, 2); print Broker::vector_remove(cv, 2);
print comm_vector_to_bro_vector(cv); print comm_vector_to_bro_vector(cv);
print BrokerComm::vector_size(cv); print Broker::vector_size(cv);
print "***************************"; print "***************************";
local cr = BrokerComm::data(r); local cr = Broker::data(r);
print comm_record_to_bro_record(cr); print comm_record_to_bro_record(cr);
r$a = "test"; r$a = "test";
cr = BrokerComm::data(r); cr = Broker::data(r);
print comm_record_to_bro_record(cr); print comm_record_to_bro_record(cr);
r$b = "testagain"; r$b = "testagain";
cr = BrokerComm::data(r); cr = Broker::data(r);
print comm_record_to_bro_record(cr); print comm_record_to_bro_record(cr);
cr = BrokerComm::record_create(3); cr = Broker::record_create(3);
print BrokerComm::record_size(cr); print Broker::record_size(cr);
print BrokerComm::record_assign(cr, BrokerComm::data("hi"), 0); print Broker::record_assign(cr, Broker::data("hi"), 0);
print BrokerComm::record_assign(cr, BrokerComm::data("hello"), 1); print Broker::record_assign(cr, Broker::data("hello"), 1);
print BrokerComm::record_assign(cr, BrokerComm::data(37), 2); print Broker::record_assign(cr, Broker::data(37), 2);
print BrokerComm::record_lookup(cr, 0); print Broker::record_lookup(cr, 0);
print BrokerComm::record_lookup(cr, 1); print Broker::record_lookup(cr, 1);
print BrokerComm::record_lookup(cr, 2); print Broker::record_lookup(cr, 2);
print BrokerComm::record_size(cr); print Broker::record_size(cr);
} }

View file

@ -8,7 +8,7 @@
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
global lookup_count = 0; global lookup_count = 0;
const lookup_expect_count = 5; const lookup_expect_count = 5;
global exists_count = 0; global exists_count = 0;
@ -20,13 +20,13 @@ global test_size: event(where: string &default = "");
event test_clear() event test_clear()
{ {
BrokerStore::clear(h); Broker::clear(h);
event test_size("after clear"); event test_size("after clear");
} }
event test_size(where: string) event test_size(where: string)
{ {
when ( local res = BrokerStore::size(h) ) when ( local res = Broker::size(h) )
{ {
if ( where == "" ) if ( where == "" )
{ {
@ -45,7 +45,7 @@ event test_size(where: string)
event test_keys() event test_keys()
{ {
when ( local res = BrokerStore::keys(h) ) when ( local res = Broker::keys(h) )
{ {
print fmt("keys: %s", res); print fmt("keys: %s", res);
event test_size(); event test_size();
@ -56,7 +56,7 @@ event test_keys()
event test_pop(key: string) event test_pop(key: string)
{ {
when ( local lres = BrokerStore::pop_left(h, BrokerComm::data(key)) ) when ( local lres = Broker::pop_left(h, Broker::data(key)) )
{ {
print fmt("pop_left(%s): %s", key, lres); print fmt("pop_left(%s): %s", key, lres);
++pop_count; ++pop_count;
@ -67,7 +67,7 @@ event test_pop(key: string)
timeout 10sec timeout 10sec
{ print "timeout"; } { print "timeout"; }
when ( local rres = BrokerStore::pop_right(h, BrokerComm::data(key)) ) when ( local rres = Broker::pop_right(h, Broker::data(key)) )
{ {
print fmt("pop_right(%s): %s", key, rres); print fmt("pop_right(%s): %s", key, rres);
++pop_count; ++pop_count;
@ -81,7 +81,7 @@ event test_pop(key: string)
function do_exists(key: string) function do_exists(key: string)
{ {
when ( local res = BrokerStore::exists(h, BrokerComm::data(key)) ) when ( local res = Broker::exists(h, Broker::data(key)) )
{ {
print fmt("exists(%s): %s", key, res); print fmt("exists(%s): %s", key, res);
++exists_count; ++exists_count;
@ -95,7 +95,7 @@ function do_exists(key: string)
event test_erase() event test_erase()
{ {
BrokerStore::erase(h, BrokerComm::data("two")); Broker::erase(h, Broker::data("two"));
do_exists("one"); do_exists("one");
do_exists("two"); do_exists("two");
do_exists("myset"); do_exists("myset");
@ -104,7 +104,7 @@ event test_erase()
function do_lookup(key: string) function do_lookup(key: string)
{ {
when ( local res = BrokerStore::lookup(h, BrokerComm::data(key)) ) when ( local res = Broker::lookup(h, Broker::data(key)) )
{ {
print fmt("lookup(%s): %s", key, res); print fmt("lookup(%s): %s", key, res);
++lookup_count; ++lookup_count;
@ -116,9 +116,9 @@ function do_lookup(key: string)
{ print "timeout"; } { print "timeout"; }
} }
function dv(d: BrokerComm::Data): BrokerComm::DataVector function dv(d: Broker::Data): Broker::DataVector
{ {
local rval: BrokerComm::DataVector; local rval: Broker::DataVector;
rval[0] = d; rval[0] = d;
return rval; return rval;
} }
@ -127,8 +127,8 @@ global did_it = F;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
h = BrokerStore::create_master("master"); h = Broker::create_master("master");
} }
event new_connection(c: connection) event new_connection(c: connection)
@ -137,16 +137,16 @@ event new_connection(c: connection)
did_it = T; did_it = T;
local myset: set[string] = {"a", "b", "c"}; local myset: set[string] = {"a", "b", "c"};
local myvec: vector of string = {"alpha", "beta", "gamma"}; local myvec: vector of string = {"alpha", "beta", "gamma"};
BrokerStore::insert(h, BrokerComm::data("one"), BrokerComm::data(110)); Broker::insert(h, Broker::data("one"), Broker::data(110));
BrokerStore::insert(h, BrokerComm::data("two"), BrokerComm::data(223)); Broker::insert(h, Broker::data("two"), Broker::data(223));
BrokerStore::insert(h, BrokerComm::data("myset"), BrokerComm::data(myset)); Broker::insert(h, Broker::data("myset"), Broker::data(myset));
BrokerStore::insert(h, BrokerComm::data("myvec"), BrokerComm::data(myvec)); Broker::insert(h, Broker::data("myvec"), Broker::data(myvec));
BrokerStore::increment(h, BrokerComm::data("one")); Broker::increment(h, Broker::data("one"));
BrokerStore::decrement(h, BrokerComm::data("two")); Broker::decrement(h, Broker::data("two"));
BrokerStore::add_to_set(h, BrokerComm::data("myset"), BrokerComm::data("d")); Broker::add_to_set(h, Broker::data("myset"), Broker::data("d"));
BrokerStore::remove_from_set(h, BrokerComm::data("myset"), BrokerComm::data("b")); Broker::remove_from_set(h, Broker::data("myset"), Broker::data("b"));
BrokerStore::push_left(h, BrokerComm::data("myvec"), dv(BrokerComm::data("delta"))); Broker::push_left(h, Broker::data("myvec"), dv(Broker::data("delta")));
BrokerStore::push_right(h, BrokerComm::data("myvec"), dv(BrokerComm::data("omega"))); Broker::push_right(h, Broker::data("myvec"), dv(Broker::data("omega")));
do_lookup("one"); do_lookup("one");
do_lookup("two"); do_lookup("two");
do_lookup("myset"); do_lookup("myset");

View file

@ -20,10 +20,10 @@ global auto_event_handler: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
BrokerComm::subscribe_to_events("bro/event/"); Broker::subscribe_to_events("bro/event/");
BrokerComm::auto_event("bro/event/my_topic", auto_event_handler); Broker::auto_event("bro/event/my_topic", auto_event_handler);
} }
global event_count = 0; global event_count = 0;
@ -41,8 +41,8 @@ event event_handler(msg: string, n: count)
} }
event auto_event_handler(msg, n); event auto_event_handler(msg, n);
local args = BrokerComm::event_args(event_handler, "pong", n); local args = Broker::event_args(event_handler, "pong", n);
BrokerComm::event("bro/event/my_topic", args); Broker::event("bro/event/my_topic", args);
} }
@TEST-END-FILE @TEST-END-FILE
@ -57,24 +57,24 @@ global auto_event_handler: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/my_topic"); Broker::subscribe_to_events("bro/event/my_topic");
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
} }
global event_count = 0; global event_count = 0;
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
local args = BrokerComm::event_args(event_handler, "ping", event_count); local args = Broker::event_args(event_handler, "ping", event_count);
BrokerComm::event("bro/event/hi", args); Broker::event("bro/event/hi", args);
++event_count; ++event_count;
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
@ -83,8 +83,8 @@ event BrokerComm::outgoing_connection_broken(peer_address: string,
event event_handler(msg: string, n: count) event event_handler(msg: string, n: count)
{ {
print "got event msg", msg, n; print "got event msg", msg, n;
local args = BrokerComm::event_args(event_handler, "ping", event_count); local args = Broker::event_args(event_handler, "ping", event_count);
BrokerComm::event("bro/event/hi", args); Broker::event("bro/event/hi", args);
++event_count; ++event_count;
} }

View file

@ -29,7 +29,7 @@ export {
event bro_init() &priority=5 event bro_init() &priority=5
{ {
BrokerComm::enable(); Broker::enable();
Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test]); Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test]);
} }
@ -42,8 +42,8 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
BrokerComm::subscribe_to_logs("bro/log/"); Broker::subscribe_to_logs("bro/log/");
} }
event Test::log_test(rec: Test::Info) event Test::log_test(rec: Test::Info)
@ -63,8 +63,8 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::enable_remote_logs(Test::LOG); Broker::enable_remote_logs(Test::LOG);
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
} }
global n = 0; global n = 0;
@ -81,15 +81,15 @@ event do_write()
} }
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
event do_write(); event do_write();
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -17,16 +17,16 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
BrokerComm::subscribe_to_prints("bro/print/"); Broker::subscribe_to_prints("bro/print/");
} }
global messages_to_recv = 6; global messages_to_recv = 6;
global messages_sent = 0; global messages_sent = 0;
global messages_recv = 0; global messages_recv = 0;
event BrokerComm::print_handler(msg: string) event Broker::print_handler(msg: string)
{ {
++messages_recv; ++messages_recv;
print "got print msg", msg; print "got print msg", msg;
@ -37,7 +37,7 @@ event BrokerComm::print_handler(msg: string)
return; return;
} }
BrokerComm::print("bro/print/my_topic", fmt("pong %d", messages_sent)); Broker::print("bro/print/my_topic", fmt("pong %d", messages_sent));
++messages_sent; ++messages_sent;
} }
@ -50,35 +50,35 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_prints("bro/print/my_topic"); Broker::subscribe_to_prints("bro/print/my_topic");
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
} }
global messages_sent = 0; global messages_sent = 0;
global messages_recv = 0; global messages_recv = 0;
global peer_disconnected = F; global peer_disconnected = F;
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
BrokerComm::print("bro/print/hi", fmt("ping %d", messages_sent)); Broker::print("bro/print/hi", fmt("ping %d", messages_sent));
++messages_sent; ++messages_sent;
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
} }
event BrokerComm::print_handler(msg: string) event Broker::print_handler(msg: string)
{ {
++messages_recv; ++messages_recv;
print "got print msg", msg; print "got print msg", msg;
BrokerComm::print("bro/print/hi", fmt("ping %d", messages_sent)); Broker::print("bro/print/hi", fmt("ping %d", messages_sent));
++messages_sent; ++messages_sent;
} }

View file

@ -4,19 +4,19 @@ connecting-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
terminate(); terminate();
} }

View file

@ -4,21 +4,21 @@ connecting-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event BrokerComm::incoming_connection_broken(peer_name: string) event Broker::incoming_connection_broken(peer_name: string)
{ {
print "BrokerComm::incoming_connection_broken", peer_name; print "Broker::incoming_connection_broken", peer_name;
terminate(); terminate();
} }

View file

@ -4,31 +4,31 @@ events-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
global my_event: event(msg: string, c: count); global my_event: event(msg: string, c: count);
global my_auto_event: event(msg: string, c: count); global my_auto_event: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
BrokerComm::auto_event("bro/event/my_auto_event", my_auto_event); Broker::auto_event("bro/event/my_auto_event", my_auto_event);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
BrokerComm::event("bro/event/my_event", BrokerComm::event_args(my_event, "hi", 0)); Broker::event("bro/event/my_event", Broker::event_args(my_event, "hi", 0));
event my_auto_event("stuff", 88); event my_auto_event("stuff", 88);
BrokerComm::event("bro/event/my_event", BrokerComm::event_args(my_event, "...", 1)); Broker::event("bro/event/my_event", Broker::event_args(my_event, "...", 1));
event my_auto_event("more stuff", 51); event my_auto_event("more stuff", 51);
BrokerComm::event("bro/event/my_event", BrokerComm::event_args(my_event, "bye", 2)); Broker::event("bro/event/my_event", Broker::event_args(my_event, "bye", 2));
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -4,21 +4,21 @@ events-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
global msg_count = 0; global msg_count = 0;
global my_event: event(msg: string, c: count); global my_event: event(msg: string, c: count);
global my_auto_event: event(msg: string, c: count); global my_auto_event: event(msg: string, c: count);
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/"); Broker::subscribe_to_events("bro/event/");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event my_event(msg: string, c: count) event my_event(msg: string, c: count)

View file

@ -6,16 +6,16 @@ logs-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
redef Log::enable_local_logging = F; redef Log::enable_local_logging = F;
redef Log::enable_remote_logging = F; redef Log::enable_remote_logging = F;
global n = 0; global n = 0;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::enable_remote_logs(Test::LOG); Broker::enable_remote_logs(Test::LOG);
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event do_write() event do_write()
@ -28,16 +28,16 @@ event do_write()
event do_write(); event do_write();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
event do_write(); event do_write();
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -6,18 +6,18 @@ logs-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_logs("bro/log/Test::LOG"); Broker::subscribe_to_logs("bro/log/Test::LOG");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event Test::log_test(rec: Test::Info) event Test::log_test(rec: Test::Info)

View file

@ -4,26 +4,26 @@ printing-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "connector"; redef Broker::endpoint_name = "connector";
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1sec); Broker::connect("127.0.0.1", broker_port, 1sec);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", print "Broker::outgoing_connection_established",
peer_address, peer_port, peer_name; peer_address, peer_port, peer_name;
BrokerComm::print("bro/print/hi", "hello"); Broker::print("bro/print/hi", "hello");
BrokerComm::print("bro/print/stuff", "..."); Broker::print("bro/print/stuff", "...");
BrokerComm::print("bro/print/bye", "goodbye"); Broker::print("bro/print/bye", "goodbye");
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();

View file

@ -4,22 +4,22 @@ printing-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
redef BrokerComm::endpoint_name = "listener"; redef Broker::endpoint_name = "listener";
global msg_count = 0; global msg_count = 0;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_prints("bro/print/"); Broker::subscribe_to_prints("bro/print/");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established", peer_name; print "Broker::incoming_connection_established", peer_name;
} }
event BrokerComm::print_handler(msg: string) event Broker::print_handler(msg: string)
{ {
++msg_count; ++msg_count;
print "got print message", msg; print "got print message", msg;

View file

@ -5,42 +5,42 @@ stores-connector.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
function dv(d: BrokerComm::Data): BrokerComm::DataVector function dv(d: Broker::Data): Broker::DataVector
{ {
local rval: BrokerComm::DataVector; local rval: Broker::DataVector;
rval[0] = d; rval[0] = d;
return rval; return rval;
} }
global ready: event(); global ready: event();
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
local myset: set[string] = {"a", "b", "c"}; local myset: set[string] = {"a", "b", "c"};
local myvec: vector of string = {"alpha", "beta", "gamma"}; local myvec: vector of string = {"alpha", "beta", "gamma"};
h = BrokerStore::create_master("mystore"); h = Broker::create_master("mystore");
BrokerStore::insert(h, BrokerComm::data("one"), BrokerComm::data(110)); Broker::insert(h, Broker::data("one"), Broker::data(110));
BrokerStore::insert(h, BrokerComm::data("two"), BrokerComm::data(223)); Broker::insert(h, Broker::data("two"), Broker::data(223));
BrokerStore::insert(h, BrokerComm::data("myset"), BrokerComm::data(myset)); Broker::insert(h, Broker::data("myset"), Broker::data(myset));
BrokerStore::insert(h, BrokerComm::data("myvec"), BrokerComm::data(myvec)); Broker::insert(h, Broker::data("myvec"), Broker::data(myvec));
BrokerStore::increment(h, BrokerComm::data("one")); Broker::increment(h, Broker::data("one"));
BrokerStore::decrement(h, BrokerComm::data("two")); Broker::decrement(h, Broker::data("two"));
BrokerStore::add_to_set(h, BrokerComm::data("myset"), BrokerComm::data("d")); Broker::add_to_set(h, Broker::data("myset"), Broker::data("d"));
BrokerStore::remove_from_set(h, BrokerComm::data("myset"), BrokerComm::data("b")); Broker::remove_from_set(h, Broker::data("myset"), Broker::data("b"));
BrokerStore::push_left(h, BrokerComm::data("myvec"), dv(BrokerComm::data("delta"))); Broker::push_left(h, Broker::data("myvec"), dv(Broker::data("delta")));
BrokerStore::push_right(h, BrokerComm::data("myvec"), dv(BrokerComm::data("omega"))); Broker::push_right(h, Broker::data("myvec"), dv(Broker::data("omega")));
when ( local res = BrokerStore::size(h) ) when ( local res = Broker::size(h) )
{ {
print "master size", res; print "master size", res;
event ready(); event ready();
@ -51,7 +51,7 @@ event BrokerComm::outgoing_connection_established(peer_address: string,
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::connect("127.0.0.1", broker_port, 1secs); Broker::connect("127.0.0.1", broker_port, 1secs);
BrokerComm::auto_event("bro/event/ready", ready); Broker::auto_event("bro/event/ready", ready);
} }

View file

@ -5,13 +5,13 @@ stores-listener.bro
const broker_port: port = 9999/tcp &redef; const broker_port: port = 9999/tcp &redef;
redef exit_only_after_terminate = T; redef exit_only_after_terminate = T;
global h: opaque of BrokerStore::Handle; global h: opaque of Broker::Handle;
global expected_key_count = 4; global expected_key_count = 4;
global key_count = 0; global key_count = 0;
function do_lookup(key: string) function do_lookup(key: string)
{ {
when ( local res = BrokerStore::lookup(h, BrokerComm::data(key)) ) when ( local res = Broker::lookup(h, Broker::data(key)) )
{ {
++key_count; ++key_count;
print "lookup", key, res; print "lookup", key, res;
@ -25,15 +25,15 @@ function do_lookup(key: string)
event ready() event ready()
{ {
h = BrokerStore::create_clone("mystore"); h = Broker::create_clone("mystore");
when ( local res = BrokerStore::keys(h) ) when ( local res = Broker::keys(h) )
{ {
print "clone keys", res; print "clone keys", res;
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 0))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 0)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 1))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 1)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 2))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 2)));
do_lookup(BrokerComm::refine_to_string(BrokerComm::vector_lookup(res$result, 3))); do_lookup(Broker::refine_to_string(Broker::vector_lookup(res$result, 3)));
} }
timeout 10sec timeout 10sec
{ print "timeout"; } { print "timeout"; }
@ -41,7 +41,7 @@ event ready()
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/ready"); Broker::subscribe_to_events("bro/event/ready");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }

View file

@ -17,6 +17,6 @@ export {
event bro_init() &priority=5 event bro_init() &priority=5
{ {
BrokerComm::enable(); Broker::enable();
Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test, $path="test"]); Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test, $path="test"]);
} }

View file

@ -26,14 +26,14 @@ event NetControl::init_done()
continue_processing(); continue_processing();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
@ -91,28 +91,28 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/netcontroltest"); Broker::subscribe_to_events("bro/event/netcontroltest");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established"; print "Broker::incoming_connection_established";
} }
event NetControl::acld_add_rule(id: count, r: NetControl::Rule, ar: NetControl::AclRule) event NetControl::acld_add_rule(id: count, r: NetControl::Rule, ar: NetControl::AclRule)
{ {
print "add_rule", id, r$entity, r$ty, ar; print "add_rule", id, r$entity, r$ty, ar;
BrokerComm::event("bro/event/netcontroltest", BrokerComm::event_args(NetControl::acld_rule_added, id, r, ar$command)); Broker::event("bro/event/netcontroltest", Broker::event_args(NetControl::acld_rule_added, id, r, ar$command));
} }
event NetControl::acld_remove_rule(id: count, r: NetControl::Rule, ar: NetControl::AclRule) event NetControl::acld_remove_rule(id: count, r: NetControl::Rule, ar: NetControl::AclRule)
{ {
print "remove_rule", id, r$entity, r$ty, ar; print "remove_rule", id, r$entity, r$ty, ar;
BrokerComm::event("bro/event/netcontroltest", BrokerComm::event_args(NetControl::acld_rule_removed, id, r, ar$command)); Broker::event("bro/event/netcontroltest", Broker::event_args(NetControl::acld_rule_removed, id, r, ar$command));
if ( r$cid == 4 ) if ( r$cid == 4 )
terminate(); terminate();

View file

@ -21,11 +21,11 @@ event NetControl::init()
NetControl::activate(netcontrol_acld, 0); NetControl::activate(netcontrol_acld, 0);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
} }
event NetControl::init_done() event NetControl::init_done()
@ -33,7 +33,7 @@ event NetControl::init_done()
continue_processing(); continue_processing();
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
@ -84,28 +84,28 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/netcontroltest"); Broker::subscribe_to_events("bro/event/netcontroltest");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established"; print "Broker::incoming_connection_established";
} }
event NetControl::acld_add_rule(id: count, r: NetControl::Rule, ar: NetControl::AclRule) event NetControl::acld_add_rule(id: count, r: NetControl::Rule, ar: NetControl::AclRule)
{ {
print "add_rule", id, r$entity, r$ty, ar; print "add_rule", id, r$entity, r$ty, ar;
BrokerComm::event("bro/event/netcontroltest", BrokerComm::event_args(NetControl::acld_rule_added, id, r, ar$command)); Broker::event("bro/event/netcontroltest", Broker::event_args(NetControl::acld_rule_added, id, r, ar$command));
} }
event NetControl::acld_remove_rule(id: count, r: NetControl::Rule, ar: NetControl::AclRule) event NetControl::acld_remove_rule(id: count, r: NetControl::Rule, ar: NetControl::AclRule)
{ {
print "remove_rule", id, r$entity, r$ty, ar; print "remove_rule", id, r$entity, r$ty, ar;
BrokerComm::event("bro/event/netcontroltest", BrokerComm::event_args(NetControl::acld_rule_removed, id, r, ar$command)); Broker::event("bro/event/netcontroltest", Broker::event_args(NetControl::acld_rule_removed, id, r, ar$command));
if ( r$cid == 4 ) if ( r$cid == 4 )
terminate(); terminate();

View file

@ -27,14 +27,14 @@ event NetControl::init_done()
continue_processing(); continue_processing();
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
@ -75,29 +75,29 @@ redef exit_only_after_terminate = T;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/netcontroltest"); Broker::subscribe_to_events("bro/event/netcontroltest");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established"; print "Broker::incoming_connection_established";
} }
event NetControl::broker_add_rule(id: count, r: NetControl::Rule) event NetControl::broker_add_rule(id: count, r: NetControl::Rule)
{ {
print "add_rule", id, r$entity, r$ty; print "add_rule", id, r$entity, r$ty;
BrokerComm::event("bro/event/netcontroltest", BrokerComm::event_args(NetControl::broker_rule_added, id, r, "")); Broker::event("bro/event/netcontroltest", Broker::event_args(NetControl::broker_rule_added, id, r, ""));
} }
event NetControl::broker_remove_rule(id: count, r: NetControl::Rule) event NetControl::broker_remove_rule(id: count, r: NetControl::Rule)
{ {
print "remove_rule", id, r$entity, r$ty; print "remove_rule", id, r$entity, r$ty;
BrokerComm::event("bro/event/netcontroltest", BrokerComm::event_args(NetControl::broker_rule_timeout, id, r, NetControl::FlowInfo())); Broker::event("bro/event/netcontroltest", Broker::event_args(NetControl::broker_rule_timeout, id, r, NetControl::FlowInfo()));
BrokerComm::event("bro/event/netcontroltest", BrokerComm::event_args(NetControl::broker_rule_removed, id, r, "")); Broker::event("bro/event/netcontroltest", Broker::event_args(NetControl::broker_rule_removed, id, r, ""));
if ( r$cid == 3 ) if ( r$cid == 3 )
terminate(); terminate();

View file

@ -23,11 +23,11 @@ event bro_init()
of_controller = OpenFlow::broker_new("broker1", 127.0.0.1, broker_port, "bro/event/openflow", 42); of_controller = OpenFlow::broker_new("broker1", 127.0.0.1, broker_port, "bro/event/openflow", 42);
} }
event BrokerComm::outgoing_connection_established(peer_address: string, event Broker::outgoing_connection_established(peer_address: string,
peer_port: port, peer_port: port,
peer_name: string) peer_name: string)
{ {
print "BrokerComm::outgoing_connection_established", peer_address, peer_port; print "Broker::outgoing_connection_established", peer_address, peer_port;
} }
event OpenFlow::controller_activated(name: string, controller: OpenFlow::Controller) event OpenFlow::controller_activated(name: string, controller: OpenFlow::Controller)
@ -37,7 +37,7 @@ event OpenFlow::controller_activated(name: string, controller: OpenFlow::Control
OpenFlow::flow_mod(of_controller, [], [$cookie=OpenFlow::generate_cookie(1), $command=OpenFlow::OFPFC_ADD, $actions=[$out_ports=vector(3, 7)]]); OpenFlow::flow_mod(of_controller, [], [$cookie=OpenFlow::generate_cookie(1), $command=OpenFlow::OFPFC_ADD, $actions=[$out_ports=vector(3, 7)]]);
} }
event BrokerComm::outgoing_connection_broken(peer_address: string, event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port) peer_port: port)
{ {
terminate(); terminate();
@ -83,14 +83,14 @@ global msg_count: count = 0;
event bro_init() event bro_init()
{ {
BrokerComm::enable(); Broker::enable();
BrokerComm::subscribe_to_events("bro/event/openflow"); Broker::subscribe_to_events("bro/event/openflow");
BrokerComm::listen(broker_port, "127.0.0.1"); Broker::listen(broker_port, "127.0.0.1");
} }
event BrokerComm::incoming_connection_established(peer_name: string) event Broker::incoming_connection_established(peer_name: string)
{ {
print "BrokerComm::incoming_connection_established"; print "Broker::incoming_connection_established";
} }
function got_message() function got_message()
@ -104,8 +104,8 @@ function got_message()
event OpenFlow::broker_flow_mod(name: string, dpid: count, match: OpenFlow::ofp_match, flow_mod: OpenFlow::ofp_flow_mod) event OpenFlow::broker_flow_mod(name: string, dpid: count, match: OpenFlow::ofp_match, flow_mod: OpenFlow::ofp_flow_mod)
{ {
print "got flow_mod", dpid, match, flow_mod; print "got flow_mod", dpid, match, flow_mod;
BrokerComm::event("bro/event/openflow", BrokerComm::event_args(OpenFlow::flow_mod_success, name, match, flow_mod, "")); Broker::event("bro/event/openflow", Broker::event_args(OpenFlow::flow_mod_success, name, match, flow_mod, ""));
BrokerComm::event("bro/event/openflow", BrokerComm::event_args(OpenFlow::flow_mod_failure, name, match, flow_mod, "")); Broker::event("bro/event/openflow", Broker::event_args(OpenFlow::flow_mod_failure, name, match, flow_mod, ""));
got_message(); got_message();
} }