:tocdepth: 3

base/frameworks/broker/main.bro
===============================
.. bro:namespace:: Broker
.. bro:namespace:: Log

Various data structure definitions for use with Bro's communication system.

:Namespaces: Broker, Log
:Imports: :doc:`base/bif/comm.bif.bro </scripts/base/bif/comm.bif.bro>`, :doc:`base/bif/messaging.bif.bro </scripts/base/bif/messaging.bif.bro>`
:Source File: :download:`/scripts/base/frameworks/broker/main.bro`

Summary
~~~~~~~
Options
#######
====================================================================== ===============================================
:bro:id:`Broker::endpoint_name`: :bro:type:`string` :bro:attr:`&redef` A name used to identify this endpoint to peers.
====================================================================== ===============================================

Types
#####
===================================================== =======================================================================
:bro:type:`Broker::Data`: :bro:type:`record`          Opaque communication data.
:bro:type:`Broker::DataVector`: :bro:type:`vector`    Opaque communication data.
:bro:type:`Broker::EndpointFlags`: :bro:type:`record` Change communication behavior.
:bro:type:`Broker::EventArgs`: :bro:type:`record`     Opaque event communication data.
:bro:type:`Broker::SendFlags`: :bro:type:`record`     Fine-grained tuning of communication behavior for a particular message.
:bro:type:`Broker::TableItem`: :bro:type:`record`     Opaque communication data used as a convenient way to wrap key-value
                                                      pairs that comprise table entries.
:bro:type:`Log::ID`: :bro:type:`enum`                 Type that defines an ID unique to each log stream.
===================================================== =======================================================================

