Fix various documentation/typos; remove a few superfluous things.

This commit is contained in:
Jon Siwek 2013-06-03 16:03:25 -05:00
parent 8e7ef001b3
commit a5e1810aa8
17 changed files with 110 additions and 103 deletions

View file

@ -57,8 +57,6 @@ global example_ports = {
event bro_init() event bro_init()
{ {
# Registering a well-known port is self-documenting and
# goes into the generated doc's "Port Analysis" section.
Analyzer::register_for_ports(Analyzer::ANALYZER_SSL, example_ports); Analyzer::register_for_ports(Analyzer::ANALYZER_SSL, example_ports);
} }

View file

@ -1,26 +1,25 @@
##! Framework for managing Bro's protocol analyzers. ##! Framework for managing Bro's protocol analyzers.
##! ##!
##! The analyzer framework allows to dynamically enable or disable analyzers, as ##! The analyzer framework allows to dynamically enable or disable analyzers, as
##! well as to manage the well-known ports which automatically active a particular ##! well as to manage the well-known ports which automatically activate a
##! analyzer for new connections. ##! particular analyzer for new connections.
##! ##!
##! Protocol analyzers are identified by unique tags of type ##! Protocol analyzers are identified by unique tags of type
##! :bro:type:`Analyzer::Tag`, such as :bro:enum:`Analyzer::ANALYZER_HTTP` and ##! :bro:type:`Analyzer::Tag`, such as :bro:enum:`Analyzer::ANALYZER_HTTP` and
##! :bro:enum:`Analyzer::ANALYZER_HTTP`. These tags are defined internally by the ##! :bro:enum:`Analyzer::ANALYZER_HTTP`. These tags are defined internally by
##! analyzers themselves, and documented in their analyzer-specific description ##! the analyzers themselves, and documented in their analyzer-specific
##! along with the events that they generate. ##! description along with the events that they generate.
##!
##! .. todo: ``The ANALYZER_*`` are in fact not yet documented, we need to add that
##! to Broxygen.
module Analyzer; module Analyzer;
export { export {
## If true, all available analyzers are initially disabled at startup. One can ## If true, all available analyzers are initially disabled at startup. One
## then selectively enable them with :bro:id:`enable_analyzer`. ## can then selectively enable them with
## :bro:id:`Analyzer::enable_analyzer`.
global disable_all = F &redef; global disable_all = F &redef;
## Enables an analyzer. Once enabled, the analyzer may be used for analysis of ## Enables an analyzer. Once enabled, the analyzer may be used for analysis
## future connections as decided by Bro's dynamic protocol detection. ## of future connections as decided by Bro's dynamic protocol detection.
## ##
## tag: The tag of the analyzer to enable. ## tag: The tag of the analyzer to enable.
## ##
@ -35,10 +34,10 @@ export {
## Returns: True if the analyzer was successfully disabled. ## Returns: True if the analyzer was successfully disabled.
global disable_analyzer: function(tag: Analyzer::Tag) : bool; global disable_analyzer: function(tag: Analyzer::Tag) : bool;
## Registers a set of well-known ports for an analyzer. If a future connection ## Registers a set of well-known ports for an analyzer. If a future
## on one of these ports is seen, the analyzer will be automatically assigned ## connection on one of these ports is seen, the analyzer will be
## to parsing it. The function *adds* to all ports already registered, it doesn't ## automatically assigned to parsing it. The function *adds* to all ports
## replace them . ## already registered, it doesn't replace them.
## ##
## tag: The tag of the analyzer. ## tag: The tag of the analyzer.
## ##
@ -47,10 +46,10 @@ export {
## Returns: True if the ports were sucessfully registered. ## Returns: True if the ports were sucessfully registered.
global register_for_ports: function(tag: Analyzer::Tag, ports: set[port]) : bool; global register_for_ports: function(tag: Analyzer::Tag, ports: set[port]) : bool;
## Registers an individual well-known port for an analyzer. If a future connection ## Registers an individual well-known port for an analyzer. If a future
## on this ports is seen, the analyzer will be automatically assigned to parsing ## connection on this port is seen, the analyzer will be automatically
## it. The function *adds* to all ports already registered, it doesn't replace ## assigned to parsing it. The function *adds* to all ports already
## them. ## registered, it doesn't replace them.
## ##
## tag: The tag of the analyzer. ## tag: The tag of the analyzer.
## ##
@ -70,7 +69,7 @@ export {
## Returns a table of all ports-to-analyzer mappings currently registered. ## Returns a table of all ports-to-analyzer mappings currently registered.
## ##
## Returns: A table mapping each analyzer to the set of ports ## Returns: A table mapping each analyzer to the set of ports
## registered for it. ## registered for it.
global all_registered_ports: function() : table[Analyzer::Tag] of set[port]; global all_registered_ports: function() : table[Analyzer::Tag] of set[port];
## Translates an analyzer type to a string with the analyzer's name. ## Translates an analyzer type to a string with the analyzer's name.
@ -84,7 +83,7 @@ export {
## address and port. ## address and port.
## ##
## orig: The IP address originating a connection in the future. ## orig: The IP address originating a connection in the future.
## 0.0.0.0 can be used as a wildcard to match any originator address. ## 0.0.0.0 can be used as a wildcard to match any originator address.
## ##
## resp: The IP address responding to a connection from *orig*. ## resp: The IP address responding to a connection from *orig*.
## ##
@ -93,22 +92,20 @@ export {
## analyzer: The analyzer ID. ## analyzer: The analyzer ID.
## ##
## tout: A timeout interval after which the scheduling request will be ## tout: A timeout interval after which the scheduling request will be
## discarded if the connection has not yet been seen. ## discarded if the connection has not yet been seen.
## ##
## Returns: True if succesful. ## Returns: True if succesful.
global schedule_analyzer: function(orig: addr, resp: addr, resp_p: port, global schedule_analyzer: function(orig: addr, resp: addr, resp_p: port,
analyzer: Analyzer::Tag, tout: interval) : bool; analyzer: Analyzer::Tag, tout: interval) : bool;
## A set of analyzers to disable by default at startup. The default set contains ## A set of analyzers to disable by default at startup. The default set
## legacy analyzers that are no longer supported. ## contains legacy analyzers that are no longer supported.
global disabled_analyzers: set[Analyzer::Tag] = { global disabled_analyzers: set[Analyzer::Tag] = {
ANALYZER_INTERCONN, ANALYZER_INTERCONN,
ANALYZER_STEPPINGSTONE, ANALYZER_STEPPINGSTONE,
ANALYZER_BACKDOOR, ANALYZER_BACKDOOR,
ANALYZER_TCPSTATS, ANALYZER_TCPSTATS,
} } &redef;
&redef;
} }
@load base/bif/analyzer.bif @load base/bif/analyzer.bif

View file

@ -9,7 +9,7 @@
##! Note that this framework deals with the handling of internally generated ##! Note that this framework deals with the handling of internally generated
##! reporter messages, for the interface in to actually creating interface ##! reporter messages, for the interface in to actually creating interface
##! into actually creating reporter messages from the scripting layer, use ##! into actually creating reporter messages from the scripting layer, use
##! the built-in functions in :doc:`/scripts/base/reporter.bif`. ##! the built-in functions in :doc:`/scripts/base/bif/reporter.bif`.
module Reporter; module Reporter;

View file

@ -226,7 +226,7 @@ type endpoint_stats: record {
## for a connection, it assigns it a unique ID that can be used to reference ## for a connection, it assigns it a unique ID that can be used to reference
## that instance. ## that instance.
## ##
## .. bro:see:: analyzer_name disable_analyzer protocol_confirmation ## .. bro:see:: Analyzer::name Analyzer::disable_analyzer protocol_confirmation
## protocol_violation ## protocol_violation
## ##
## .. todo::While we declare an alias for the type here, the events/functions still ## .. todo::While we declare an alias for the type here, the events/functions still

View file

@ -451,11 +451,6 @@ inline void IPAddr::ConvertToThreadingValue(threading::Value::addr_t* v) const
*/ */
HashKey* BuildConnIDHashKey(const ConnID& id); HashKey* BuildConnIDHashKey(const ConnID& id);
/**
* Returns a hash key for a given ExpectedConn instance. Passes ownership to caller.
*/
HashKey* BuildExpectedConnHashKey(const analyzer::ExpectedConn& c);
/** /**
* Class storing both IPv4 and IPv6 prefixes * Class storing both IPv4 and IPv6 prefixes
* (i.e., \c 192.168.1.1/16 and \c FD00::/8. * (i.e., \c 192.168.1.1/16 and \c FD00::/8.

View file

@ -509,31 +509,31 @@ public:
virtual void UpdateConnVal(RecordVal *conn_val); virtual void UpdateConnVal(RecordVal *conn_val);
/** /**
* Convinience function that forwards directly to * Convenience function that forwards directly to
* Connection::BuildConnVal(). * Connection::BuildConnVal().
*/ */
RecordVal* BuildConnVal(); RecordVal* BuildConnVal();
/** /**
* Convinience function that forwards directly to the corresponding * Convenience function that forwards directly to the corresponding
* Connection::Event(). * Connection::Event().
*/ */
void Event(EventHandlerPtr f, const char* name = 0); void Event(EventHandlerPtr f, const char* name = 0);
/** /**
* Convinience function that forwards directly to the corresponding * Convenience function that forwards directly to the corresponding
* Connection::Event(). * Connection::Event().
*/ */
void Event(EventHandlerPtr f, Val* v1, Val* v2 = 0); void Event(EventHandlerPtr f, Val* v1, Val* v2 = 0);
/** /**
* Convinience function that forwards directly to * Convenience function that forwards directly to
* Connection::ConnectionEvent(). * Connection::ConnectionEvent().
*/ */
void ConnectionEvent(EventHandlerPtr f, val_list* vl); void ConnectionEvent(EventHandlerPtr f, val_list* vl);
/** /**
* Convinience function that forwards directly to the corresponding * Convenience function that forwards directly to the corresponding
* Connection::Weird(). * Connection::Weird().
*/ */
void Weird(const char* name, const char* addl = ""); void Weird(const char* name, const char* addl = "");

View file

@ -40,10 +40,10 @@ public:
* returns a new instance. * returns a new instance.
* *
* @param subtype A subtype associated with this component that * @param subtype A subtype associated with this component that
* further. The subtype will be integrated into the analyzer::Tag * further distinguishes it. The subtype will be integrated into
* that the manager associates with this analyzer, and analyzer * the analyzer::Tag that the manager associates with this analyzer,
* instances can accordingly access it via analyzer::Tag(). If not * and analyzer instances can accordingly access it via analyzer::Tag().
* used, leave at zero. * If not used, leave at zero.
* *
* @param enabled If false the analyzer starts out as disabled and * @param enabled If false the analyzer starts out as disabled and
* hence won't be used. It can still be enabled later via the * hence won't be used. It can still be enabled later via the

View file

@ -91,7 +91,7 @@ public:
* *
* @param tag The analyzer's tag. * @param tag The analyzer's tag.
* *
* @return True if sucessful. * @return True if successful.
*/ */
bool EnableAnalyzer(Tag tag); bool EnableAnalyzer(Tag tag);
@ -102,7 +102,7 @@ public:
* @param tag The analyzer's tag as an enum of script type \c * @param tag The analyzer's tag as an enum of script type \c
* Analyzer::Tag. * Analyzer::Tag.
* *
* @return True if sucessful. * @return True if successful.
*/ */
bool EnableAnalyzer(EnumVal* tag); bool EnableAnalyzer(EnumVal* tag);
@ -112,7 +112,7 @@ public:
* *
* @param tag The analyzer's tag. * @param tag The analyzer's tag.
* *
* @return True if sucessful. * @return True if successful.
*/ */
bool DisableAnalyzer(Tag tag); bool DisableAnalyzer(Tag tag);
@ -123,7 +123,7 @@ public:
* @param tag The analyzer's tag as an enum of script type \c * @param tag The analyzer's tag as an enum of script type \c
* Analyzer::Tag. * Analyzer::Tag.
* *
* @return True if sucessful. * @return True if successful.
*/ */
bool DisableAnalyzer(EnumVal* tag); bool DisableAnalyzer(EnumVal* tag);
@ -157,7 +157,7 @@ public:
* *
* @param port The well-known port. * @param port The well-known port.
* *
* @return True if sucessful. * @return True if successful.
*/ */
bool RegisterAnalyzerForPort(EnumVal* tag, PortVal* port); bool RegisterAnalyzerForPort(EnumVal* tag, PortVal* port);
@ -172,7 +172,7 @@ public:
* *
* @param port The port's number. * @param port The port's number.
* *
* @return True if sucessful. * @return True if successful.
*/ */
bool RegisterAnalyzerForPort(Tag tag, TransportProto proto, uint32 port); bool RegisterAnalyzerForPort(Tag tag, TransportProto proto, uint32 port);
@ -184,7 +184,7 @@ public:
* *
* @param port The well-known port. * @param port The well-known port.
* *
* @return True if sucessful (incl. when the port wasn't actually * @return True if successful (incl. when the port wasn't actually
* registered for the analyzer). * registered for the analyzer).
* *
*/ */
@ -215,7 +215,7 @@ public:
* have been added to the connection's analyzer tree yet. Returns * have been added to the connection's analyzer tree yet. Returns
* null if tag is invalid or the requested analyzer is disabled. * null if tag is invalid or the requested analyzer is disabled.
*/ */
Analyzer* InstantiateAnalyzer(Tag tag, Connection* c); // Null if disabled or not available. Analyzer* InstantiateAnalyzer(Tag tag, Connection* c);
/** /**
* Instantiates a new analyzer instance for a connection. * Instantiates a new analyzer instance for a connection.
@ -229,7 +229,7 @@ public:
* null if the name is not known or if the requested analyzer that is * null if the name is not known or if the requested analyzer that is
* disabled. * disabled.
*/ */
Analyzer* InstantiateAnalyzer(const char* name, Connection* c); // Null if disabled or not available. Analyzer* InstantiateAnalyzer(const char* name, Connection* c);
/** /**
* Translates an analyzer tag into corresponding analyzer name. * Translates an analyzer tag into corresponding analyzer name.

View file

@ -28,7 +28,7 @@ class Component;
* assigns them their main types), and analyzer::Component creates new * assigns them their main types), and analyzer::Component creates new
* tags. * tags.
* *
* The Tag class supports all operations necessary to act at the index in a * The Tag class supports all operations necessary to act as an index in a
* \c std::map. * \c std::map.
*/ */
class Tag { class Tag {
@ -90,7 +90,7 @@ public:
/** /**
* Assignment operator. * Assignment operator.
*/ */
Tag& operator=(const Tag& other); Tag& operator=(const Tag& other);
/** /**
* Compares two tags for equality. * Compares two tags for equality.

View file

@ -18,7 +18,7 @@
## version: The version number specified in the request (e.g., ``1.1``). ## version: The version number specified in the request (e.g., ``1.1``).
## ##
## .. bro:see:: http_all_headers http_begin_entity http_content_type http_end_entity ## .. bro:see:: http_all_headers http_begin_entity http_content_type http_end_entity
## http_entity_data http_event http_header http_message_done ply http_stats ## http_entity_data http_event http_header http_message_done http_reply http_stats
## truncate_http_URI ## truncate_http_URI
event http_request%(c: connection, method: string, original_URI: string, unescaped_URI: string, version: string%); event http_request%(c: connection, method: string, original_URI: string, unescaped_URI: string, version: string%);

View file

@ -87,7 +87,8 @@ event rsh_reply%(c: connection, client_user: string, server_user: string, line:
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event login_failure%(c: connection, user: string, client_user: string, password: string, line: string%); event login_failure%(c: connection, user: string, client_user: string, password: string, line: string%);
## Generated for successful Telnet/Rlogin logins. The *login* analyzer inspects ## Generated for successful Telnet/Rlogin logins. The *login* analyzer inspects
@ -121,7 +122,8 @@ event login_failure%(c: connection, user: string, client_user: string, password:
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event login_success%(c: connection, user: string, client_user: string, password: string, line: string%); event login_success%(c: connection, user: string, client_user: string, password: string, line: string%);
## Generated for lines of input on Telnet/Rlogin sessions. The line will have ## Generated for lines of input on Telnet/Rlogin sessions. The line will have
@ -137,7 +139,8 @@ event login_success%(c: connection, user: string, client_user: string, password:
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event login_input_line%(c: connection, line: string%); event login_input_line%(c: connection, line: string%);
## Generated for lines of output on Telnet/Rlogin sessions. The line will have ## Generated for lines of output on Telnet/Rlogin sessions. The line will have
@ -153,7 +156,8 @@ event login_input_line%(c: connection, line: string%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event login_output_line%(c: connection, line: string%); event login_output_line%(c: connection, line: string%);
## Generated when tracking of Telnet/Rlogin authentication failed. As Bro's ## Generated when tracking of Telnet/Rlogin authentication failed. As Bro's
@ -179,7 +183,8 @@ event login_output_line%(c: connection, line: string%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event login_confused%(c: connection, msg: string, line: string%); event login_confused%(c: connection, msg: string, line: string%);
## Generated after getting confused while tracking a Telnet/Rlogin ## Generated after getting confused while tracking a Telnet/Rlogin
@ -199,7 +204,8 @@ event login_confused%(c: connection, msg: string, line: string%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event login_confused_text%(c: connection, line: string%); event login_confused_text%(c: connection, line: string%);
## Generated for clients transmitting a terminal type in a Telnet session. This ## Generated for clients transmitting a terminal type in a Telnet session. This
@ -215,7 +221,8 @@ event login_confused_text%(c: connection, line: string%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event login_terminal%(c: connection, terminal: string%); event login_terminal%(c: connection, terminal: string%);
## Generated for clients transmitting an X11 DISPLAY in a Telnet session. This ## Generated for clients transmitting an X11 DISPLAY in a Telnet session. This
@ -231,7 +238,8 @@ event login_terminal%(c: connection, terminal: string%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event login_display%(c: connection, display: string%); event login_display%(c: connection, display: string%);
## Generated when a Telnet authentication has been successful. The Telnet ## Generated when a Telnet authentication has been successful. The Telnet
@ -255,7 +263,8 @@ event login_display%(c: connection, display: string%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event authentication_accepted%(name: string, c: connection%); event authentication_accepted%(name: string, c: connection%);
## Generated when a Telnet authentication has been unsuccessful. The Telnet ## Generated when a Telnet authentication has been unsuccessful. The Telnet
@ -279,7 +288,8 @@ event authentication_accepted%(name: string, c: connection%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event authentication_rejected%(name: string, c: connection%); event authentication_rejected%(name: string, c: connection%);
## Generated for Telnet/Rlogin sessions when a pattern match indicates ## Generated for Telnet/Rlogin sessions when a pattern match indicates
@ -302,7 +312,8 @@ event authentication_rejected%(name: string, c: connection%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event authentication_skipped%(c: connection%); event authentication_skipped%(c: connection%);
## Generated for clients transmitting a terminal prompt in a Telnet session. ## Generated for clients transmitting a terminal prompt in a Telnet session.
@ -322,7 +333,8 @@ event authentication_skipped%(c: connection%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event login_prompt%(c: connection, prompt: string%); event login_prompt%(c: connection, prompt: string%);
## Generated for Telnet sessions when encryption is activated. The Telnet ## Generated for Telnet sessions when encryption is activated. The Telnet
@ -373,7 +385,8 @@ event inconsistent_option%(c: connection%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event bad_option%(c: connection%); event bad_option%(c: connection%);
## Generated for a Telnet option that's incorrectly terminated. ## Generated for a Telnet option that's incorrectly terminated.
@ -391,5 +404,6 @@ event bad_option%(c: connection%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event bad_option_termination%(c: connection%); event bad_option_termination%(c: connection%);

View file

@ -675,7 +675,8 @@ event pm_bad_port%(r: connection, bad_p: count%);
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event rpc_dialogue%(c: connection, prog: count, ver: count, proc: count, status: rpc_status, start_time: time, call_len: count, reply_len: count%); event rpc_dialogue%(c: connection, prog: count, ver: count, proc: count, status: rpc_status, start_time: time, call_len: count, reply_len: count%);
## Generated for RPC *call* messages. ## Generated for RPC *call* messages.
@ -701,7 +702,8 @@ event rpc_dialogue%(c: connection, prog: count, ver: count, proc: count, status:
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event rpc_call%(c: connection, xid: count, prog: count, ver: count, proc: count, call_len: count%); event rpc_call%(c: connection, xid: count, prog: count, ver: count, proc: count, call_len: count%);
## Generated for RPC *reply* messages. ## Generated for RPC *reply* messages.
@ -724,5 +726,6 @@ event rpc_call%(c: connection, xid: count, prog: count, ver: count, proc: count,
## .. todo:: Bro's current default configuration does not activate the protocol ## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet ## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a ## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature. ## call to :bro:see:`Analyzer::register_for_ports` or a DPD payload
## signature.
event rpc_reply%(c: connection, xid: count, status: rpc_status, reply_len: count%); event rpc_reply%(c: connection, xid: count, status: rpc_status, reply_len: count%);

View file

@ -10,7 +10,7 @@
## connection_first_ACK connection_half_finished connection_partial_close ## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused ## connection_pending connection_rejected connection_reset connection_reused
## connection_state_remove connection_status_update connection_timeout ## connection_state_remove connection_status_update connection_timeout
## expected_connection_seen new_connection partial_connection ## scheduled_analyzer_applied new_connection partial_connection
event new_connection_contents%(c: connection%); event new_connection_contents%(c: connection%);
## Generated for an unsuccessful connection attempt. This event is raised when ## Generated for an unsuccessful connection attempt. This event is raised when
@ -25,7 +25,7 @@ event new_connection_contents%(c: connection%);
## connection_external connection_finished connection_first_ACK ## connection_external connection_finished connection_first_ACK
## connection_half_finished connection_partial_close connection_pending ## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove ## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection ## new_connection new_connection_contents partial_connection
event connection_attempt%(c: connection%); event connection_attempt%(c: connection%);
@ -41,7 +41,7 @@ event connection_attempt%(c: connection%);
## connection_external connection_finished connection_first_ACK ## connection_external connection_finished connection_first_ACK
## connection_half_finished connection_partial_close connection_pending ## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove ## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection ## new_connection new_connection_contents partial_connection
event connection_established%(c: connection%); event connection_established%(c: connection%);
@ -57,7 +57,7 @@ event connection_established%(c: connection%);
## connection_first_ACK connection_half_finished connection_partial_close ## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused ## connection_pending connection_rejected connection_reset connection_reused
## connection_state_remove connection_status_update connection_timeout ## connection_state_remove connection_status_update connection_timeout
## expected_connection_seen new_connection new_connection_contents ## scheduled_analyzer_applied new_connection new_connection_contents
## ##
event partial_connection%(c: connection%); event partial_connection%(c: connection%);
@ -73,7 +73,7 @@ event partial_connection%(c: connection%);
## connection_established connection_external connection_finished ## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_pending ## connection_first_ACK connection_half_finished connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove ## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection ## new_connection new_connection_contents partial_connection
event connection_partial_close%(c: connection%); event connection_partial_close%(c: connection%);
@ -86,7 +86,7 @@ event connection_partial_close%(c: connection%);
## connection_established connection_external connection_first_ACK ## connection_established connection_external connection_first_ACK
## connection_half_finished connection_partial_close connection_pending ## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove ## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection ## new_connection new_connection_contents partial_connection
event connection_finished%(c: connection%); event connection_finished%(c: connection%);
@ -100,7 +100,7 @@ event connection_finished%(c: connection%);
## connection_established connection_external connection_finished ## connection_established connection_external connection_finished
## connection_first_ACK connection_partial_close connection_pending ## connection_first_ACK connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove ## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection ## new_connection new_connection_contents partial_connection
event connection_half_finished%(c: connection%); event connection_half_finished%(c: connection%);
@ -112,7 +112,7 @@ event connection_half_finished%(c: connection%);
## connection_established connection_external connection_finished ## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close ## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_reset connection_reused connection_state_remove ## connection_pending connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection ## new_connection new_connection_contents partial_connection
## ##
## c: The connection. ## c: The connection.
@ -136,7 +136,7 @@ event connection_rejected%(c: connection%);
## connection_first_ACK connection_half_finished connection_partial_close ## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reused ## connection_pending connection_rejected connection_reused
## connection_state_remove connection_status_update connection_timeout ## connection_state_remove connection_status_update connection_timeout
## expected_connection_seen new_connection new_connection_contents ## scheduled_analyzer_applied new_connection new_connection_contents
## partial_connection ## partial_connection
event connection_reset%(c: connection%); event connection_reset%(c: connection%);
@ -148,7 +148,7 @@ event connection_reset%(c: connection%);
## connection_established connection_external connection_finished ## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close ## connection_first_ACK connection_half_finished connection_partial_close
## connection_rejected connection_reset connection_reused connection_state_remove ## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection bro_done ## new_connection new_connection_contents partial_connection bro_done
event connection_pending%(c: connection%); event connection_pending%(c: connection%);
@ -163,7 +163,7 @@ event connection_pending%(c: connection%);
## connection_external connection_finished connection_first_ACK ## connection_external connection_finished connection_first_ACK
## connection_half_finished connection_partial_close connection_pending ## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove ## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection ## new_connection new_connection_contents partial_connection
## ##
## .. note:: ## .. note::
@ -184,7 +184,7 @@ event connection_SYN_packet%(c: connection, pkt: SYN_packet%);
## connection_established connection_external connection_finished ## connection_established connection_external connection_finished
## connection_half_finished connection_partial_close connection_pending ## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove ## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection ## new_connection new_connection_contents partial_connection
## ##
## .. note:: ## .. note::
@ -204,7 +204,7 @@ event connection_first_ACK%(c: connection%);
## connection_external connection_finished connection_first_ACK ## connection_external connection_finished connection_first_ACK
## connection_half_finished connection_partial_close connection_pending ## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove ## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen ## connection_status_update connection_timeout scheduled_analyzer_applied
## new_connection new_connection_contents partial_connection ## new_connection new_connection_contents partial_connection
event connection_EOF%(c: connection, is_orig: bool%); event connection_EOF%(c: connection, is_orig: bool%);

View file

@ -3699,7 +3699,7 @@ function file_mode%(mode: count%): string
## Returns: True if the connection identified by *cid* exists and has analyzer ## Returns: True if the connection identified by *cid* exists and has analyzer
## *aid*. ## *aid*.
## ##
## .. bro:see:: expect_connection analyzer_name ## .. bro:see:: Analyzer::schedule_analyzer Analyzer::name
function disable_analyzer%(cid: conn_id, aid: count%) : bool function disable_analyzer%(cid: conn_id, aid: count%) : bool
%{ %{
Connection* c = sessions->FindConnection(cid); Connection* c = sessions->FindConnection(cid);

View file

@ -107,8 +107,9 @@ event tunnel_changed%(c: connection, e: EncapsulatingConnVector%);
## connection_established connection_external connection_finished ## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close ## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused ## connection_pending connection_rejected connection_reset connection_reused
## connection_state_remove connection_status_update expected_connection_seen ## connection_state_remove connection_status_update
## new_connection new_connection_contents partial_connection ## scheduled_analyzer_applied new_connection new_connection_contents
## partial_connection
## ##
## .. note:: ## .. note::
## ##
@ -201,14 +202,15 @@ event connection_external%(c: connection, tag: string%);
event udp_session_done%(u: connection%); event udp_session_done%(u: connection%);
## Generated when a connection is seen that is marked as being expected. ## Generated when a connection is seen that is marked as being expected.
## The function :bro:id:`expect_connection` tells Bro to expect a particular ## The function :bro:id:`Analyzer::schedule_analyzer` tells Bro to expect a
## connection to come up, and which analyzer to associate with it. Once the ## particular connection to come up, and which analyzer to associate with it.
## first packet of such a connection is indeed seen, this event is raised. ## Once the first packet of such a connection is indeed seen, this event is
## raised.
## ##
## c: The connection. ## c: The connection.
## ##
## a: The analyzer that was scheduled for the connection with the ## a: The analyzer that was scheduled for the connection with the
## :bro:id:`expect_connection` call. When the event is raised, that ## :bro:id:`Analyzer::schedule_analyzer` call. When the event is raised, that
## analyzer will already have been activated to process the connection. The ## analyzer will already have been activated to process the connection. The
## ``count`` is one of the ``ANALYZER_*`` constants, e.g., ``ANALYZER_HTTP``. ## ``count`` is one of the ``ANALYZER_*`` constants, e.g., ``ANALYZER_HTTP``.
## ##

View file

@ -70,10 +70,10 @@
#define BRO_PLUGIN_VERSION(v) SetVersion(v) #define BRO_PLUGIN_VERSION(v) SetVersion(v)
/** /**
* Adds scrip-level items defined in a \c *.bif file to what the plugin * Adds script-level items defined in a \c *.bif file to what the plugin
* provides. * provides.
* *
* @param file A string with the name of \c *.bif file. When loaded, the the * @param file A string with the name of \c *.bif file. When loaded, the
* plugin will make all items defined in the file available to Bro's script * plugin will make all items defined in the file available to Bro's script
* interpreter. * interpreter.
*/ */
@ -82,7 +82,7 @@
AddBifInitFunction(&__bif_##file##_init); AddBifInitFunction(&__bif_##file##_init);
/** /**
* Defines a component implementating a protocol analyzer. * Defines a component implementing a protocol analyzer.
* *
* @param tag A string with the analyzer's tag. This must be unique across * @param tag A string with the analyzer's tag. This must be unique across
* all loaded analyzers and will translate into a corresponding \c ANALYZER_* * all loaded analyzers and will translate into a corresponding \c ANALYZER_*
@ -95,11 +95,11 @@
AddComponent(new ::analyzer::Component(tag, ::analyzer::cls::InstantiateAnalyzer)); AddComponent(new ::analyzer::Component(tag, ::analyzer::cls::InstantiateAnalyzer));
/** /**
* Defines a component implementating an protocol analyzer class that will * Defines a component implementing a protocol analyzer class that will
* not be instantiated dynamically. This is for two use-cases: (1) abstract * not be instantiated dynamically. This is for two use-cases: (1) abstract
* analyzer base classes that aren't instantiated directly; and (2) analyzers * analyzer base classes that aren't instantiated directly; and (2) analyzers
* that are only instantiated explicitly by other Bro components, but not * that are only instantiated explicitly by other Bro components, but not
* dynmically by the manager based on their tag (e.g., the ZIP analyzer is * dynamically by the manager based on their tag (e.g., the ZIP analyzer is
* attached by the HTTP analyzer when corresponding content is found). * attached by the HTTP analyzer when corresponding content is found).
* *
* @param tag A string with the analyzer's tag. This must be unique across * @param tag A string with the analyzer's tag. This must be unique across

View file

@ -80,7 +80,7 @@ private:
* components, a plugin can also provide of script-level elements defined in * components, a plugin can also provide of script-level elements defined in
* *.bif files. * *.bif files.
* *
* Currently, all plugins ard compiled statically into the final Bro binary. * Currently, all plugins are compiled statically into the final Bro binary.
* Later, we will extend the infrastructure to also support plugins loaded * Later, we will extend the infrastructure to also support plugins loaded
* dynamically as shared libraries. * dynamically as shared libraries.
*/ */
@ -124,8 +124,6 @@ public:
/** /**
* Returns a list of all components the plugin provides. * Returns a list of all components the plugin provides.
* BRO_PLUGIN_VERSION_BUILTIN indiciates that it's a plugin compiled
* in statically.
*/ */
component_list Components(); component_list Components();