When the agent, which waits for messages from network clients, receives a
UDP packet then checks its IP address. In this case .known.hosts
file is processed. If .known.hosts file can't be opened to read or a IP address of a client
don't match any records in this file, the UDP packet is dropped. No authorization is made for local clients.
For each processed message, the list of active messages is searched to check if that
message is already on the list. Two massages are treated as the same one then and only then,
when they are the same type (SNMP Data or SNMP Trap) and meet specific conditions for given
type. Their identifiers must have be equal for SNMP Trap messages but for SNMP Data messages
they also must have the same sending reason by
SNMP Data Analyser (the reason must be one of:
a value below minimum limit of a window of average values, a value above maximum limit of this
window, error or no responding for requests). If the message is on the list of active messages,
it will be updated and next, information about it is sent on out of damadbud.
In case of the message isn't found on the list of active messages, all messages are
searched. If the message is found on the list, it will be updated and will stay active.
If the message isn't be found, it will be added to the list of messages as active.
The last operation on the processed message is sent it on out of damadbud.
When a new item is added to the Database, it will be checked if the item should
be associated with some items from the Database according to configuration from .damadbudrc
file, which was loaded during the startup. In this case each massage from the Database is processed
with no matter, if the message is on the list of active massage or not. Each such pair is checked,
whether their identifiers match to definition of any association{...}
object, that can be found in the configuration file. In this case each of defined objects is browsed. If
string1 occurs in the first massage and string2
in the second one when selected parts of identifiers are treated as variables according to fields
string1 and string2 definitions, the messages will be associated with each other.
Program damadbud also browses active messages. These of them, that
weren't updated for last 15 minutes, will be set as passive state. However, a procedure
which deletes passive messages, is run every some minutes.