Functions
#########
============================================================= ========================================================================
:bro:id:`Broker::auto_event`: :bro:type:`function`            Automatically send an event to any interested peers whenever it is
                                                              locally dispatched (e.g.
:bro:id:`Broker::auto_event_stop`: :bro:type:`function`       Stop automatically sending an event to peers upon local dispatch.
:bro:id:`Broker::connect`: :bro:type:`function`               Initiate a remote connection.
:bro:id:`Broker::disable_remote_logs`: :bro:type:`function`   Disable remote logs for a given log stream.
:bro:id:`Broker::disconnect`: :bro:type:`function`            Remove a remote connection.
:bro:id:`Broker::enable`: :bro:type:`function`                Enable use of communication.
:bro:id:`Broker::enable_remote_logs`: :bro:type:`function`    Enable remote logs for a given log stream.
:bro:id:`Broker::listen`: :bro:type:`function`                Listen for remote connections.
:bro:id:`Broker::publish_topic`: :bro:type:`function`         Allow sending messages to peers if associated with the given topic.
:bro:id:`Broker::remote_logs_enabled`: :bro:type:`function`   Check if remote logs are enabled for a given log stream.
:bro:id:`Broker::send_event`: :bro:type:`function`            Send an event to any interested peers.
:bro:id:`Broker::send_print`: :bro:type:`function`            Print a simple message to any interested peers.
:bro:id:`Broker::set_endpoint_flags`: :bro:type:`function`    Changes endpoint flags originally supplied to :bro:see:`Broker::enable`.
:bro:id:`Broker::subscribe_to_events`: :bro:type:`function`   Register interest in all peer event messages that use a certain topic
                                                              prefix.
:bro:id:`Broker::subscribe_to_logs`: :bro:type:`function`     Register interest in all peer log messages that use a certain topic
                                                              prefix.
:bro:id:`Broker::subscribe_to_prints`: :bro:type:`function`   Register interest in all peer print messages that use a certain topic
                                                              prefix.
:bro:id:`Broker::unpublish_topic`: :bro:type:`function`       Disallow sending messages to peers if associated with the given topic.
:bro:id:`Broker::unsubscribe_to_events`: :bro:type:`function` Unregister interest in all peer event messages that use a topic prefix.
:bro:id:`Broker::unsubscribe_to_logs`: :bro:type:`function`   Unregister interest in all peer log messages that use a topic prefix.
:bro:id:`Broker::unsubscribe_to_prints`: :bro:type:`function` Unregister interest in all peer print messages that use a topic prefix.
============================================================= ========================================================================


Detailed Interface
~~~~~~~~~~~~~~~~~~
Options
#######
.. bro:id:: Broker::endpoint_name

   :Type: :bro:type:`string`
   :Attributes: :bro:attr:`&redef`
   :Default: ``""``

   A name used to identify this endpoint to peers.
   
   .. bro:see:: Broker::connect Broker::listen

Types
#####
.. bro:type:: Broker::Data

   :Type: :bro:type:`record`

      d: :bro:type:`opaque` of Broker::Data :bro:attr:`&optional`

   Opaque communication data.

.. bro:type:: Broker::DataVector

   :Type: :bro:type:`vector` of :bro:type:`Broker::Data`

   Opaque communication data.

.. bro:type:: Broker::EndpointFlags

   :Type: :bro:type:`record`

      auto_publish: :bro:type:`bool` :bro:attr:`&default` = ``T`` :bro:attr:`&optional`
         Whether to restrict message topics that can be published to peers.

      auto_advertise: :bro:type:`bool` :bro:attr:`&default` = ``T`` :bro:attr:`&optional`
         Whether to restrict what message topics or data store identifiers
         the local endpoint advertises to peers (e.g. subscribing to
         events or making a master data store available).

   Change communication behavior.

.. bro:type:: Broker::EventArgs

   :Type: :bro:type:`record`

      name: :bro:type:`string` :bro:attr:`&optional`
         The name of the event.  Not set if invalid event or arguments.

      args: :bro:type:`Broker::DataVector`
         The arguments to the event.

   Opaque event communication data.

.. bro:type:: Broker::SendFlags

   :Type: :bro:type:`record`

      self: :bro:type:`bool` :bro:attr:`&default` = ``F`` :bro:attr:`&optional`
         Send the message to the local endpoint.

      peers: :bro:type:`bool` :bro:attr:`&default` = ``T`` :bro:attr:`&optional`
         Send the message to peer endpoints that advertise interest in
         the topic associated with the message.

      unsolicited: :bro:type:`bool` :bro:attr:`&default` = ``F`` :bro:attr:`&optional`
         Send the message to peer endpoints even if they don't advertise
         interest in the topic associated with the message.

   Fine-grained tuning of communication behavior for a particular message.

.. bro:type:: Broker::TableItem

   :Type: :bro:type:`record`

      key: :bro:type:`Broker::Data`

      val: :bro:type:`Broker::Data`

   Opaque communication data used as a convenient way to wrap key-value
   pairs that comprise table entries.

.. bro:type:: Log::ID

   :Type: :bro:type:`enum`

      .. bro:enum:: Log::UNKNOWN Log::ID

         Dummy place-holder.

      .. bro:enum:: Files::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/files/main.bro` is loaded)


         Logging stream for file analysis.

      .. bro:enum:: Reporter::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/reporter/main.bro` is loaded)


      .. bro:enum:: Notice::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/notice/main.bro` is loaded)


         This is the primary logging stream for notices.

      .. bro:enum:: Notice::ALARM_LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/notice/main.bro` is loaded)


         This is the alarm stream.

      .. bro:enum:: Weird::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/notice/weird.bro` is loaded)


      .. bro:enum:: NetControl::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/netcontrol/main.bro` is loaded)


      .. bro:enum:: OpenFlow::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/openflow/plugins/log.bro` is loaded)


      .. bro:enum:: Cluster::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/cluster/main.bro` is loaded)


      .. bro:enum:: NetControl::DROP Log::ID

         (present if :doc:`/scripts/base/frameworks/netcontrol/types.bro` is loaded)


         Stop forwarding all packets matching the entity.
         
         No additional arguments.

      .. bro:enum:: NetControl::SHUNT Log::ID

         (present if :doc:`/scripts/base/frameworks/netcontrol/shunt.bro` is loaded)


      .. bro:enum:: NetControl::CATCH_RELEASE Log::ID

         (present if :doc:`/scripts/base/frameworks/netcontrol/catch-and-release.bro` is loaded)


      .. bro:enum:: DPD::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/dpd/main.bro` is loaded)


      .. bro:enum:: Signatures::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/signatures/main.bro` is loaded)


      .. bro:enum:: PacketFilter::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/packet-filter/main.bro` is loaded)


      .. bro:enum:: Software::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/software/main.bro` is loaded)


      .. bro:enum:: Communication::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/communication/main.bro` is loaded)


      .. bro:enum:: Intel::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/intel/main.bro` is loaded)


      .. bro:enum:: Tunnel::LOG Log::ID

         (present if :doc:`/scripts/base/frameworks/tunnels/main.bro` is loaded)


      .. bro:enum:: Conn::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/conn/main.bro` is loaded)


      .. bro:enum:: DCE_RPC::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/dce-rpc/main.bro` is loaded)


      .. bro:enum:: DHCP::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/dhcp/main.bro` is loaded)


      .. bro:enum:: DNP3::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/dnp3/main.bro` is loaded)


      .. bro:enum:: DNS::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/dns/main.bro` is loaded)


      .. bro:enum:: FTP::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/ftp/main.bro` is loaded)


      .. bro:enum:: SSL::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/ssl/main.bro` is loaded)


      .. bro:enum:: X509::LOG Log::ID

         (present if :doc:`/scripts/base/files/x509/main.bro` is loaded)


      .. bro:enum:: HTTP::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/http/main.bro` is loaded)


      .. bro:enum:: IRC::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/irc/main.bro` is loaded)


      .. bro:enum:: KRB::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/krb/main.bro` is loaded)


      .. bro:enum:: Modbus::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/modbus/main.bro` is loaded)


      .. bro:enum:: mysql::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/mysql/main.bro` is loaded)


      .. bro:enum:: NTLM::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/ntlm/main.bro` is loaded)


      .. bro:enum:: RADIUS::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/radius/main.bro` is loaded)


      .. bro:enum:: RDP::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/rdp/main.bro` is loaded)


      .. bro:enum:: RFB::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/rfb/main.bro` is loaded)


      .. bro:enum:: SIP::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/sip/main.bro` is loaded)


      .. bro:enum:: SNMP::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/snmp/main.bro` is loaded)


      .. bro:enum:: SMTP::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/smtp/main.bro` is loaded)


      .. bro:enum:: SOCKS::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/socks/main.bro` is loaded)


      .. bro:enum:: SSH::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/ssh/main.bro` is loaded)


      .. bro:enum:: Syslog::LOG Log::ID

         (present if :doc:`/scripts/base/protocols/syslog/main.bro` is loaded)


      .. bro:enum:: PE::LOG Log::ID

         (present if :doc:`/scripts/base/files/pe/main.bro` is loaded)


      .. bro:enum:: Unified2::LOG Log::ID

         (present if :doc:`/scripts/base/files/unified2/main.bro` is loaded)


      .. bro:enum:: Barnyard2::LOG Log::ID

         (present if :doc:`/scripts/policy/integration/barnyard2/main.bro` is loaded)


      .. bro:enum:: CaptureLoss::LOG Log::ID

         (present if :doc:`/scripts/policy/misc/capture-loss.bro` is loaded)


      .. bro:enum:: Traceroute::LOG Log::ID

         (present if :doc:`/scripts/policy/misc/detect-traceroute/main.bro` is loaded)


      .. bro:enum:: Known::DEVICES_LOG Log::ID

         (present if :doc:`/scripts/policy/misc/known-devices.bro` is loaded)


      .. bro:enum:: LoadedScripts::LOG Log::ID

         (present if :doc:`/scripts/policy/misc/loaded-scripts.bro` is loaded)


      .. bro:enum:: Stats::LOG Log::ID

         (present if :doc:`/scripts/policy/misc/stats.bro` is loaded)


      .. bro:enum:: Known::HOSTS_LOG Log::ID

         (present if :doc:`/scripts/policy/protocols/conn/known-hosts.bro` is loaded)


      .. bro:enum:: Known::SERVICES_LOG Log::ID

         (present if :doc:`/scripts/policy/protocols/conn/known-services.bro` is loaded)


      .. bro:enum:: Known::MODBUS_LOG Log::ID

         (present if :doc:`/scripts/policy/protocols/modbus/known-masters-slaves.bro` is loaded)


      .. bro:enum:: Modbus::REGISTER_CHANGE_LOG Log::ID

         (present if :doc:`/scripts/policy/protocols/modbus/track-memmap.bro` is loaded)


      .. bro:enum:: SMB::CMD_LOG Log::ID

         (present if :doc:`/scripts/policy/protocols/smb/main.bro` is loaded)


      .. bro:enum:: SMB::AUTH_LOG Log::ID

         (present if :doc:`/scripts/policy/protocols/smb/main.bro` is loaded)


      .. bro:enum:: SMB::MAPPING_LOG Log::ID

         (present if :doc:`/scripts/policy/protocols/smb/main.bro` is loaded)


      .. bro:enum:: SMB::FILES_LOG Log::ID

         (present if :doc:`/scripts/policy/protocols/smb/main.bro` is loaded)


      .. bro:enum:: Known::CERTS_LOG Log::ID

         (present if :doc:`/scripts/policy/protocols/ssl/known-certs.bro` is loaded)


      .. bro:enum:: BroxygenExample::LOG Log::ID

         (present if :doc:`/scripts/broxygen/example.bro` is loaded)


   Type that defines an ID unique to each log stream. Scripts creating new
   log streams need to redef this enum to add their own specific log ID.
   The log ID implicitly determines the default name of the generated log
   file.

Functions
#########
.. bro:id:: Broker::auto_event

   :Type: :bro:type:`function` (topic: :bro:type:`string`, ev: :bro:type:`any`, flags: :bro:type:`Broker::SendFlags` :bro:attr:`&default` = ``[self=F, peers=T, unsolicited=F]`` :bro:attr:`&optional`) : :bro:type:`bool`

   Automatically send an event to any interested peers whenever it is
   locally dispatched (e.g. using "event my_event(...);" in a script).
   

   :topic: a topic string associated with the event message.
          Peers advertise interest by registering a subscription to some
          prefix of this topic name.
   

   :ev: a Bro event value.
   

   :flags: tune the behavior of how the message is sent.
   

   :returns: true if automatic event sending is now enabled.

.. bro:id:: Broker::auto_event_stop

   :Type: :bro:type:`function` (topic: :bro:type:`string`, ev: :bro:type:`any`) : :bro:type:`bool`

   Stop automatically sending an event to peers upon local dispatch.
   

   :topic: a topic originally given to :bro:see:`Broker::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.

