1.3.1 Mon Oct 8 10:45:19 EST 2001 Paul Gear - Changed the tailing algorithm back to the previous method, with a warning issued for HP-UX systems. The changed algorithm did not fix the problem, and caused issues of its own. - Numerous other code cleanups and comments. 1.3.0 Wed Mar 7 14:56:29 EST 2001 Paul Gear - Minor fix in the main loop algorithm to stop repeated logging of trace data. Mon Mar 5 12:13:27 EST 2001 Paul Gear - Finally got a response from HP on the issue of the files which have changed size without updating their modification time: the stat(2) system call was not obtaining a read lock on the kernel stat buffer, thus allowing for the possibility that incorrect information be provided to the calling program. A fix is available on HP-UX 11.11; SR JAGad52902 has been logged to request this to be backported to HP-UX 10.20 and 11.00. - Changed the behaviour of the core loop to work around the above HP-UX bug. - Introduced the "[UNSEEN]" tag to error messages that have not been encountered. If you see this tag on an error message generated by itologmon, please try to reproduce it while running itologmon with debugging and tracing turned on and send me the logfile. 1.2.1 Fri Feb 23 10:33:47 EST 2001 Paul Gear - Makefile updated to enable compiling on Solaris and smoother building outside of the CITEC disttree. - Updated documentation to reflect current status, including adding the man page to distribution tarball. 1.2.0 Fri Feb 9 15:15:20 EST 2001 Paul Gear - 1.1.2 looks pretty good - promote it to be the stable version. - Added documentation for release on SourceForge.net. 1.1.2 Wed Feb 7 13:27:32 EST 2001 Paul Gear - Added automatic application log file switching to applog.c. This allows logrotate to be used on itologmon's trace files and have them transparently start logging to a new file when this occurs. 1.1.1 Mon Jan 29 12:50:16 EST 2001 Paul Gear - Add a message to indicate that ITO agent problems have disappeared if they succeed after having failed during the same call to send_opcmsg(). - You cannot usleep() for more than 1,000,000 microseconds! (You eediot! :-) - Changed the way opcmsg() errors are handled when tailing files. If any line fails to be sent, the function returns and the last position pointer is not updated. The data will be re-read the next time read_file() is called for that file. This should make it less likely to lose data (although still not impossible). 1.1.0 Thu Jan 11 14:22:46 EST 2001 Paul Gear - Major rewrite to make more modular. - Replaced calls to syslog with local applog function. If itologmon is monitoring syslog and writing its error messages to syslog, any errors in logging messages to ITO can cause infinite loops. You can really hog a processor this way. :-) - Added tracing code to track inode status changes on all logfiles. The cause of same size files with different modification times is still a mystery. Hopefully this will help me get to the bottom of it. - Moved all calls to opcmsg() into a single function and added a sleep/retry cycle so that when an error code is returned from opcmsg(3) (e.g. due to the ITO agent being restarted or reinstalled) it will not cause excessive logging. - Changed default state file location to be FHS 2.1 compliant. This should only affect systems that do not specify an alternate state file. - Simplified close_files() function, since the timestamping is not needed anymore. - Changed the way errors are reported so that common ones (such as ENOENT when the file is rotated) are not reported until the number of them reaches a certain threshold. Added this information to the state record. However, it is transient, and will be cleared on each invocation of the program. - Changed the way ITO error levels are mapped to syslog priorities: all ITO levels from warning up have been moved up one priority level in syslog so that ITO's warning level now equals syslog's warning level. This shouldn't affect anyone unless you've changed your filtering levels in syslog. - Added a program name and version record to the state file so that mixing versions of the program while using the same state file will not cause corruption or problems. Made the handling of different- sized state records intelligent so that upgrades can be done without losing the state file information. 1.0.4 Fri Nov 10 08:36:43 EST 2000 Paul Gear - Added message timestamping. Specify the -t flag and a timestamp will be prepended to the message text. - Changed the handling of files that are the same size, but have changed timestamps, as it is suspected that this has caused duplicate messages to be sent. Now an error message is logged and the condition is ignored. - Added syslog call for all error messages, so that even if they don't get through to ITO we still have some record of them. - Reformatted some block comments to use more common coding style. 1.0.3 Fri Sep 29 sometime EST 2000 Paul Gear - Removed message group from calls to opcmsg(3). This allows the messages to be assigned to an appropriate message group by default within the ITO management server. - Improved a couple of the comments in the code. 1.0.2 Fri Sep 22 08:14:47 EST 2000 Paul Gear - Moved timer value into config.h and upped it to 10000 microseconds (from 1000) because we still seem to be getting bogus errors when the logfiles are rotated by logrotate. - Cleaned up the Makefile so that the default build might have a chance of working. 1.0.1 Thu Sep 21 09:52:15 EST 2000 Paul Gear - Removed unused code to close file handles. We don't do this anymore because it means that we lose logging data when the file is rotated. All files are kept open all the time. - Fixed potential buffer overflow problem with a vsnprintf(). - Added check to ensure ITO agent is running at startup. - Separated out compile-time configuration parameters into config.h in the delusion that one day we might use autoconf. 1.0 Fri Sep 15 09:45:31 EST 2000 Paul Gear - Initial release