network.detectors
Class FileLastChangedEventDetector

java.lang.Object
  |
  +--network.detectors.EventDetector
        |
        +--network.detectors.FileLastChangedEventDetector
All Implemented Interfaces:
java.lang.Runnable, java.io.Serializable

public class FileLastChangedEventDetector
extends EventDetector
implements java.io.Serializable

See Also:
Serialized Form

Field Summary
private  java.sql.Connection dbEvent
           
(package private)  java.io.BufferedReader dbFileReader
           
(package private)  java.lang.String dbpasswd1
           
(package private)  java.lang.String dbpasswd2
           
private  java.sql.Connection dbSignature
           
(package private)  java.lang.String dburl1
           
(package private)  java.lang.String dburl2
           
(package private)  java.lang.String dbuser1
           
(package private)  java.lang.String dbuser2
           
private  java.lang.String[] defaultLocalTriggeringEvents
           
(package private)  int eq_pos
           
(package private)  java.lang.String line
           
private  java.util.Hashtable list
           
(package private)  java.lang.String param
           
private  int rounds
           
(package private)  java.lang.String val
           
 
Fields inherited from class network.detectors.EventDetector
agentURN, attempts, cred, dbModule, eventIDGenerator, eventTable, host, localTriggeringEvents, printRunningThreadsFlag, remoteTriggeringEvents, reportTable
 
Constructor Summary
FileLastChangedEventDetector(ConfigObject configObj)
           
FileLastChangedEventDetector(java.lang.String input, ConfigObject configObj)
           
FileLastChangedEventDetector(java.util.Vector localtriggeringEventClassNames, java.util.Vector remotetriggeringEventClassNames, ConfigObject configObj)
           
 
Method Summary
 java.util.Vector check(java.util.Vector Signatures)
          This method is for comparing the files after the monitor Agent sends the FileSign vector
private  boolean compare(network.detectors.util.FileName fn, network.detectors.util.FileSign fs, network.detectors.util.FileSign fsign, java.lang.String hname)
          Compare the received file signature with the one in the database.
private  void constructquery()
          This function sets dbEvent and dbSignature to be the proper databases, dbEvent and dbSignature are both queriable after this function returns.
private  network.events.FileLastChangedEvent generate_FileLastChangedEvent(network.detectors.util.FileName fn, network.detectors.util.FileSign fs, network.detectors.util.FileSign fsign, java.lang.String hname)
           
 java.util.Vector generateEvent(network.events.Event triggeredEvent)
           
 java.lang.String getGeneratingEventClassName()
           
private  network.detectors.util.FileSign set_FileSign(java.lang.String hostname, java.lang.String hname, java.lang.String filename)
           
 
Methods inherited from class network.detectors.EventDetector
getAlarmLevel, getAlertLevel, getLocalTriggeringEventClassNames, getRemoteTriggeringEventClassNames, getSynchronizer, InitializeFields, modifyDetector, populatePatterns, printRunningThreads, run, setAgentURN, setAlarmLevel, setAlertLevel, setDB, setEventIDGenerator, setEventTable, setLocalTriggeringEvents, setRemoteTriggeringEvents, setReportTable, stopDetector, switchOffPrintRunningThreads
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

list

private java.util.Hashtable list

dbEvent

private java.sql.Connection dbEvent

dbSignature

private java.sql.Connection dbSignature

rounds

private int rounds

dburl1

java.lang.String dburl1

dburl2

java.lang.String dburl2

dbuser1

java.lang.String dbuser1

dbuser2

java.lang.String dbuser2

dbpasswd1

java.lang.String dbpasswd1

dbpasswd2

java.lang.String dbpasswd2

line

java.lang.String line

param

java.lang.String param

val

java.lang.String val

eq_pos

int eq_pos

dbFileReader

transient java.io.BufferedReader dbFileReader

defaultLocalTriggeringEvents

private java.lang.String[] defaultLocalTriggeringEvents
Constructor Detail

FileLastChangedEventDetector

public FileLastChangedEventDetector(ConfigObject configObj)

FileLastChangedEventDetector

public FileLastChangedEventDetector(java.lang.String input,
                                    ConfigObject configObj)
Parameters:
input - a string that contains the dburl, dbuser, and dbpassword of the sign and event databases
configObj -

FileLastChangedEventDetector

public FileLastChangedEventDetector(java.util.Vector localtriggeringEventClassNames,
                                    java.util.Vector remotetriggeringEventClassNames,
                                    ConfigObject configObj)
Method Detail

constructquery

private void constructquery()
This function sets dbEvent and dbSignature to be the proper databases, dbEvent and dbSignature are both queriable after this function returns.

Returns:
void sets dbEvent and dbSignature

getGeneratingEventClassName

public java.lang.String getGeneratingEventClassName()
Specified by:
getGeneratingEventClassName in class EventDetector
Returns:

generateEvent

public java.util.Vector generateEvent(network.events.Event triggeredEvent)
Specified by:
generateEvent in class EventDetector
Parameters:
triggeredEvent -
Returns:

set_FileSign

private network.detectors.util.FileSign set_FileSign(java.lang.String hostname,
                                                     java.lang.String hname,
                                                     java.lang.String filename)

check

public java.util.Vector check(java.util.Vector Signatures)
                       throws java.rmi.RemoteException
This method is for comparing the files after the monitor Agent sends the FileSign vector

Parameters:
Signatures - a vector of file signatures.
Returns:
a vector possibly containing a FileLastChangedEvent
java.rmi.RemoteException

compare

private boolean compare(network.detectors.util.FileName fn,
                        network.detectors.util.FileSign fs,
                        network.detectors.util.FileSign fsign,
                        java.lang.String hname)
Compare the received file signature with the one in the database.

FileChangedEvents are generated based on whether or not fs's signature differs from fsign's. If the event is generated it must go through more checks to see if it should be readded to the events database. The event is readded if any of its signature (except the timestamp) differs from the result of a query on the events database.

Returns:
true if we should generate an event, false if we shouldn't

generate_FileLastChangedEvent

private network.events.FileLastChangedEvent generate_FileLastChangedEvent(network.detectors.util.FileName fn,
                                                                          network.detectors.util.FileSign fs,
                                                                          network.detectors.util.FileSign fsign,
                                                                          java.lang.String hname)