.. bro:id:: Broker::connect

   :Type: :bro:type:`function` (a: :bro:type:`string`, p: :bro:type:`port`, retry: :bro:type:`interval`) : :bro:type:`bool`

   Initiate a remote connection.
   

   :a: an address to connect to, e.g. "localhost" or "127.0.0.1".
   

   :p: the TCP port on which the remote side is listening.
   

   :retry: an interval at which to retry establishing the
          connection with the remote peer if it cannot be made initially, or
          if it ever becomes disconnected.
   

   :returns: true if it's possible to try connecting with the peer and
            it's a new peer.  The actual connection may not be established
            until a later point in time.
   
   .. bro:see:: Broker::outgoing_connection_established

.. bro:id:: Broker::disable_remote_logs

   :Type: :bro:type:`function` (id: :bro:type:`Log::ID`) : :bro:type:`bool`

   Disable remote logs for a given log stream.
   

   :id: the log stream to disable remote logs for.
   

   :returns: true if remote logs are disabled for the stream.

.. bro:id:: Broker::disconnect

   :Type: :bro:type:`function` (a: :bro:type:`string`, p: :bro:type:`port`) : :bro:type:`bool`

   Remove a remote connection.
   

   :a: the address used in previous successful call to :bro:see:`Broker::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
            :bro:see:`Broker::connect`.

.. bro:id:: Broker::enable

   :Type: :bro:type:`function` (flags: :bro:type:`Broker::EndpointFlags` :bro:attr:`&default` = ``[auto_publish=T, auto_advertise=T]`` :bro:attr:`&optional`) : :bro:type:`bool`

   Enable use of communication.
   

   :flags: used to tune the local Broker endpoint behavior.
   

   :returns: true if communication is successfully initialized.

.. bro:id:: Broker::enable_remote_logs

   :Type: :bro:type:`function` (id: :bro:type:`Log::ID`, flags: :bro:type:`Broker::SendFlags` :bro:attr:`&default` = ``[self=F, peers=T, unsolicited=F]`` :bro:attr:`&optional`) : :bro:type:`bool`

   Enable remote logs for a given log stream.
   

   :id: the log stream to enable remote logs for.
   

   :flags: tune the behavior of how log entry messages are sent.
   

   :returns: true if remote logs are enabled for the stream.

.. bro:id:: Broker::listen

   :Type: :bro:type:`function` (p: :bro:type:`port`, a: :bro:type:`string` :bro:attr:`&default` = ``""`` :bro:attr:`&optional`, reuse: :bro:type:`bool` :bro:attr:`&default` = ``T`` :bro:attr:`&optional`) : :bro:type:`bool`

   Listen for remote connections.
   

   :p: the TCP port to listen on.
   

   :a: an address string on which to accept connections, e.g.
      "127.0.0.1".  An empty string refers to @p INADDR_ANY.
   

   :reuse: equivalent to behavior of SO_REUSEADDR.
   

   :returns: true if the local endpoint is now listening for connections.
   
   .. bro:see:: Broker::incoming_connection_established

.. bro:id:: Broker::publish_topic

   :Type: :bro:type:`function` (topic: :bro:type:`string`) : :bro:type:`bool`

   Allow sending messages to peers if associated with the given topic.
   This has no effect if auto publication behavior is enabled via the flags
   supplied to :bro:see:`Broker::enable` or :bro:see:`Broker::set_endpoint_flags`.
   

   :topic: a topic to allow messages to be published under.
   

   :returns: true if successful.

.. bro:id:: Broker::remote_logs_enabled

   :Type: :bro:type:`function` (id: :bro:type:`Log::ID`) : :bro:type:`bool`

   Check if remote logs are enabled for a given log stream.
   

   :id: the log stream to check.
   

   :returns: true if remote logs are enabled for the given stream.

.. bro:id:: Broker::send_event

   :Type: :bro:type:`function` (topic: :bro:type:`string`, args: :bro:type:`Broker::EventArgs`, flags: :bro:type:`Broker::SendFlags` :bro:attr:`&default` = ``[self=F, peers=T, unsolicited=F]`` :bro:attr:`&optional`) : :bro:type:`bool`

   Send an event to any interested peers.
   

   :topic: a topic associated with the event message.
   

   :args: event arguments as made by :bro:see:`Broker::event_args`.
   

   :flags: tune the behavior of how the message is sent.
   

   :returns: true if the message is sent.

.. bro:id:: Broker::send_print

   :Type: :bro:type:`function` (topic: :bro:type:`string`, msg: :bro:type:`string`, flags: :bro:type:`Broker::SendFlags` :bro:attr:`&default` = ``[self=F, peers=T, unsolicited=F]`` :bro:attr:`&optional`) : :bro:type:`bool`

   Print a simple message to any interested peers.  The receiver can use
   :bro:see:`Broker::print_handler` to handle messages.
   

   :topic: a topic associated with the printed message.
   

   :msg: the print message to send to peers.
   

   :flags: tune the behavior of how the message is sent.
   

   :returns: true if the message is sent.

.. bro:id:: Broker::set_endpoint_flags

   :Type: :bro:type:`function` (flags: :bro:type:`Broker::EndpointFlags` :bro:attr:`&default` = ``[auto_publish=T, auto_advertise=T]`` :bro:attr:`&optional`) : :bro:type:`bool`

   Changes endpoint flags originally supplied to :bro:see:`Broker::enable`.
   

   :flags: the new endpoint behavior flags to use.
   

   :returns: true if flags were changed.

.. bro:id:: Broker::subscribe_to_events

   :Type: :bro:type:`function` (topic_prefix: :bro:type:`string`) : :bro:type:`bool`

   Register interest in all peer event messages that use a certain topic
   prefix.
   

   :topic_prefix: a prefix to match against remote message topics.
                 e.g. an empty prefix matches everything and "a" matches
                 "alice" and "amy" but not "bob".
   

   :returns: true if it's a new event subscription and it is now registered.

.. bro:id:: Broker::subscribe_to_logs

   :Type: :bro:type:`function` (topic_prefix: :bro:type:`string`) : :bro:type:`bool`

   Register interest in all peer log messages that use a certain topic
   prefix. Logs are implicitly sent with topic "bro/log/<stream-name>" and
   the receiving side processes them through the logging framework as usual.
   

   :topic_prefix: a prefix to match against remote message topics.
                 e.g. an empty prefix matches everything and "a" matches
                 "alice" and "amy" but not "bob".
   

   :returns: true if it's a new log subscription and it is now registered.

.. bro:id:: Broker::subscribe_to_prints

   :Type: :bro:type:`function` (topic_prefix: :bro:type:`string`) : :bro:type:`bool`

   Register interest in all peer print messages that use a certain topic
   prefix. Use :bro:see:`Broker::print_handler` to handle received
   messages.
   

   :topic_prefix: a prefix to match against remote message topics.
                 e.g. an empty prefix matches everything and "a" matches
                 "alice" and "amy" but not "bob".
   

   :returns: true if it's a new print subscription and it is now registered.

.. bro:id:: Broker::unpublish_topic

   :Type: :bro:type:`function` (topic: :bro:type:`string`) : :bro:type:`bool`

   Disallow sending messages to peers if associated with the given topic.
   This has no effect if auto publication behavior is enabled via the flags
   supplied to :bro:see:`Broker::enable` or :bro:see:`Broker::set_endpoint_flags`.
   

   :topic: a topic to disallow messages to be published under.
   

   :returns: true if successful.

.. bro:id:: Broker::unsubscribe_to_events

   :Type: :bro:type:`function` (topic_prefix: :bro:type:`string`) : :bro:type:`bool`

   Unregister interest in all peer event messages that use a topic prefix.
   

   :topic_prefix: a prefix previously supplied to a successful call to
                 :bro:see:`Broker::subscribe_to_events`.
   

   :returns: true if interest in the topic prefix is no longer advertised.

.. bro:id:: Broker::unsubscribe_to_logs

   :Type: :bro:type:`function` (topic_prefix: :bro:type:`string`) : :bro:type:`bool`

   Unregister interest in all peer log messages that use a topic prefix.
   Logs are implicitly sent with topic "bro/log/<stream-name>" and the
   receiving side processes them through the logging framework as usual.
   

   :topic_prefix: a prefix previously supplied to a successful call to
                 :bro:see:`Broker::subscribe_to_logs`.
   

   :returns: true if interest in the topic prefix is no longer advertised.

.. bro:id:: Broker::unsubscribe_to_prints

   :Type: :bro:type:`function` (topic_prefix: :bro:type:`string`) : :bro:type:`bool`

   Unregister interest in all peer print messages that use a topic prefix.
   

   :topic_prefix: a prefix previously supplied to a successful call to
                 :bro:see:`Broker::subscribe_to_prints`.
   

   :returns: true if interest in the topic prefix is no longer advertised.


