2017-03-06  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlarmDestination.h:
	* EcAlarmDestination.m:
	Change signature of -setDebug: method to be consistent with other
	classes using a method of the same name.

2017-01-30  Wolfgang Lux  <wolfgang.lux@gmail.com>

	* EcAlarmSinkSNMP.m (pollHeartBeat_handler): Don't use memdup,
	which is replaced by netsnmp_memdup with a different interface in
	net-snmp 5.7.3.

2016-07-20  Wolfgang Lux  <wolfgang.lux@gmail.com>

	* EcConsole.m (-ecRun): Pass distantFuture to -runMode:beforeDate:
	to prevent returning immediately from the run loop after recent
	gnustep-base changes.

2016-06-09  Richard Frith-Macdonald <rfm@gnu.org>

	* EcControl.m: Fix bug where alerter config was not always updated
	when changed, and where Control server defaults were lost during
	alerter updates.

2016-05-18  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.m: When changing log files on a nightly basis, don't
	close descriptor 2 (stderr).  Instead open the new log and use
	dup2() to switch the new log to be stderr.  Wolfgang spotted that
	the existing code allowed another thread to ned up using the
	descriptor if it opened a device in the gap between the old log
	file being closed and the new one opened.

2016-01-21  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlarm.h:
	* EcAlarm.m:
        * EcAlarmDestination.m: When coalescing alarms, allow a clear and
	alarm to cancel each other out, but only if the alarm is not yet
	active (only queued). Allow alarms to be set to persist in the queue
	for up to 255 seconds to allow more coalescing.
	This lets us raise an alarm which, if cleared within the delay
	period, will never be forwarded anywhere.

2015-11-18  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.m: Improve output when changing/reading defaults, and
	restore tolerant behavior of doing a read by default.
	* ECAlerter.h: 
	* ECAlerter.m: Remove obsolete methods, and a 'Quiet' configuration
	option, and log alarms (and their disposition) by default.

2015-11-18 	Niels Grewe <niels.grewe@halbordnung.de>

	* EcProcess.m: Fix argument validation when reading/writing defaults.

2015-10-28 	Niels Grewe <niels.grewe@halbordnung.de>

	* EcConsole.m: Use readpassphrase() instead of getpass() if available.
	* configure.ac
	* config.make.in:
	Test for readpassphrase in the C library and libbsd, link if needed.
	* configure:
	* config.h.in:
	Regenerate

2015-10-15  Richard Frith-Macdonald <rfm@gnu.org>

	* EcTest.h:
	* EcTest.m:
	Add new function to shut down a process via DO connection.

2015-10-14  Richard Frith-Macdonald <rfm@gnu.org>

	* EcUserDefaults.h:
	* EcUserDefaults.m:
	New -revertSettings method to revert all local config settings.
	* EcProcess.h:
	* EcProcess.m:
	Change cmdDefaultDbg to cmdBasicDbg to avoid confusion of the debug
	mode with default settings.
	Add 'defaults revert' command for Console to use.

2015-10-09  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h: declare new -launch: method
	* EcCommand.m: implement -launch: method
	* EcTest.m: use -launch: when asked to get a connection to a process.

2015-08-25  Richard Frith-Macdonald <rfm@gnu.org>

	* AlarmTool.m:
	* LogTool.m:
	* Terminate.m:
	Set up well known hosts at start.

2015-07-21  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Be more rigorous about checking instance id values.  Ignore anything
	other than a non-negative integer instance ID.

2015-07-15  Niels Grewe <niels.grewe@halbordnung.de>

	* EcMemoryLogger.h
	* EcProcess.m:
	Add the ability to load a bundle to export memory logs to. Configured
	using the 'MemoryLoggerBundle' default key.

2015-07-13  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Restore lost effect of -ecNotLeaked to moderate changes in our idea
	of when we should generate a warening about potential leaks

2015-07-08  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Allow 'memory current' to list current object allocation values.
	Report time at which memory stats are generated.
	For allocation changes, also show time of previous report.

2015-07-08  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Allow the memory monitoring configuration to be set from the Console
	via the 'memory' command.  Improve the help text.  Improve the info
	provided in the debug/error reports.

2015-07-06  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Various tweaks to leak alert generation. Change default initial
	thresholds and change increments after an alert to be based upon
	the *peak* usage at the point when the alert was generated, rather
	than on the previous threshodld.  This reduces the number of alerts
	in a process whose memory usage grows rapidly on startup.

2015-07-03  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Revamp memory handling code to work with total process memory rather
	than heap size.  Report usage in same units as the 'ps' command.

2015-06-17  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlarmSinkSNMP.m: Fix stupid mistake setting notificationID.

