2006-12-15  John Dennis  <jdennis@redhat.com>

	- Replace delete and expunge menu labels with something more intuitive
	- add ability for browser to be restarted with identical window
	  position and state
	- add pkg version and protocol version to logon handshake, test for
	  compatibility between clint and server, prompt for restart
	- add non-modal restart dialog
	- add dialog to display traceback if sealert faults with an uncaught
	  exception, try to limit invisible errors
	- fix return args on rpc method
	- add instance id to server

2006-14-09  Dan Walsh  <dwalsh@redhat.com>
	- Fix msg.decode('hex') to not translate digits
	- More translations
	
2006-13-09  Dan Walsh  <dwalsh@redhat.com>
	- Fix more plugins
	- Use regex in typeMatch code
	
2006-13-09  Dan Walsh  <dwalsh@redhat.com>
	
	- Use comm instead of exe if the exe is a shell, python or perl
	- More translations
	- Added tests and avc logs for plugin testing
	
2006-12-09  Dan Walsh  <dwalsh@redhat.com>
	
	- Change sealert to be able to be run without X-Windows display
	- It can now be run from a Web Site
	
2006-12-08  John Dennis  <jdennis@redhat.com>

	- add pkg_version to config so client and server can cross check
	  if they are running the same installation.

2006-12-08  Dan Walsh  <dwalsh@redhat.com>
	
	- Change avc_audit.py to allow it to analyze /var/log/messages
	
2006-12-05  John Dennis  <jdennis@redhat.com>

	- fix bug in update_alert_view(), siginfo.get_user_data() failed sometimes
	  because failed to check for siginfo == None

	- add right click menu in list view for common operations on alerts

2006-12-04  John Dennis  <jdennis@redhat.com>

	- Resolves: bug# 218150,
	  "If view is set to "hide delete" you cannot filter new entries"
	  Actually, the bug was toggle cell renderer was connected to the
	  base model instead of the model attached to the view, the sort
	  model, this meant the toggle was occuring on the wrong row if
	  the view was sorted differently than the base model.

	- also fix, the server was not emitting a update message when either
	  the seen flag or the filter value was modified, discovered when
	  debugging bug# 218150, and fix redundant setting of the seen flag
	  when it's value had not actually changed.

	- make default value of sealert log file be 'append' instead of
	  'write' because of the way sealert is launched, many times all
	  an invocation of sealert does is to emit a dbus message to an
	  already running copy of sealert, but in write mode each invocation
	  would truncate the log file, what really needs to happen is for the
	  log initialization code to detect if a copy of sealert is allready
	  running or only init logging under certain launch modes.
	
2006-12-01  John Dennis  <jdennis@redhat.com>

	- fix bug, "could not convert path to a GtkTreePath" when database 
	  is initially empty, caused by last_selected_row == None

2006-11-30  John Dennis  <jdennis@redhat.com>

	- Resolves: bug# 217961, sealert needs pygtk2-libglade

	- more i18n translations

2006-11-29  John Dennis  <jdennis@redhat.com>

	- Resolves: bug# 217710, date representation did not respect locale,
	  at the same time remove old date formatting code, now cruft since we
	  can't use it because it was specific to US English.

	- fix how selections are handled when rows are expunged.

2006-11-29  John Dennis  <jdennis@redhat.com>

	- add Copy to Edit menu, for copying selection from detail pane,
	  unfortunately gtkhtml2 widget does not preserve line breaks between
	  table rows.

2006-11-28  John Dennis  <jdennis@redhat.com>

	- Resolves: bug# 216936, bug# 215290, add 'Copy Alert' edit menu item

	- clean up menu items, add tooltips

	- fix printing so it will work with multiple alerts, force font to
	  monospace 10pt, display error dialog if printing fails.

	- Resolves: bug# 216908, platform and raw audit messages were not
	  wrapped to fit on page.

	- Related: bug# 216575, update i18n po files

	- bump rev to 1.8

2006-11-28  John Dennis  <jdennis@redhat.com>

	- Resolves: bug# 216941, set default folder for save operation, also
	  set default filename

2006-11-27  John Dennis  <jdennis@redhat.com>

	- Resolves bug# 216327, add menu items "toggle hide deleted", "select
	  none". Add model filter to control visibility of alerts

	- Resolves: bug# 214218, sealert with no command line arguments
	  induces startup as dbus service, this had been a regression.

2006-11-26  John Dennis  <jdennis@redhat.com>

	- Resolves: bug# 216327, rework how deletes are performed in
	  browser. Delete now marks each seleted siginfo with a delete flag,
	  expunge permanently deletes siginfo's marked for deletion, also add
	  undelete command, removed delete confirmation dialog. Modify how
	  text attributes in cell renderer are computed to allow for
	  strike-throughs of alerts marked for deletion.

	- multiple alerts can now be selected, add select all command, 


2006-11-22  John Dennis  <jdennis@redhat.com>

	- use new SELinux icon

2006-11-21  John Dennis  <jdennis@redhat.com>

	- fix missing alert interface in client

	- add error reporting dialog, add error reporting for logfile
	  scanning

2006-11-21  Dan Walsh  <dwalsh@redhat.com>
	- Fix output of avc message to match audit.log

2006-11-20  John Dennis  <jdennis@redhat.com>

	- logfile scanning finally seems to work connected to browser

	- Additional Information section of report now includes line
	  number information (if alert was generated from logfile)

	- replace database update_callback() with notify interface, a more
	  generic solution more easily shared between components

	- object implementing rpc method is now explicitly attached via
	  connect_rpc_interface() instead of walking the MRO chain with
	  magic exclusions. explicitly connecting is more flexible and
	  robust (no getting the wrong object by mistake)

	- fix handling of return args in local rpc case

	- fix signal connections between audit and logfile

	- split databae and database_properties for audit and logfile

	- fix initial connection state

	- fix lookup_local_id 

2006-11-15  John Dennis  <jdennis@redhat.com>

	- add more support for updating single rows in browser list view
	  rather than reloading everything

	- correctly handle moving selection after a delete, lots of little
	  selection fixes.

	- improve handling of ListStore model, nuke the kludgy pre-extended
          rows

	- signatures_updated() now works

2006-11-14  John Dennis  <jdennis@redhat.com>

	- Resolves: bug# 214218, sealert aborts if lang is not english, also
	  improve error handling, the actual error was not being trapped and
	  instead a subsequent error induced as a consequence was being
	  reported, which was a red herring, also fix redundant variable which
	  was used to hold the broswer window/widget instance.

	- modify how changes to the database are propagated, database
	  object now takes an update callback. Now only the database is
	  responsible for reporting changes, previously it had been the
	  caller who modified the database and then had to also know what
	  type of update to signal. Modify the 'signatures_updated' family
	  of functions and signals to pass a upated type (add,delete,modify)
	  and an item identifier, currently the local id.

	- signals to display the browser window now take an optional
	  argument to indicate what it should be displaying. This was added
	  for the case where the browser was visiting a logfile but the user
	  clicked on the alert notification icon, the browser should in this
	  instance always display the current alert, the user can use the
	  view menu to switch back to the logfile view after having viewed
	  the current alert.

	- add timeout's to status messages

	- tighten up the concept of 'visiting' in the browser, both in
	  data structure and methods, as well as status messages.

	- make sure when the 'mark_seen' event triggers in the future it
	  is bound the database that generated it, not the currently viewed
	  database. 

	- fix some debug messages which were not inside 'if debug'

	- move the signatures_updated signal to the database family of
	  objects. 

