CHANGELOG

2.8
* Fixed a bug in logrotate.php (http://sourceforge.net/mailarchive/forum.php?thread_id=7674217&forum_id=34099).

2.7
* Fixed some more issues with undeclared variables (http://sourceforge.net/mailarchive/forum.php?thread_id=7433359&forum_id=34099 and http://sourceforge.net/mailarchive/forum.php?thread_id=7568291&forum_id=34099).
* Fixed problem when passing arrays through POST or GET requests and running PHP without having magic quotes enabled (http://sourceforge.net/mailarchive/forum.php?thread_id=7568291&forum_id=34099).
* Fixed a bug in the page counter at the bottom of the regularresult.php page. The count was incorrect when you moved past page five.
* Changed the CREATE statement for the merge table in logrotate.php because it failed on some systems (it should now work on any version of MySQL 4.0.18 or later).
* Changed logrotate.php to drop the temp table if it exists (it could possibly be created during a failed run and then the script would fail on all subsequent runs).

2.6
* More code clean-up and commenting.
* Added an error message on failed login.
* Did some work towards supporting other databases.
* Option to reset other users' passwords.
* Cache function for the search page.
* Access controls. The access controls currently only affects various configuration specific items (add/deleting users, changing the access control settings etc).
* Changed the database field on the search page so that you only have to pick a table if you have more than one table.
* Fixed bug in get_logtables() (http://sourceforge.net/mailarchive/forum.php?thread_id=7433359&forum_id=34099).
* Fixed issue with persistent MySQL connections. db_connect_syslog() now only uses mysql_pconnect() if it is available.
* Fixed issue with undeclared variables. Some versions of PHP produce lots of errors/warnings/notices when variables are not declared before they are used.


2.5.4
* More code clean-up and commenting.
* Added authentication. It can be enabled by setting REQUIRE_AUTH in config.php. Authentication also requires a new table and a create statement was added to the dbsetup.sql script. For authentication to work you also need to run the new GRANT statement for the regular user (GRANT UPDATE ON syslog.users TO sysloguser@localhost;). You should also add a user so that you are able to log in (you can add more users once you are logged in). INSERT INTO users (username, pwhash) VALUES('admin', 'd033e22ae348aeb5660fc2140aec35850c4da997'); will add a user 'admin' with password 'admin'.
* Added a new field to the search page. If you have multiple tables with log data then you will get a dropdown where you can select what table to search. Unless you only have one table or have a merge table that covers all tables then you have to pick a table to work with before the rest of the form is displayed.
* Changed the logrotate.php script to handle merge tables. This feature can be turned on and off using MERGELOGTABLE in config.php. When active then the logrotate.php will create a merge table covering all log tables whenever it's run. In order for this change to work you need to allow the admin user to have RELOAD priviliges. GRANT RELOAD ON *.* TO syslogadmin@localhost; will take care of that. You should not attempt to run the logrotate script more than once per day.
* Changed the logrotate.php script to enable deleting outdated tables. This feature can be turned on and off using LOGROTATERETENTION in config.php. LOGROTATERETENTION specifies the number of days to keep old logs. Log tables with a datestamp older than today minus LOGROTATERETENTION will be deleted whenever logrotate.php is run.
* Fixed a bug that caused the exclude option for PRIORITY to malfunction (http://sourceforge.net/mailarchive/forum.php?thread_id=7376135&forum_id=34099).
* Fixed a bug that could result in collapsing identical messages from different hosts into one message.
* Included a help page. If the database is unavailable then this page is the default page.
* A few cosmetic changes to the user interface.
* Implemented input validation for almost all input.

2.5.3
* Complete top-to-bottom clean-up of the code including large parts that were re-written.
* Simplified much of the HTML ... but tried to stay true to the original look.
* Changed the way the total number of results is calculated. My approach requires MySQL 4.0 or later. This way you can use a LIMIT statement and still get the total number of potential results if you had not used LIMIT. Also implemented an option to turn off this feature if using older versions of MySQL (no count will be displayed on older versions of MySQL).
* Changed the list of result pages. It lists links to the 11 closest pages and adds FIRST, PREV, NEXT and LAST links. This only works correct when you have a total row count but limited functionality is offered for MySQL 3.x users (First, Prev and Next links).
* The max-limit input variable is probably mostly useless now so it was removed.
* Added sorting by column (seq, facility, severity, datetime).
* Changed the way to and from times/dates are handled. A blank date field indicates any date. And if a date is entered and no time is specified then 00:00:00 is used for the FROM time and 23:59:59 is used for the TO time. Entering a time without a date results in the time being ignored.
* 'now', 'today' and 'yesterday' are valid values for the date inputs on the search page (now and today are the same).
* 'now' is valid value for the time inputs on the search page.
* Did some prep work to allow an arbitrary number of inputs when searching for specific messages.
* The hostname link on the result page (for both the regular result and the tail result) narrows down the search to only include that particular host.
* The results in the tail script can be narrowed down using many of the same variables as the regular search result.
* MySQL functions that include basic database error handling.
* Added a button on the search page to go straight to the tail result page.
* Added an option to collapse consecutive lines with identical messages into one line.
* Included some sample scripts for setup etc (create database and database users, logrotate, syslog to mysql).