2015-06-16  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlarmSinkSNMP.m: Fix error in alarms table oid length.
	* EcCommand.m: Fix error in compression of debug logs.

2015-05-31  Richard Frith-Macdonald <rfm@gnu.org>

	* EcLogger.m: When logging to stderr, use lock to synchronise with
	logs produced by gnustep-base NSLog().

2015-05-29  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlarmSinkSNMP.m: log SNMP errors via the main logging mechanism
	or NSLog.
	* EcControl.m: fix failure to perform includes in some cases.
	* EcAlerter.m: tidyups

2015-03-26  Richard Frith-Macdonald <rfm@gnu.org>

	* Control.plist:
	* EcCommand.m:
	* EcProcess.h:
	* EcProcess.m:
	New options for dealing with I/O.  In EcProcess we can set
	EcKeepStandardError to keep the stderr stream separate from the
	debug logging file.
	When a process is launched from the Command server, we can define
	KeepStandardInput, KeepStandardOutput, and KeepStandardError flags
	in the task info to stop the standard streams from being closed.

2015-03-19  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.m:
	* EcAlerter.m:
	Use milliseconds in logging timestamps.

2015-02-02  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlerter.h: Add options for time-limiting rule activity
	* EcAlerter.m: Implement those options
	* EcProcess.m: Put debug logs in 'DebugLogs' by default.
	* EcCommand.m: Put our logs in 'Logs' by default.
	* EcControl.m: Put our logs in 'Logs' by default.
	Change default logging locations.
	*GNUmakefile: bump version for release

2015-02-02  Richard Frith-Macdonald <rfm@gnu.org>

        * EcAlarmDestination.m: When coalescing alarms, do not coalesce a
	clear with anything other than an earlier clear for the same event.
	We do not want to risk forwarding a clear without a preceding
	event raising the alarm.

2015-01-26  Richard Frith-Macdonald <rfm@gnu.org>

        * GNUmakefile.preamble: fixup gcc flag filtering
        * EcClientI.h:
          EcClientI.m:
        * EcCommand.m:
        * EcControl.m:
        * EcProcess.h:
        * EcProcess.m:
        Implement forced kill by -terminate method if a client fails to
        close down gracefully within 30 seconds.

2015-01-19  Wolfgang Lux  <wolfgang.lux@gmail.com>

	* GNUmakefile.preamble: Fix wrong option letter in sed command.

2015-01-15  Richard Frith-Macdonald <rfm@gnu.org>

        * EcAlarmDestination.m: When shutting down, only wait for the
	background thread first time ... otherwise we could get into a
	recursive loop calling the -shutdown method while
	waiting for shutdown to complete.

2015-01-07  Richard Frith-Macdonald <rfm@gnu.org>

	* configure.ac:
	* GNUMakefile.preamble:
	Filter out fstack-protect-strong from snmp cflags because clang
	doesn't support it.

2014-11-28  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlarmSinkSNMP.m: Fix incorrect OID setup for alarm table in
	SNMP agent.

2014-11-27  Richard Frith-Macdonald <rfm@gnu.org>

	* EcUserDefaults.m: The -doubleForKey: method was commented out!
	Restore it.

2014-11-26  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.m: Make -cmdLastIP, -cmdLastOP (and their setters)
	thread-safe.

2014-11-02  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Add method to register a user default / configuration key to have
	updates for a default automatically trigger a method to handle it,
	and to provide 'help' documentation for command line arguments.
	* EcCommand.m:
	Implement 'restart' command for when we want to quit a server and
	have it start up again.

2014-11-01  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.m: Check for descriptor leaks at 1 minute intervals,
        and shut down if EcDescriptorsMaximum is exceeded or if the
	process runs out of descriptors.

2014-10-23  Richard Frith-Macdonald <rfm@gnu.org>

	* EcCommand.m:
	* Control.plist:
	Add LaunchOrder config to control the order in which services are
	handled by the Command server.  By default we now do them in
	lexicographic order rather than leaving the order undefined.

2014-09-16  Richard Frith-Macdonald <rfm@gnu.org>

	* EcCommand.m: Simplify handling of loss of process and configuration
	error alarms.  Clear such alarms when we receive a ping from the
	process.
	EcLogger.[hm]: Add documentation in the header, plus a new method to
	make subclassing a bit easier.  Fix bug in naming of config keys.

2014-09-04  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.m: Fix missing clear after unable to register with name
	server.

2014-09-02  Richard Frith-Macdonald <rfm@gnu.org>

	* EcControl.m: If a Command server on a host registers and we already
	have a Command server registered, have the new registration replace
	the old one rather than rejecting it.  The aim is to handle a race
	condition where a Command server is re-registering after some network
	problem and the old registration is still in place.
	* EcAlerter.m: Add more debug logging to show what elarms/alerts are
	handled by what rules.