2006-11-11  John Dennis  <jdennis@redhat.com>

	- modify the RPC call mechanism so that it is possible to call a
	  local object through the RPC API without it connecting to a remote
	  object. Thus users of the RPC API can be ignorant if the object
	  they are bound to is local or remote.

	- split the RPC interface for the server into server specific
	  entry points and a new database interface. The new database
	  interface supports the browser binding to either a remote database
	  or a local instance created for logfile scanning.

	- fix how timestamps are assigned, we used to just timestamp an
	  alert when it arrived from the audit system but now with logfile
	  scanning timestamps are embedded in the logfile messages so in
	  order to display the correct time an event occurred we needed to
	  pass the timestamp read in the logfile through the pipeline.

	- create a thread in the browser for logfile scanning, perform the
	  analysis in the thread with the browser GUI bound to the threads
	  operation, display the scanning progress in the progress bar.

	- introduce the notion in the broswer of "visiting" a database, at
	  the moment one is either vising the audit database or the last
	  scanned logfile, added "View" menu and menu items to view the
	  audit database or the logfile. When visiting have the browser
	  connect to different signals. The visit mechanism still needs
	  some work.

2006-11-08  Dan Walsh  <dwalsh@redhat.com>
	- Fix startup speed by moving import lines around

2006-11-02  John Dennis  <jdennis@redhat.com>

	- begin to add notion of database binding. Name of the default
	  database changed to "audit_listener_database", previous name of
	  "database" was just to generic. Introduce a database properties
	  object. Add RPC call to bind to the default audit database. Add
	  progress bar pulsing to browser when loading database via
	  RPC. Remove vestiges of analyze_logfile() in server/RPC.

	- implement new custom GTK widget to encapsulate browser status
	  bar controls. Needed to support concept of browser "visiting" a
	  database.

2006-10-31  John Dennis  <jdennis@redhat.com>

	- Resolves bug# 213074, missing /etc/setroubleshoot directory in
	  %files section of spec file.

2006-10-28  John Dennis  <jdennis@redhat.com>

	- change parametrization of plugins, plugin.analyze() now receives
	  a avcinfo parameter with the avc and any derived information from
	  the AVC. The derived information is computed only once just prior
	  to invoking the set of plugin's. The plugin.analyze() method
	  instead of returning True/False now returns a report or
	  None. Parametrization of the report generation was also modified
	  to seperate avc info from plugin information and do perform
	  template substitution updates only when the report is updated. By
	  cleanly seperating data elements and computing informaition only
	  once we gained a 147x performance increase.	

	- add auto save functionality to database so the database is not
	  written to disk on every modification, instead the database is
	  marked as modified and after N changes or N seconds, whichever comes
	  first the database is saved.

	- add the alert count to the formatted reports, it was in the browser
	  list view but not visible when reports were generated.

	- database can now be created in temp area

	- add global flags for debug and profiling code to avoid executing
	  code which the logging facility will filter out if the logging
	  messages are not at the specified logging level.

2006-10-24  John Dennis  <jdennis@redhat.com>

	- log file parsing now approx 4 times faster

	- greatly enhance the statistics reporting capability in attempt
	  to diagnose slow log file parsing performance

	- make gathering of environmenatal information optional,
	  environment information is only relevant at the time the 
	  alert fires, not in a post processing scenario

	- clean up several places where environmental information was
	  assumed and/or was always gathered, or gathered in the wrong place.

2006-10-23  John Dennis  <jdennis@redhat.com>

	- augment XML serialization so lists can be arbitrary class types

	- pass line number information along with AVC to plugin report,
	  add line number list to siginfo, now when parsing a log file we
	  can track which lines in the log file contributed to the alert

	- add progress reporting callback to parse_audit_logfile() so that
	  will periodically emit progress information during the parsing.

	- parse_audit_logfile() now also returns 'statistics' about the
	  parsing, e.g. how many raw messages, number of events, elapsed time,
	  etc.

	- add command line option -a to sealert to analyze a log file, at the
	  moment just prints analysis to stdout, need to connect to the
	  browser.

	- introduce new python src file "analyze.py" to better organize the code
	  so that analysis code can be shared between audit monitoring code
	  and log file parsing code.


2006-10-21 Dan Walsh  <dwalsh@redhat.com>

	- Additional plugins bind_ports.py, connect_ports.py, device.py,
          mislabeled_file.py

	- Change PORTNUMBER to PORT_NUMBER

	- Fix some plugins content

2006-10-19  John Dennis  <jdennis@redhat.com>

	- add ability to sealert operate as a command line tool and to
	  lookup a local id (sealert -l <id>)

	- add sealert arg -S to start the SEAlert system independent of
	  dbus, essentially a one time stand alone application instead of a
	  service.

	- be graceful if the X windows display cannot be opened, silence
	  gtk warnings during imports, test for the existence of the display
	  before creating GUI app, exit with error status and message if
	  display cannot be opened.

2006-10-18  John Dennis  <jdennis@redhat.com>

	- modify sealert & browser so they are decoupled from dbus and can
	  be run both with and without dbus.

2006-10-16  John Dennis  <jdennis@redhat.com>

	- fix audit thread's use of exit(), it was causing just the thread
	  to exit, not the parent process, solution is for the thread to
	  call thread.interrupt_main()

2006-10-15  John Dennis  <jdennis@redhat.com>

	- fix selinux_enabled and selinux_mls_enabled so they are booleans
	  instead of the numeric value their query functions return, this
	  way their string representation will be True or False, not 0 or 1.

2006-10-14  John Dennis  <jdennis@redhat.com>

	- add doc directory, add Inkscape diagrams, add SELinux Symposium paper

2006-10-12  John Dennis  <jdennis@redhat.com>

	- clean up how rpc calls are sent, formerly error returns were
	  handled seperately as a special case leading to code duplication,
	  now every rpc interface comes with a pre-defined error_return
	  method and everything channels though a single set of routines.

2006-10-11  John Dennis  <jdennis@redhat.com>

	- implement "lookup by id", in server and client, still needs to
	  be called via command line arg

	- fix the handling of error_returns in the rpc, discovered bug
	  when testing a failed id lookup, make the error handler interface
	  a built in method since it must always be present and do not
	  require it be defined in an interface definition.	

2006-10-11  John Dennis  <jdennis@redhat.com>

	- add "Save As ..." menu item to write out selected alert as text
	  file. 

2006-10-10  John Dennis  <jdennis@redhat.com>

	- add function to merge signfo data arriving in new report with
	  the siginfo present in the database, this keeps the siginfo data
	  in the database current with the latest version of the plugin

	- remove code which tested for when the browser was visible before
	  electing to display the status icon. Now the status icon is aways
	  displayed unless the alert has been filtered.

