The main assignment of the program is saving data in the appropriate
format received as input parameters. Additional feature of dsi is notifying
an operator about a case or a message about dsi is informed. To notify an
operator dsi sends the request to Graphic Notifications Server with all
information concerning the case. The server displays the notification
and after that it sends the response which also contains the notification
displaying time and an identifier of an operator if it's validated.
The server also sends states of events accepted by an operator (an
operator may change state of a event from active to passive and
vice versa or leave it without changing). States of the events are
always printed as the last information on stdout. Each line of that
information describes a single event. The line consist of an event
identifier which is a positive integer (arguments of
--event-id option)
and a number describing whether this event should be active or passive
(see options: --active-value and
--passive-value).
A case may include more then one event. So, all options that
look like --event-* (i.e.: --event-ctime,
--event-id, --event-state)
may occur more then one time. For each event all its options must occur
but their order is free. Each option has an internal hit counter so
you can mix the events. In this way dsi tries to collect a minimum
quantity of whole defined events i.e. the following two events, in
spite of passing them in a different order, are the same:
Information passed to dsi as its input parameters are recorded to the files (multiple using
-f option creates the whole list of files). If no file is specified or
data cannot be write to any file, the whole information is printed on stdout. Recording of that information
is done before printing states of the events on stdout as it was said above.