2014-07-30  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Added +ecSetup method to create/initialise the singleton instance.

2014-07-01  Richard Frith-Macdonald <rfm@gnu.org>

	* Command.m:
	* Control.m:
	Implement auto-restart ...
	Run a 'Watcher' process as a daemon with the actual server as a
	subtask.  If the subtask dies with a status other than zero,
	restart it after a 30 second delay.

2014-06-20  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.m: Make sure the NSHost cache is flushed at least
	once per minute (by -ecNewMinute:) so that any stale information
	is replaced reasonably promptly.

2014-05-16  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlarmDestination.m: Perform all connection operations in
	main thread (forwarding etc) and ensure that we run the
	current run loop while waiting for startup and shutdown.
	* EcLogger.m: Use floating point flush interval for modern
	systems which run faster and might want to flush more than
	once per second.
	* EcProcess.m: Don't start handling timeouts until the
	process is actually running (so we don't get any during
	initialisation of the class).
	* GNUmakefile: bump subminor version number for release
	Version 1.1.3 release

2014-05-14  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlerter.m: fix bug processing alert emails
	* GNUmakefile: bump subminor version number for release
	Version 1.1.2 release

2014-05-08  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.m: add memory commands 'class' and 'list' to record
	allocated instances of a specific class and list them... another
	memory debugging option.
	* GNUmakefile: bump subminor version number for release
	Version 1.1.1 release

2014-05-08  Richard Frith-Macdonald <rfm@gnu.org>

	* GNUmakefile: bump subminor version number for release
	Version 1.1.0: scripting and alarm improvements.

2014-04-27  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Add +ecInitialDefaults to allow subclasses to easily set and
	modify default configuration values.

2014-03-28  Richard Frith-Macdonald <rfm@gnu.org>

	* EcTest.h:
	* EcTest.m:
	* EcProcess.m:
	* GNUmakefile:
	Add a few simple functions to connect to a process, set/get the
	config of a running process, and issue commands (and get back
	the response) so that regression test software can relatively
	easily exercie an entire system.

2014-03-26  Richard Frith-Macdonald <rfm@gnu.org>

	* EcControl.m: Add option to allow any user to log in.

2014-03-25  Richard Frith-Macdonald <rfm@gnu.org>

	* EcConsole.m: Don't read from stdin whn in non-interactive mode
	* EcProcess.m: Allow up to ten seconds to Contact Command server
	on startup.

2014-03-18  Richard Frith-Macdonald <rfm@gnu.org>

	* ECCL.h:
	* EcCommand.m:
	* EcConsole.m:
	* GNUmakefile:
	Extend Console tool to support non-interactive use for scripting etc.

2014-02-28  Richard Frith-Macdonald <rfm@gnu.org>

	* EcControl.m:
	* ECCL.h:
	Extend system so the Terminate tool can contact the Control server
	and shut down the entire cluster rather than just a singlee host.

2014-02-22  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlarmDestination.h:
	* EcAlarmDestination.m:
	When clearing an alarm, forward the clear to the next destination
	unless we have already done so.
	When unmanaging a managed object, remove internal records of cleared
	and active alarms for that managed object.

2014-01-16  Richard Frith-Macdonald <rfm@gnu.org>

        * EcProcess.m:
        * EcAlarmDestination.h:
        * EcAlarmDestination.m:
	Remove experimental force clear method ... obey the KISS rule and
	stick to using domanange and unmanage methods for clearing on
	startup/shutdown. People wanting alars which persist after process
	shutdown should create a secondary managed object for them.

2013-11-04  Richard Frith-Macdonald <rfm@gnu.org>

        * EcProcess.m:
        * EcCommand.m:
        * EcClientI.h:
        * EcClientI.m:
        * EcAlarmDestination.h:
        Change error/alert logs to use alarm mechanism instead.

2013-08-20  Richard Frith-Macdonald <rfm@gnu.org>

        * EcConsole.m: Ignore exception printing message on shutdown.
        * EcProcess.m: Improve SIGHUP handling. Add new option for
        memory usage logging and increase default alert increments
        again. Make name of allowed usage config consistent with other
        names.  Add option to quit process when usage gets too high.

2013-08-05  Richard Frith-Macdonald <rfm@gnu.org>

        * AlarmTool.m: Tool to raise/clear alarms
        * LogTool.m: Tool to generate logs
        * Terminate.m: Cleanups
        * GNUmakefile: Build new tools
        * ECCL.h: Document new tools