2006-10-10  John Dennis  <jdennis@redhat.com>

	- Reimplement code that formats a siginfo into HTML and plain
	  text. There were several problems with the HTML code, it was not
	  accounting for the fact some of the content was already formatted
	  in HTML, it was not properly escaping the HTML content, it was
	  trying to insert HTML into an XML dom tree although HTML is not
	  valid XML. Part of the problem arose from the initial encoding of
	  the HTML in our XML database, it was escaping all the content when
	  it should have inserted the HTML verbatim, to accomplish this the
	  content had to be added to the XML in a CDATA section. Then
	  various parts of the code needed tweaking to change how and when
	  different data representations were handled (cleaner now). Now the
	  formatting of the siginfo in HTML is done via simple text
	  generation without trying to build a dom tree. Also reimplemented
	  formatting of the siginfo as plain text, both format_html() and
	  format_text() are methods of the signfo class instead of utility
	  routines. A very crude function was added to convert HTML to plain
	  text, at the moment it just handles HREF anchors, this is used
	  when formatting the siginfo as plain text for the components which
	  contain HTML formatting.

	- Modify the email alert generation code so email is now sent as
	  multipart/alternative with both a plain text and HTML version of
	  the siginfo data, thus if the MUA supports HTML the user will see
	  the alert information with HTML formatting, if not he sees the
	  plain text version. The subject line was augmented to include the
	  alert summary. The 'TO' information is now in the header,
	  previously it had only been in the envelope.

2006-10-03  John Dennis  <jdennis@redhat.com>

	- Resolves bug# 208221, always return true for condrestart in spec file
          scriptlet.

	- Resolves bug# 208627, we were passing 'unknown' to
          get_rpm_nvr_by_file_path()

	- if the substitution value in __set_standard_sub() is None
	  then change the substition value to '<Unknown>'

2006-10-03  John Dennis  <jdennis@redhat.com>

	- Resolves bug# 206723, file names show up as hex string, added new
	  utility, audit_msg_decode() which strips quotes off, tests
	  to see if the entire string is composed of only hex characters
	  and if so decodes it.

2006-10-03  John Dennis  <jdennis@redhat.com>

	- Resolves bug# 207252, change all references to the icon to
	  setroubleshoot_icon.png, during install whatever the actual icon
	  name is install it as setroubleshoot_icon.png, this way if we
	  change the icon file everything which references continues to
	  work.

	- change some more CamelCase to lowercase_underscore

2006-10-03  John Dennis  <jdennis@redhat.com>

	- convert code in signature.py to use true superclass and subclass
	  relationships. Carefully find everyplace a libxml2.doc and a
	  libxml2.xpath.xpathContext is created, assure they are referenced
	  once and are then freed. Eliminate any passing of node references
	  outside of the location where the doc created it, otherwise it's
	  too difficult to track where it should be freed. These changes
	  forced some structural changes in the xml serialization objects
	  and code.

	- these changes should fix bugs #204274 and bug #206626, both
	  of which refer to excessive memory use, the most likely cause of
	  would have been our complete lack of freeing libxml2 documents and
	  xpath contexts, unlike most python objects they are not ref
	  counted nor garbage collected.

2006-09-28  John Dennis  <jdennis@redhat.com>

	- add connection icon to bottom right corner of browser,
	  add utility to update it. Make sure connection status signal
	  is emitted just after the browser is realized so that the 
	  connection status is initially correct.

	- remove use of deprecated Gnome App in the glade file
	  and the GUI code

	- convert the Gnome AppBar to a GtkStatusBar, wrap it in a more
	  friendly API.

	- add GtkProgressBar

	- remove the seen column, instead change the font properties on
	  the line (to bold) if the alert has been seen. Add cell data
	  functions for all text cell renderers so that font properties
	  can be computed per cell based on the seen flag.

	- set the progress bar during data loading, set the status
	  during loading, add error callback on data loading to update
	  the progress and status if loading fails.

2006-09-28  John Dennis  <jdennis@redhat.com>

	- add "toggle" to set of supported column types in tree view,
	  connect the "Filter" column to toggle events.

	- connect the filter toggle event to RPC updating database

	- change column indexing to 1-to-1 mapping with tree model.

	- add utility to get the tree cell on a button click (replaced
	  by superior built-in toggle cell renderer).

2006-09-27  Dan Walsh  <dwalsh@redhat.com>
	- Change close key binding to ctrl-w

	- Add new plugins cvs_data, rsync_data, xen_image, swapfile,
          samba_share

2006-09-27  John Dennis  <jdennis@redhat.com>

	- clear the GUI of old data before loading new data,
	  fix the code used to display the filter icon in the filter column

2006-09-26  John Dennis  <jdennis@redhat.com>

	- add a column to the browser for the filter_type

	- add utility function preextend_list() to create a list of known
	  size, and optionally initialize the elements. This is needed for
	  cases where we want to assign to a list index in random order,
	  we had been using insert() but this only works when insert() is
	  called in sequential order starting at 0, which is effectively
	  the same thing as append(). All use of insert() was replaced.

2006-09-26  John Dennis  <jdennis@redhat.com>

	- browser now shows pending duration till connection retry
	  attempt. When connection is lost the data in the view is 
	  cleared. Better status messages on connection state. Clean up
	  improper use of traceback.format_exc() in conjunction with
	  logging.exeception(), which provides the traceback as a service
	  to the caller.

2006-09-26  John Dennis  <jdennis@redhat.com>

	- add connection state status to browser appbar, fix problem with
	  ProgramError exception, it had been mistakenly defined in two places.

2006-09-25  John Dennis  <jdennis@redhat.com>

	- Major rewrite of the client/server RPC code, all RPC definitions
	  are created with python decorators in an abstract class, all rpc
	  is now completely asynchronous and event driven from a centralized
	  event loop. There are four classes of RPC calls: methods, method
	  callbacks (for returning values from a method call, signals, and
	  error callbacks. Methods return values via an independent callback
	  with its own parameter signature independent of the parameter
	  signature of the method. Each parameter in an RPC call is now
	  tagged via a python decorator with its python class and conversion
	  to the proper object type is performed automatically by the RPC
	  mechanism. This includes conversion to complex nested
	  objects. The users of the RPC mechanism no longer need to be
	  aware the underlying transport is XML.

	- Error handling has also been cleaned up, a new generic
	  ProgramError exception class was introduced containing an error
	  code and a message. All exceptions and other errors should converted
	  to a ProgramError and raise that instead. If a ProgramError is
	  caught during an RPC invocation then an error rpc signal is
	  emitted which is matched to the rpc in progress. The rpc caller
	  can add an error callback handler to receive the error or allow
	  the default handler to be invoked (which just logs the error).

	- The handling of client/server communications and connections has
	  been cleaned up, better centralized, and refactored into cleaner
	  object classes. All connection objects (now called channels) have
	  connection state callback registered with them. Whenever a change
	  in the connection occurs the callback is invoked. Thus an object
	  owning a connection can monitor the status of the connection,
	  and specific actions when the state changes. The superclass
	  connection objects perform standard actions on connection state
	  changes leaving the subclassed connection object to handle only a
	  minor subset when the state of the connection changes. In
	  particular when certain connection objects see the state change to
	  closed it will queue a connection retry event with computed retry
	  intervals. This allows the server and clients to start and stop
	  independently and asynchronously and to resynchronize themselves
	  gracefully. Also, monitoring for the connection open state allows
	  for objects to know when they can make RPC calls.

2006-09-11  John Dennis  <jdennis@redhat.com>

	- fix bugs related to recording per user per signature filtering

2006-09-07  Karl MacMillan <kmacmill@redhat.com>

	- Add signal handling to client and server.

	- Fix minor plugin bugs.

2006-09-06  Karl MacMillan <kmacmill@redhat.com>

	- Add rpm information for target.
	- Add hostname and uname to signature info
	- Add display of the full AVC
	- Add display of the analysis id
	- Change html generation to be separated out and us elemmenttree

2006-09-06  John Dennis  <jdennis@redhat.com>

	- add CommunicationChannel class to encapsulate data transfer
	  operations, in particular to provide an object threads can lock
	  during data transfer.

2006-09-06  John Dennis  <jdennis@redhat.com>

	- checkpoint the logfile scanning code, somewhat working

2006-09-06  John Dennis  <jdennis@redhat.com>

	- add rules to Additional Information HTML table and set the column
	  width to 30% for first column, however, the HTML renderer we're
	  using does not seem to respect these values, works fine in firefox.

2006-09-05  John Dennis  <jdennis@redhat.com>

	- fix reference to SELinux_48.png in glade file

	- clear the rpm list in plugin.prepare() to avoid a running tally
	  of rpm's

	- introduce a database directory, rather than just a database file

	- add a 'database' logging category

	- several bug fixes related to signature lookup.

	- AvcContext string function now returns string which looks like how
	  it appears in an AVC message

2006-09-03  John Dennis  <jdennis@redhat.com>

	- Refactor much of the code in server.py and dispatcher.py (now
	  subsumed into server.py). Goal was to establish a much cleaner
	  data flow with objects handling a single task in isolation from
	  other components, especially with regards to
	  networking/communications. We now have a model whereby AVC's can
	  enter the system from a variety of sources, multiple sockets,
	  files, etc. When the AVC enters the system it is associated with a
	  "report receiver", the <AVC,receiver> pair is then passed to the
	  plugin manager. When a plugin decides to emit a report based on
	  that AVC the report is given to report receiver which traveled
	  along with the AVC. The report receiver now encapsulates the
	  database and subclasses of that add functionality to broadcast
	  alerts to interested clients. By cleaning up the object
	  relationships and implmenting a better class hierarchy we're now
	  in a much better position to offer advanced features because of
	  the more modular design, the first of which is log file scanning.

2006-09-01  Dan Walsh  <dwalsh@redhat.com>
	- Printing works at least in text mode

2006-09-01  Dan Walsh  <dwalsh@redhat.com>

	- Fix notification window so it does not come back if seen, and
	  only one gets generated.  All disappear after a couple of seconds.

2006-08-31  John Dennis  <jdennis@redhat.com>

	- dispatcher.py: rework how audit messages injected into the
	  system and processed. Much of this work was in support of log file
	  scanning which should be coupled to the exact same processing code
	  as audit messages arriving from the audit socket. In essence log
	  file scanning synthesizes an audit message and we inject it into
	  the system the same way socket messages are injected. This was
	  also an excellent moment correctly handle out of order audit
	  messages, something we were not able to handle previously. This
	  may have been contributing to splitting what should have been a
	  single alert into two or more separate alerts because we didn't
	  recongize the incoming audit events as a single event. Correctly
	  assembling out of order messages introduced a fair amount of extra
	  complexity as we now maintain a cache of recent audit events, this
	  is fully documented in dispatcher.py

	- Turn notifications back on by default.

2006-08-30  Karl MacMillan <kmacmill@redhat.com>
	- Separated out HTML rendering and made it easier to translate.

2006-08-30  Dan Walsh  <dwalsh@redhat.com>
	- Hook up the rest of the menu bars on browser window
	- Add public_content.py plugin

2006-08-30  John Dennis  <jdennis@redhat.com>

	- add delete_signatures() method to AlertClient class

2006-08-28  John Dennis  <jdennis@redhat.com>

	- remove duplicate msgid's from po/hr.po. I'm not entirely sure I did
	  this correctly, but the package wouldn't build because of this and
	  now at least it builds

2006-08-27  John Dennis  <jdennis@redhat.com>

	- start using the AppBar in the browser.

	- "open logfile" now connected all the way from browser menu
	  to server rpc, still needs implementation, but "plumbing" is working.

	- fixes for the date/time dialog

	- remove install of setroubleshoot.glade, we now only use
	  setroubleshoot_browser.glade

2006-08-26  John Dennis  <jdennis@redhat.com>

	- some fixed to DateTimeDialog

2006-08-25  John Dennis  <jdennis@redhat.com>

	- add FileChooserDialog and DateTimeDialog to gui_utils.py
	- add rpc delete_signatures()

2006-08-25  Dan Walsh  <dwalsh@redhat.com>
	- Added SELinux_128.png to make status icon work.

2006-08-25  Dan Walsh  <dwalsh@redhat.com>

	- Adding catchall plugin to grab any avc that does not get caught and
          ask for a bug report

	- Adding home_tmp_bad_labels plugin which says that confined domains
	  trying to access home_t labeled files, probably means they were
	  mislabeled and moved "mv" to the system directory.

2006-08-23  John Dennis  <jdennis@redhat.com>

	- add sorting on category column and seen column in browser,
	  fix reference to my_draw() in print function.

2006-08-23  John Dennis  <jdennis@redhat.com>

	- make browser window hidden by default so it does not flash
	  when it's first realized, connect to the "realize" signal to
	  initially position the vpane, add signal handlers to track
	  when the browser is visible, the presentation of the status
	  icon now checks if the browser is visible, the status icon is
	  not presented if the browser is already displayed.

2006-08-23  John Dennis  <jdennis@redhat.com>

	- remove all vestiges of popup alert, now browser is the only
	  UI game in town

2006-08-23  John Dennis  <jdennis@redhat.com>

	- restore the automatic updating of the browser window which had
	  been a regression, the AlertClient class now emits signals which
	  the GUI classes can connect to receive signals from the fault server,
	  also fix the "mark seen" regression

2006-08-23  John Dennis  <jdennis@redhat.com>

	- browser.py: restore mark_seen timeout

2006-08-23  John Dennis  <jdennis@redhat.com>

	- the config file now has seperate sections for logging for each
	  process so that logging parameters can be set per process, also
	  added a filemode property so the log files could be opened in
	  replace or append mode.

	- add new python module to generate UUID'S, now the local_id is a UUID
	  rather than a sequence number. This corrects for the problem that
	  sequence numbers are reset when databases are recreated and the
	  problem that sequence numbers are unique only within the database.

	- add separate section of database for user data (should really be
	  separate database file), per user data now includes the email
	  alert flag and a list of email addresses to send to, this is a
	  much better place for this info that was the prior location in the
	  config file. The database may now support per user data, but the
	  email system has not been hooked up to it yet.

	- add a PropertySet class for xml serialization, decided not to
	  use it for the time being, seems difficult validate the contents
	  when its members are not defined, if one defines the members you
	  lose the appeal of the PropertySet, one might just as well refer
	  directly to the object member.

	- remove src/cgi-bin and src/css src/images cruft

	- fix CamelCase in the xml object names

2006-08-23  Dan Walsh  <dwalsh@redhat.com>
	-  Fix dbus launch, so it will start sealert if not running

	-  Spell check all plugins

2006-08-23  Dan Walsh  <dwalsh@redhat.com>

	- Add avc_syslog plugin which just puts translated AVC summary in
	  syslog

2006-08-23  John Dennis  <jdennis@redhat.com>

	- fix signature inflation, all data attached to a signature is now
	  encapsulated in a SEFaultSignatureInfo (siginfo) class. The GUI no
	  longer reaches into a signature looking for information, it looks
	  in the siginfo. The Plugin class now defines the method
	  get_signature() which report() calls to obtain the signature. The
	  default signature provided by the Plugin class includes the
	  analysisID, an AVC with just the src & target contexts, and the
	  object_path. All data accesses and parameters which had been "sig
	  and solution" are now done via the unified siginfo class. There is
	  still a bit more work to be done on this but this represents a
	  reasonble point to checkpoint the code in CVS.

2006-08-22  John Dennis  <jdennis@redhat.com>

	- Resolves bug# 203479, missing requires of audit-libs-python

2006-08-22  Karl MacMillan  <kmacmill@localhost.localdomain>

	- Changed browser to use refactored AlertDisplay widget. This
	  required some large changes to the gui code.

	- Added sealert main application class.

	- Changed classes in sealert to remove inter-dependencies and use
	  signals for communication.

2006-08-21  Dan Walsh  <dwalsh@redhat.com>

	- add translations to spec file

	- fix allow_execmem 

2006-08-21  John Dennis  <jdennis@redhat.com>

	- add support to sealert to listen on a dbus session signal to display
	  the gui. This is needed for when the status icon is not visible and
	  the user wants to see the UI. There is now a seperate program
	  setroubleshoot_launch_gui which emits the signal.

2006-08-21  John Dennis  <jdennis@redhat.com>

	- load_plugins() now catches exceptions when a plugin won't load,
	  reports the traceback in the log file, and continues with the next
	  plugin. Previously a bad plugin caused the entire plugin loading
	  to abort and no plugins were loaded.

	- Add "daemon_name" to automake variables, change pid file to match

	- turn off "noreplace" on config file till things settle down a bit

	- browser.py now validates data, also test for missing column data in
	  the cell_data function to avoid exceptions.

	- add stub for analyzie_logfile() rpc call

	- turn off balloon notifications by default in config file,
	  libnotify is just plain busted at this point :-(

	- only the setroubleshootd daemon creates it's log file
	  under /var/log now, the user app's do it in /tmp, change file
	  permissions on /var/log/setroubleshoot back to 0644.

	- sealert now looks up the username rather than hardcoding it to "foo"

	- CamelCase to lowercase_underscore clean up

2006-08-21  Dan Walsh  <dwalsh@redhat.com>
	- Serious runaway process in 64 bit programs.
	  sealert was constantly reconnectiong 

2006-08-20  John Dennis  <jdennis@redhat.com>

	- coalesced the browser and alert popup GUI. now sealert is mostly
	  communications and management of the status icon. The browser and
	  alert popup were broken out into their own applet classes. The 
	  file alert_applet.py was added, the browser applet class remains
	  in the file browser.py. A common GUI utility file was added,
	  gui_util.py which the applets share code with. The status icon
	  now fully support the right click menu to bring up either the 
	  alert popup or the browser.

2006-08-20  Dan Walsh  <dwalsh@redhat.com>
	- Add missing runcmd

2006-08-18  John Dennis  <jdennis@redhat.com>

	- add rpc signatures_updated() to signal the browser needs to refresh

2006-08-18  John Dennis  <jdennis@redhat.com>

	- more CamelCase name changes

2006-08-18  John Dennis  <jdennis@redhat.com>

	- change set_filter functon in server to use new utility
	- lookup_signature clean up more CamelCase names

2006-08-18  John Dennis  <jdennis@redhat.com>

	- add rpc call set_user_data, browser now calls this to set
	  the seen_flag, change some of the CamelCase identifiers to
	  lowercase_underscore

2006-08-18  John Dennis  <jdennis@redhat.com>

	- no longer hardcode the pid file, make it configurable

	- fix the umask setting when the daemon starts to be more secure

2006-08-18  John Dennis  <jdennis@redhat.com>

	- browser.py: now loads data from server

	- server.py, client_server.py: add QueryAlerts rpc call

	- server.py: move database into its own global singleton object,
	  add (back?) first_seen, last_seen, report_count, setting on each
	  signature, looks like that got lost somehow in a CVS merge :-(

	- signature.py: change parseMemory to parseDoc, gracefully accept
	  xml node without a doc.

2006-08-16  John Dennis  <jdennis@redhat.com>

	- fix log file, now there is a seperate log file for each process,
	  the log dir is now world writable (does this mean we have to move it
	  from /var/log/?), the logrotate script was updated, change the 
	  default logging level from error to warning.

	- dispatcher.py: get parameters from config file instead of hardcoding,

	- sealert: add config variable to control if we use balloon
	  notifications

	- fix exception which was occuring in LoadPlugins

2006-08-16  John Dennis  <jdennis@redhat.com>

	- change umask from 0 to 0022 in setroubleshootd so pid file
	  is only writable by root

2006-08-14  Karl MacMillan  <kmacmill@localhost.localdomain>

	- Change src/sealert to render information in html and simplified GUI.

2006-08-10  Dan Walsh <dwalsh@redhat.com>
	- Remove setroubleshoot_dispatcher
	- add html tag support

2006-08-08  John Dennis  <jdennis@redhat.com>

	- add "category" to plugins

	- Resolves bug# 201719, minor spec file tweaks.

2006-08-08  Dan Walsh <dwalsh@redhat.com>
	- Fix up handling of mls ranges in context
	- Cleanup some pychecker errors

2006-08-07  John Dennis  <jdennis@redhat.com>

	- add first seen, last seen, and report count to alert detail view

	- make the seen icon work, if the alert has been displayed more
	  than N seconds, mark the alert as having been seen by the user
	  and update the icon is the list view

	- change the schema for the xml data; the database now has a version,
	  there is a local id attached to each signature, the filter list in
	  the siginfo was replaced by a list of per user data, the per user
	  data now contains the filter, seen_flag. Modify all the code which
	  was operating on the filter information to use the new model.

	- fix the xml serialization so that booleans can be used as a basic
	  type and also so that non-string types can be used in element
	  attributes (e.g. int, bool) and the serialization code will
	  automatically convert between python types and strings.

2006-08-04  John Dennis  <jdennis@redhat.com>

	- clean up and rework the timestamp code in util.py so that
	  time zones are handled properly, there were a number of bugs.
	  Hopefully it's correct now because timezone handling is a pain.

	- change the time format in the browser so all times are displayed
	  identically, the friendly time relative format was hard to compare.

	- modify the plugin 'make install' to delete all existing plugin's
	  prior to installing the new ones

2006-08-03  John Dennis  <jdennis@redhat.com>

	- add popup menu to status icon to choose between browser and
	  alert GUI (not fully connected yet). Several bug fixes related
	  to changing the filter_type from a string to an int.

2006-08-03  John Dennis  <jdennis@redhat.com>

	- add filter selection to bottom pane, change filter_type from
	  string to integer constant. Enhance how columns are handled.
	  Get init_combo_box to work. Remove unused RPM and Bugzilla
	  fields from bottom pane. Modify the default size of the browser
	  window. Fix missing import in util.py.

2006-08-03  John Dennis  <jdennis@redhat.com>

	- add ability in broswer to sort on columns, initially the report
	  count column and the last seen date column. The date column now
	  stores a TimeStamp object instead of a string. Add new method
	  to TimeStamp to return a friendly string relative to the current
	  time. The date column in the browser now has a cell data function
	  which invokes the friendly format method of the TimeStamp object.

2006-08-02  Dan Walsh <dwalsh@redhat.com>

	- Change interface to use audit unix domain socket

2006-08-02  John Dennis  <jdennis@redhat.com>

	- add ability fo serialize to/from xml for classes which can
	  inititialized from strings and serialized as strings (e.g. numbers,
	  TimeStamps, etc.)

2006-08-01  John Dennis  <jdennis@redhat.com>

	- add count of how many times a signature is reported, the date
	  when first and last reported, add columns for report count and
	  last date count to browser.

2006-08-01  John Dennis  <jdennis@redhat.com>

	- checkpoint browser code, list pane and detail pane now working.

2006-08-01  John Dennis  <jdennis@redhat.com>

	- add initial support for browser applet, move some functions which
	  kept getting reused to util.py

2006-08-01  Dan Walsh <dwalsh@redhat.com>

	- Fix disable_trans.py set_boolean call

2006-07-31  John Dennis  <jdennis@redhat.com>

	- add reporting of environment to email alert (email alerts still
	  need work)

2006-07-28  Dan Walsh <dwalsh@redhat.com>

	- Complete all boolean plugins except disable

2006-07-28  John Dennis  <jdennis@redhat.com>

	- modify SetFilter in server to return errors instead of
	  throwing an exception. Default the filter list on each alert display.

2006-07-27  John Dennis  <jdennis@redhat.com>

	- minor tweaks to alert queue handling

2006-07-27  John Dennis  <jdennis@redhat.com>

	- fix analyze() parameter list in ftp_is_daemon.py plugin

2006-07-27  John Dennis  <jdennis@redhat.com>

	- sealert now responds to pending alerts more correctly, it shows
	  how many pending alerts are in the queue, if you filter the pending
	  alert status is updated, the next alert button will advance you
	  to the next alert in the queue

	- simplify major pieces of sealert by coalescing common code
	  into subroutines.

2006-07-27  Dan Walsh <dwalsh@redhat.com>
	- Make Close button work.
	- Make setroubleshoot_dispatcher exit if it gets an avc about itself

2006-07-26  Karl MacMillan  <kmacmill@localhost.localdomain>

	- Fixed user string handling in plugin class - moved initialization of
	  Plugin.__init__.
	- Add generic templating mechanism to Plugin
	- Ported all plugins to use templating mechanism

2006-07-25  Dan Walsh <dwalsh@redhat.com>
	- Simplify plugins by using TARGET_PATH and SOURCE_PATH constants and
	  moving the processing  of the avc to to Plugin.py
	- Fix setroubleshoot_dispatcher to ignore granted
	- Fix sealert to handle initial startup without setroubleshoot running

2006-07-25  John Dennis  <jdennis@redhat.com>

	- Add close button per suggetion of desktop group, add a pending alert
	  message area and a next button which will be active if there are
	  pending alerts after this one. This is to try and address the 
	  situation where after dismissing the current alert you immediately
	  get a new alert, not only is this annoying but its very hard to tell
	  you're advancing to the next alert instead of just thinking there is
	  something wrong with the dismissal of the dialog box, only careful
	  examamination would reveal its a different alert. Plus we probably
	  don't want the dialog box popping up and down and notification
	  balloons firing when there is a pending alert to display after
	  dismissal of the current alert.

2006-07-24  John Dennis  <jdennis@redhat.com>

	- fix parts of the SetFilter server method

2006-07-24  John Dennis  <jdennis@redhat.com>

	- edit the TODO list

	- move sealert to /usr/bin from /usr/sbin

	- add RPC method: EvaluateAlertFilter

	- fix 2 bugs in rpc command buffering, off by one bug on buffer update,
	  dispatching was done before command buffer data structure was
	  updated, on rentry this caused infinite loop

	- add alert queue to sealert, now when alert messages arrive from
 	  server they are queued, if the alert is not being displayed the alert
	  is dequeued and displayed. When the current alert is dismissed by the
	  user, the queue is ckecked, if not empty the next alert is displayed.

	- when preparing to display an alert the server is called to 
	  evaluate the filtering on the alert. Previously the filter was
	  evaluated in the server prior to sending the alert, however that
	  will not work if the user elects to filter the alert and the same
	  alert fires before he sets the filtering, it would then be in the
	  display queue even though it should be filtered, moving the decision
	  to filter to just prior to display will handle the case where the
	  same alert fires in succession and the user elects to filter the
	  first instance. It also accomodates the case where the filtering
	  is modified by an another agent on the server, e.g. the browsing
	  applet.

2006-07-24  John Dennis  <jdennis@redhat.com>

	- bump version to make release

2006-07-24  Dan Walsh <dwalsh@redhat.com>
	- Fix sealert to sleep for 5 seconds and then attempt reconnect
	  eliminate infinite loop when setroubleshoot goes away
	- Change logrotate script to eliminate bad endscript
	- Remove debug message from setroubleshoot_dispatcher

2006-07-24  John Dennis  <jdennis@redhat.com>

	- Introduce the concept of "privileges" for authorization 
	  after authentication. Once authenticated, does user have the
	  privilege to perform the action? Needed to seperate authorization
	  to connect to server to get information vs. authorization to
	  perform a root level "fix command"

2006-07-22  Dan Walsh  <dwalsh@redhat.com>
	- More fixes to plugins
	- Cleanup helper functions

2006-07-21  Dan Walsh  <dwalsh@redhat.com>
	- Fix problem in dispatcher

2006-07-21  John Dennis  <jdennis@redhat.com>

	- add email alerts

	- stop the status icon from blinking, add notification balloon.

2006-07-21  Karl MacMillan  <kmacmill@localhost.localdomain>

	- Added more plugins.

2006-07-20  Dan Walsh  <dwalsh@redhat.com>
	- Added more plugins
	- Updated POTFILES

2006-07-20  Karl MacMillan  <kmacmill@localhost.localdomain>

	- Added more plugins.

	- Changed some of the avc.*Match* functions for consistency and
          clarity.

	- Added very simple templated to the messages returned by plugins.

2006-07-19  Dan Walsh  <dwalsh@redhat.com>
	- Added a bunch more plugins

2006-07-19  Karl MacMillan  <kmacmill@localhost.localdomain>

	- Add allow_cvs_read_shadow.py, allow_ftp_use_cifs, allow_ftp_use_nfs,
	  and allow_gssd_read_tmp.
	- Change AVC to have additional helpers for matching messages.
	- Change Plugin to work better with more than one solution.

2006-07-19  Dan Walsh  <dwalsh@redhat.com>

	- Fix setroubleshoot_dispatcher to catch all information from avc.
	  Much cleaner interface and no longer uses audit2allow cruft.

	- Remove toolbar from popup window since it did nothing, and I think
	  it looks better without it.

	- fix allow_execmod plugin to report better data.

2006-07-18  John Dennis  <jdennis@redhat.com>

	- modify sealert to display a status icon and only bring up the
	  popup dialog after the icon is clicked on.

	- add autotool support for internationalization

	- move the database from /var/run/setroubleshoot to
	  /var/lib/setroubleshoot

	- add and install desktop files and autostart files to enable the
	  alert display automatically

	- add logo png file

2006-07-17  Karl MacMillan  <kmacmill@localhost.localdomain>

	- Add getCred to get the uid / gid of the client
	  program on connect in server.py.

	- Add access_control.py to provide basic access control
	  to the server based on the configuration file.

	- Add calls into access_control.py to the server. Basic
	  access control now works based on the configuration file.

	- Add 'access' section to the configuration file for
	  access_control.py.

	- Fix log.py to not fail if the user does not have access
	  to the default log file. Allows sealert to be run by a
	  non-root user.

	- Add HACKING to capture basic notes on changing setroubleshoot.

2006-07-14  Dan Walsh  <dwalsh@redhat.com>
	- Changed default port to 3267 (My UID) Until we get a permanant one

	- Change location of database.xml to
	  /var/run/setroubleshoot/database.xml for easier selinux policy

	- Change setroubleshootd to write out its pid file

2006-07-14  John Dennis  <jdennis@redhat.com>

	- add these requires to spec file: pygtk2, gnome-python2-libegg

	- update the TODO list

	- numerous small tweaks to get audit dispatching working, rename
	  avc_snap to setroubleshoot_dispatcher and move to /usr/lib/audit

2006-07-13  Dan Walsh  <dwalsh@redhat.com>
	- Fix default.py and add httpd_connect_db.py

2006-07-11  Dan Walsh  <dwalsh@redhat.com>
	- Add additional troubleshoot plugins

2006-07-07  John Dennis  <jdennis@redhat.com>

	- add cmd_job.py, beginning basis for running commands on server
	  at the request of a client, each job runs in its own thread with
	  callbacks for asynchronous stdout,stderr io and command termination.

2006-07-06  John Dennis  <jdennis@redhat.com>

	- add seperate formatter for syslog messages that includes the
	  package name, remove the 'log_' prefix from the log name, however
	  the logger object is still prefixed with 'log_', spruce up the
	  default log format.

	- add "Requires: audit" to spec file, fix error logging bug in
	  Plugin.py when it could not connect to the fault server, tweak
	  format strings in socket error messages, rename the root logger in
	  log.py and hide it inside the module, it shouldn't be visible, fix
	  the address the SysLogHandler opens to talk to syslogd, it had
	  been localhost:514/udp but apparently its a UNIX domain socket at
	  /dev/log which is not Python's default in its logger module (that
	  one took a little while to figure out :-)

	- The analysis plugin's now also perform a logon operation
	  when registering a fault.

2006-07-05  John Dennis  <jdennis@redhat.com>

	- make autogen.sh correctly report configure arguments, do a
	  better job handling when socket connections fail, add code to
	  track the set of connected clients and remove them when they
	  disconnect. Replace the use of 'identity' with a Logon command
	  providing the type of client, the username, and a
	  password. Simplify the manner in which RegisterProblem is called
	  in ipc, this will be a model for other ipc calls to come later.

2006-06-29  John Dennis  <jdennis@redhat.com>

	- Complete the implementation of the MultiServer, a server object
	  which permits multiple servers to be run on multiple ports from a
	  single process with threading. Was able to significantly condense
	  the code from the previous checkin by finding ways to utilize the
	  exisiting python library functions, its much cleaner now.

2006-06-28  John Dennis  <jdennis@redhat.com>

	- Implement new server which can listen on multiple ports and
	  serve the client in a seperate thread. This is necessary to
	  support both communication on the fault server port and http
	  protocol on an http port, both connected to the same server. This
	  checkin is a checkpoint, the code in server.py is hacked up, but
	  works, a subsequent checkin will clean it up and recast it as
	  classes that will integrate better with the python SocketServer
	  classes from which the current code is derived. The SocketServer
	  classes only support a single port :-(. This checkin also includes
	  changes to the configuration file to separate the fault server and
	  http server configuration parameters as well as adding support for
	  console logging.

2006-06-27  John Dennis  <jdennis@redhat.com>

	- fix bug where xml passed as a string to the rpc cmd argument was
	  being escaped, now rpc cmd argument is passed xmlNode. Remove
	  __pyClass element attribute, it is not necessary.

	- add target to top level Makefile to make CVS tag, restore
	  pkglibexecdir variables, consolidate makeCmd/SendCmd logic,
	  formalize the rpc interfaces, remove the AlertMsg class now that
	  we can pass individual parameters in rpc.

2006-06-26  John Dennis  <jdennis@redhat.com>

	- add missing /var/log directory %files section in spec file and add
          logrotate script

	- Implement better framework for RPC call, from introspection can
	  now automatically detect function/method argument lists, will
	  build xml document for arguments and intelligently import dom tree
	  when an arg is xml. On the receiving side it unpacks the xml and
	  invokes the command. The need for individual functions to be aware
	  of their role in RPC is being eliminated. Still a little bit more
	  work to be done in this area.

	- Remove OK button, Reset All Filters button from GUI, fix
	  @guidir@ in Makefile.am, add missing close() method to server

2006-06-24  John Dennis  <jdennis@redhat.com>

	- clean up autotool files and spec file to produce a clean rpm

2006-06-23  John Dennis  <jdennis@redhat.com>

	- major clean up of debug messages, config.py now exports a list
	  of available logging categories, each category has a logging
	  object created for it which is exported by log.py. The config file
	  can set whether a category is logged, and at what verbosity level
	  it is logged at. When the config file is generated it lists the
	  currently available logging categories. All debug print statements
	  changed to use one of logging objects. Carefully avoid circular
	  references between config.py and log.py, also assure config.py can
	  geneate the default config file without needing any installed
	  module so that things work correctly in a buildroot.

2006-06-22  John Dennis  <jdennis@redhat.com>

	- fix the plugin filtering to use shell globs, fix the cmd line arg

	- install setroubleshoot.init into /etc/init.d

	- relocated the gui files (eg: glade) to "gui" under package data dir

	- relocated the plugin dir to "plugins" under package data dir

	- remove debug.py and replace with log.py which uses native python
	  logger library, create intitial set of logger object, add basic
	  logging configuration to config file, in addition setup so errors
	  are also logged to syslog

	- add plugin filter option to setroubleshoot to control which
	  plugins are loaded. It's a regular expression, give the full name
	  for an exact match, or any reg exp to pick a set of plugins

	- add an option to setroubleshootd to prevent forking

2006-06-21  John Dennis  <jdennis@redhat.com>

	- fill out the config file, define a table of defaults, write
	  utility to dump default config file, modify make target to
	  automatically generate default config file, modify all code to
	  query config options rather than binding to hardcoded values.

2006-06-21  Dan Walsh  <dwalsh@redhat.com>
	- Added Plugin class to be used by all plugins and simplify writing of
	  plugins.

2006-06-21  Dan Walsh  <dwalsh@redhat.com>
	- add initscript and change setroubleshootd to be a daemon
	- Change avc_snap to sleep for 2 seconds
	- tagged as V-0-10

2006-06-20  John Dennis  <jdennis@redhat.com>

	- add config file (/etc/setroubleshoot/setroubleshoot.cfg),
	  add initial parsing of config file

	- add debug.py module

	- add Copyright notices

	- Major rewrite of the client/server code. Eliminate dependence on
	  dbus. Reimplement the server as a concurrent server handling each
	  client connection in it's own thread. Clients now connect,
	  announce their intended use of the server and pass rudimentary
	  identity information (still need to flesh out full logon
	  mechanism). Both client and server now support both asynchronous
	  and synchronous bidirectonal communication, all message
	  communication now returns a result, results are paired with a
	  command identifier. All socket I/O now supports arbitrary sized
	  reads/writes, command messages are buffered until a full message
	  is received, multiple messages can arrive in a single socket read
	  and be dispatched correctly. Communication endpoints now have
	  dispatch tables to map a command method into a callable
	  object. This checkin returns us to a state of user functionality
	  previously available (start server daemon, alert listner GUI,
	  plugin analysis). After such a major rewrite there remain many
	  small nits which need attention, but best to checkpoint working
	  code now.

	- Merge in Dan's change to the socket path, now part of configure
	  and config.py

2006-06-15  Dan Walsh <dwalsh@redhat.com>

	- Change communications path to use /var/run/setroubleshoot
	- Change to use selinux-policy-type and selinux-policy-rpm
	- Make avc_snap work

2006-06-13  Dan Walsh <dwalsh@redhat.com>

	- Rename ftpd.py plugin to ftpd_upload.py
	- added ftpd.py plugin which detects when someone tries to log-in
          to a users homedir

2006-06-10  John Dennis  <jdennis@redhat.com>

	- put framework in place in browse cgi script to asynchronously
	  update filter setting. Add UpdateFilter cgi script, backend of
	  AJAX update filter action. Checkpoint work in progress...

2006-06-09  John Dennis  <jdennis@redhat.com>

	- add new javascript function to create xmlHttpRequest object in
	  browser agnostic manner

	- add filter selection to table

	- add images directory and SELinux logo for use web browse page

	- added src/cgi-bin src/css directories for cgi scripts and
	  stylesheets respectively

	- Add SELinux Logo (Tux with a shield, courtesy of Diana Fong) to
	  GUI

	- remove "Alerts" tab from GUI, this info will now be provided by
	  HTTP browsing.

	- remove "Cancel" button from GUI, it was meaningless.

	- Rewrote webserver.py to use base python modules to serve regular
	  files and cgi scripts, removed my hacky attempt at the same.

	- add cgi script to browse the database

	- remove use of xsl to generate browse page, now done with cgi

2006-06-08  John Dennis  <jdennis@redhat.com>

	- checkpoint current version of the webserver just so I don't lose
	  things. Been experimenting with AJAX and XMLHttpRequest, currently
	  have a local copy of ajax.html and ajax.css based on classic
	  example from OReilly that is working.

2006-06-06  John Dennis  <jdennis@redhat.com>

	- add initial support for select processing of filter value
	- implment post handler
	- add webserver.py
	- add xsl database translation (database.xsl)

2006-05-31  John Dennis  <jdennis@redhat.com>

	- modify data structures and method parametrization to allow the
	  list of xml names to be optionally passed rather than hardcoded
	  into the class via __xmlInfo. This is setup work for the next step
	  of writing a query mechanism which passes its own list of names.

	- add support for "Reset All Filters"

	- add SplitRpmNVR() utility, fix bogus use of epoch in NVR, add
	  support for filtering by RPM watch list (both policy rpm and
	  faulting pkg rpm). Successfully test rpm version filtering.

	- add identity registration to sealert client, add client list in
	  server, add TimeStamp function to evaluate Past/Future status, add
	  EvaluateFilter() method to decide if alert should be
	  posted. Successfully test time based alert filtering. 

	- add utilities to update the filter list, change filter_type from
	  int to string to avoid XML representation problems, can now pass
	  and update all the filter modes from the GUI to the database and
	  serialize the database. Update the definition of a filter to
	  include RPM's as well as date/time triggers.

2006-05-30  John Dennis  <jdennis@redhat.com>

	- add initial support for the server's HandleSetFilter function

	- fix object comparison functions

	- add FindProgram(), searches known program locations for a match,
	  returns full path. Modify plugin.ftpd.py to lookup up rpm based on
	  avc.comm entry using FindProgram

	- remove 'solution' element from signature, they should be independent

	- add setroubleshoot bin script to iterate over log files

	- change context class to full XML AvcContext class
	- add ParseAVC utility

2006-05-26  John Dennis  <jdennis@redhat.com>

	- add the ftpd plugin

	- populate the rpm list in the GUI

	- add query for platform and kernel

	- populate environment info in GUI, populate object path in GUI

	- change parameters on dbus alert signal

	- update "test" in sealert to reflect new parameters

	- add update status to GUI, add environment info to glade

2006-05-25  John Dennis  <jdennis@redhat.com>

	- remove obnoxious need to pass obj name to object constructor

	- rewrite parts of the XML serialization code so that element
	  names can be divorced from their python class, add element
	  attribute __pyClass to store the python class name. Change python
	  class member names from class type to a more meaningful "variable
	  name".

2006-05-24  John Dennis  <jdennis@redhat.com>

	- add Menus to alert window

	- fix hide/delete behavior, now the alert process does not exit,
	  just the window is removed from the display.

	- Major rework of alert window, now tabbed notebook, add rpm list,
	  bugzilla list, querry bugs, submit bug, alert review

2006-05-23  John Dennis  <jdennis@redhat.com>

	- add support for DATA_DIR in configure, config.py.in, Makefile.am

	- add RPM list and Bug List to glade

	- clean up execheap, clean up parameter & field names, remove
	  newlines from text when displaying, let text widget do the wrapping.

	- add avc_snap script

	- Everything now installs and runs using configure the way it did
	  before the import to CVS began (without autotool support). This is
	  a good checkpoint.