2013-07-12  Richard Frith-Macdonald <rfm@gnu.org>

        * EcProcess.h: New method to get EC user directory
        * EcProcess.m: implement new method
        * EcCommand.m: Add simple auto compress/delete of logs
        CompressLogsAfter and DeleteLogsAfter control this.

2013-07-06  Richard Frith-Macdonald <rfm@gnu.org>

        * EcConsole.m: Strip spaces from command line to avoid a space
        at end of line causing the line terminator to be treated as an
        argument.

2013-04-07  Richard Frith-Macdonald <rfm@gnu.org>

        * EcControl.m:
	* EcAlerter.h:
	* EcAlerter.m:
        * Alaertconfig.plist:
        More restrucuturing plus addition of rules options for improving
        formatting of output messages and handling alerts due to alarms.
        Add some example alert configuration.

2013-04-06  Richard Frith-Macdonald <rfm@gnu.org>

        * EcControl.m:
	* EcAlerter.h:
	* EcAlerter.m:
        Restructure for better integration of alrm system with alert system.
        Send critical alarms as alerts and major alarms as errors.
        Repeat delivery of outstanding critical/major alarms periodically
        (still need to make this period configurable).
        Send clear message when a major/critical alarm is cleared, trying
        to get mail clients to replace original email with the clear so the             recipient can tell a problem has gone away.

2013-04-05  Richard Frith-Macdonald <rfm@gnu.org>

        * EcControl.m: Fix to get 'control on <host> ...' to work while
        connected to a specific server.

2013-03-22: Niels Grewe <niels.grewe@halbordnung.de>

	* EcControl.m: Fix bug that could remove a alerter when it was still
	needed.

2013-03-18: Niels Grewe <niels.grewe@halbordnung.de>

	* EcAlerter.h
	* EcAlerter.m:
	Rearrange and expose a few methods so that subclasses can
	easily inject alert rules.
	* EcControl.m:
	Allow dynamically loading the alerter class based on the
	AlerterBundle key in AlertConfig.plist

2013-03-18  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
	Add test logging methods ([-ecTestLog:...])

2013-03-15  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h: Document EcCoreSize
	* EcProcess.m: Change so that if no value is set, we don't use any
        limit, and so that if a negative value is set we use 1GB

2013-03-13  Richard Frith-Macdonald <rfm@gnu.org>

        * GNUmakefile: 1.0.2 release

2013-03-13  Richard Frith-Macdonald <rfm@gnu.org>

	* EcProcess.h:
	* EcProcess.m:
        Improve documentation of sequence of calls of configuration update
        methods and add convenience functionality to support alarming for
        fatal configuration errors.
        Add EcMemoryIncrement config to adjust alerting about potential leaks.

2013-01-26  Richard Frith-Macdonald <rfm@gnu.org>

	* EcAlarmDestination.m:
	* EcAlarmSinkSNMP.m: Fix problem flushing alarms on process shutdown.

2012-12-17  Niels Grewe <niels.grewe@halbordnung.de>

	* EcAlarmDestination.m: Fix designated initializer behaviour.
	* EcControl.m: Make SNMP master agent port and host configurable.

2012-12-07  Richard Frith-Macdonald <rfm@gnu.org>

        * EcAlarmSinkSNMP.m:
        * GNUSTEP-MIB.txt:
        Fix minor naming consistency errors.

2012-12-06  Richard Frith-Macdonald <rfm@gnu.org>

        * EcProcess.m: Improve handling of signals ... quit process after the
        next event when an unexpected signal is caught.

2012-10-28  Richard Frith-Macdonald <rfm@gnu.org>

	* EcCommand.m:
2012-11-26  Wolfgang Lux  <wolfgang.lux@gmail.com>

	* EcLogger.m (+loggerForType): Fix wrong receiver when registering
	for notifications.

2012-11-16  Richard Frith-Macdonald <rfm@gnu.org>

        * EcControl.m: Record a change in the alerter configuration as an
        update of the overall configuration.
        * EcProcess.m: Implement 'alarms' and 'clear' commands for local
        process alarm state.

2012-10-28  Richard Frith-Macdonald <rfm@gnu.org>

	* EcCommand.m:
	* EcConsole.m:
	* EcControl.m:
	* EcLogger.m:
	* EcProcess.h:
	* EcProcess.m:
	Use NSInteger argument for -cmdQuit:
	
2012-10-18  Richard Frith-Macdonald <rfm@gnu.org>

        * EcProcess.m: Remove unused variable.
        * EcControl.m: Yse -hostWithWellKnownName: in preference to
        -hostWithName: when trying to find/match hosts.

2012-10-05  Richard Frith-Macdonald <rfm@gnu.org>

        Initial (1.0) release.

