2010-05-03 Corey Minyard <cminyard@mvista.com>

	* swig/python/Makefile.am, swig/perl/Makefile.am: The swig command
	could possibly get the wrong target, and the OpenIPMI_wrap.c file
	was being included in the distribution, which could cause the
	OpenIPMI.py and OpenIPMI.pm files to not be properly generated.
	Fix those problems.

	* configure.in: Move to version 2.0.18.
	
2010-04-29 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 2.0.17.
	
2010-04-28 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmiif.h, lib/ipmi.c:  Add a cache option
	to allow using the local cache to be enabled or disabled.
	
	* include/OpenIPMI/internal/ipmi_domain.h, lib/domain.c,
	include/OpenIPMI/ipmiif.h.in:
	Add support for the cache option.  Also rearrange the handling
	of options to parse them before the domain is setup, otherwise
	the SDR allocation would be done before the cache option is
	processed.

	* lib/sdr.c: Add support for the cache option.

2010-04-27 Alex Deiter <alex.deiter@gmail.com>

	* configure.in, cmdlang/Makefile.am, sample/Makefile.am: Properly
	handle the terminal library.

	* swig/perl/Makefile.am: Clean up compile issues.

	* swig/python/Makefile.i, swig/OpenIPMI.i,
	swig/python/openipmigui/Makefile.am:
	Clean up various compile issues with the python sources.
	
2010-04-27 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c: Use unsigned int, not double, to hold the raw
	sensor value.

	* lib/ipmi_lan.c: Pass in the correct socket length to sendto,
	not just the maximum possible size.
	
2010-04-21 Alex Deiter <alex.deiter@gmail.com>
	
	* cmdlang/ipmish.c, cmdlang/out_fru.c, configure.in,
	lanserv/OpenIPMI/lanserv.h, lanserv/emu.h, lanserv/lanserv.c,
	lanserv/lanserv_emu.c, lib/fru_spd_decode.c, lib/oem_intel.c,
	sample/dump_sensors.c, sample/ipmi_serial_bmc_emu.c,
	sample/sample.c, sample/sample2.c, sample/sample3.c
	sample/solterm.c, unix/selector.c, unix/test_heap.c:
	Get OpenIPMI to compile under FreeBSD.

2010-03-24 Corey Minyard <cminyard@mvista.com>

	* swig/python/sample.py, swig/python/Makefile.am: Added a python
	sample program, converted from the perl sample program.

	* swig/perl/sample: Fixed a few bugs notices in the conversion
	to python.

2010-01-04 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_smi.c: Fix a bug noticed by a user who filed
	Sourceforge bug 2924182 on this, error cleanup in the case of an
	SMI setup failure would crash in some cases, and I noticed a
	use of freed data in the same routine and fixed that, too.

2009-10-19 Corey Minyard <cminyard@mvista.com>

	* cmdlang/os_debug.c, glib/glib_os_hnd.c, tcl/tcl_os_hnd.c,
	  unix/posix_os_hnd.c, unix/posix_thread_os_hnd.c: Fix a bug filed
	  by dcb on SourceForce, modify set_gdbm_filename() in all these
	  files to properly use the allocated name instead of the passed
	  in name.

2009-09-14 Jan Safranek <jsafrane@redhat.com>

	* ipmi.init: On certain HW (e.g. IBM HS20 blade) the /dev/watchdog
	is created by kernel during boot (provided by i6300esb
	driver). /etc/init.d/ipmi script then does not recognize the
	device is already there and tries to configure new one, which
	obviously fails. The init script does not show any error and
	pretends everything is OK.  So modify the init script to detect
	that another watchdog is registered and print a failure message.
	
2009-06-17 Eric J. Bowersox <ericb@aspsys.com>

	* lib/ipmi_lan.c: Two more null-pointer fixes to ipmi_lan.c, found
	in 2.0.16.  The first is in a debugging message in
	rmcpp_find_ipmi, which was using the IPMI_CONN_NAME(ipmi) macro in
	a scenario in which the pointer it was passing would always be
	NULL, causing a segfault.  I modified the debug message to remove
	the connection name, as none of the other debug messages in that
	function use the connection name anyway.

	The second is in lan_oem_done, which may be called with a NULL
	"ipmi" parameter (such as, indirectly, via lan_cleanup at line
	4030).  It contains recovery code for that purpose, but the
	initialization of "lan" at line 4308 causes a segfault before the
	code gets to that point.  I moved the initialization to after the
	test for NULL.

2009-06-15 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca_conn.c: Fix a logic problem in the disabling
	of ATCA address checking.
	
2009-06-13 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca_conn.c: Fix a problem where the ATCA address
	checking code could be called even if it was disabled.
	
2009-03-16 Corey Minyard <cminyard@mvista.com>
	
	* configure.in: Move to version 2.0.16.  It's been a while and
	a release is a good idea, I think.
	
2009-01-16 Corey Minyard <cminyard@mvista.com>

	* lib/normal_fru.c: An Intel document (IPMI 0.9 to IPMI 1.0 Change
	Summary and Porting Considerations from October 1, 1998) mentioned
	the FRU version was updated from 1 to 2.  Nothing else really
	changed this, but some systems used the version 2.  So account for
	this change.

2009-01-09 Jan Safranek <jsafrane@redhat.com>

	* sample/rmcp_ping.c: I know, it's just a library sample, but
	people find rmcp_ping useful and it should report something when
	user provides wrong command line arguments.

2008-12-09 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c, lib/oem_atca.c, sample/dump_sensors.c: Fix some
	compiler warnings.

2008-12-08 Dann Frazier

	* doc/IPMI.ltx: Fix some typos.

2008-11-19 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: Allow scanning IPMB address 0x20 even if the the
	channel medium is not IPMB.  This helps fake out things where
	there is no IPMB channel but an MC at 0x20 is still reported
	in the SDRs.

2008-11-07 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c: Fix some bugs notices by Stephane Blain
	(stblain at users.sourceforge.net) dealing with the hash
	function for ipmi lan objects.

2008-09-07 Corey Minyard <cminyard@mvista.com>

	* unix/selector.c: Fixed a problem with a missing NULL check
	on sending a signal.

	* sample/Makefile.am, sample/waiter_sample.c: Add a sample that
	does waiting using the OS handler waiter.

2008-09-05 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_payload.c: Work around a bug in some systems that
	switch the request and response address in IPMI LAN messages.

2008-07-14 Corey Minyard <cminyard@mvista.com>

	* unix/selector.c: Fixed handling of waking up threads.

2008-07-02 Corey Minyard <cminyard@mvista.com>

	* utils/os_handler.c: Fixed a messed up refcount when a waiter
	times out.

	* lib/strings.c: Fixed another typo noticed by Nancy Nichols.

2008-06-29 Corey Minyard <cminyard@mvista.com>

	* lib/hmac.c: Someone named "Sia" reported on Sourceforge that
	OpenIPMI was using the wrong key for HMAC-MD5-128.  And they were
	right.  Problem is now fixed.

2008-06-26 Corey Minyard <cminyard@mvista.com>

	* lib/strings.c: Fix a typo noticed by Nancy Nichols.

	* configure.in: Fixed the dia test to work with 3-level version.

	* lib/hmac.c: A variable in the SHA1 init function was declared
	static instead of const.  This means that in a multi-threaded
	program, it is possibly (though quite unlikely) that the data
	could get corrupted.

	* swig/python/openipmiguid/gui_domainDialog.py: Improve the error
	handling to make it easier to track down problems.

2008-05-21 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: Don't remove everything from the IPMB scan if
	all the get channel commands fail.  There may still be something
	on IPMB 0.

	* lib/domain.c: Fix an overflow problem dealing with IPMB
	addresses.  If the IPMB ignores list covered all addresses, the
	scan code would go into an infinite loop.

	* lib/domain.c, include/OpenIPMI/ipmi_mc.h: Cleaned up the
	defaulting of the channel to IPMB, including using defines instead
	of constants.

	* configure.in: Move to version 2.0.15.

2008-04-21 Corey Minyard <cminyard@mvista.com>

	* sample/sample.c: Fixed some array index errors that Nancy
	Nichols noticed.

2008-04-12 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmiif.h.in, include/OpenIPMI/ipmi_mc.h: Added
	handlers that can be called when a registered handlers is removed
	(cleaned up) automatically (usually when an object is destroyed).
	This sounds kind of weird, perhaps, but object referenced as
	callback data can be refcounted by perl and Python (and maybe
	other things).  If an object gets destroyed, there was no easy way
	(besides keeping a list yourself and watching for object
	destruction) to detect this.  To avoid burdening the user with
	having to watch that stuff, provide an easy way for them to know
	when a callback handler is automatically removed.
	
	* include/OpenIPMI/internal/ipmi_entity.h: Added helper functions
	for the callback cleanup.

	* lib/control.c, lib/domain.c, lib/entity.c, lib/mc.c,
	lib/sensor.c: Actually implement the callback cleanup handlers.

	* swig/OpenIPMI.i: Use the callback cleanup handlers to clean
	things up properly and avoid memory leaks.

	* swig/perl/test_pet: Remove the now-unneeded cleanup of the
	update handlers.

2008-04-10 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c: Don't mark a connection as started unless it
	starts up completely.

	* lib/ipmi.c: Fixed a log race that was caused by the shutdown
	changes.

	* lib/pet.c: Fix some refcounting problems, make sure the pet
	object exists while callbacks are in progress.

	* swig/OpenIPMI.i: Clean up refcount handling for PEF, PET, and
	LANPARM objects to avoid race conditions and problems on errors.

	* swig/perl/Makefile.am: Set the proper glib patch so that perl
	can pick it up when running tests.

	* lib/pef.c: Make sure the PEF object stays around during the
	capabilities check.
	
2008-04-04 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: The send_command_option function of a connection
	is optional, only use it if it is present.

2008-04-03 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmiif.h.in, lib/domain.c: Made the "name"
	field in ipmi_open_domain a const.

	* lib/fru_spd_decode.c: Made the initialization reentrant.

	* lib/ipmi_lan.c: Use IPMI_CON_OPTION_LIST_END instead of "0".
	Also add -M to the option list

	* include/OpenIPMI/ipmi_conn.h, lib/ipmi_lan.c: Added a connection
	option specifying that a message has side effects.  For messages
	with side effects, increase the retry timeout to 5 seconds.  This
	is for reservation messages; on a slow link a reservation would be
	resent, then the first response would be received and the old
	reservation was being returned.
	
	* include/OpenIPMI/ipmi_mc.h, lib/mc.c: Added a side-effect send
	command function.
	* include/OpenIPMI/ipmiif.h.in, lib/domain.c: ditto

	* lib/sel.c, lib/sdr.c: Switch over to using the side effect
	functions for doing reservations.

	* man/ipmi_cmdlang.7: Add the -M option.

	* lib/ipmi.c: Fix init/shutdown problems to allow init to be
	called after a shutdown.
	* lib/aes_cbc.c: ditto
	* lib/hmac.c: ditto
	* lib/md5.c: ditto
	* lib/rakp.c: ditto
	* lib/normal_fru.c: ditto
	* lib/fru_spd_decode.c: ditto
	* lib/fru.c: ditto
	* lib/oem_atca.c: ditto
	* lib/oem_atca_conn.c: ditto

	* sample/sample.c: Add test code for multiple init/shutdown.
	

2008-03-27 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c: Fixed a rather serious bug in event handling, in some
	cases it would never properly deliver events.

	* configure.in: Move to version 2.0.14.
	
2008-03-12 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/lanserv.h, lanserv/OpenIPMI/lanserv.h: Move
	lanserv.h into the lanserv directory.  It still installs in
	OpenIPMI as before.

	* configure.in, lanserv/Makefile.am, lanserv/OpenIPMI/Makefile.am:
	Required changes to move lanserv.h.
	* include/OpenIPMI/Makefile.am: ditto

	* lanserve/Makefile.am: Remove the dependency on OpenIPMIutils by
	directly handling the source files from that directory and not
	linking the utils library.

2008-01-22 Serkan Çalış <adresimeyaz (at) gmail (dot) com>

	* libedit/makelist: When we try to compile OpenIMPI (2.0.11 or
	previous versions) under Turkish locale, we get some erors like
	 chared.c:442: error: 'ED_UNASSIGNED' undeclared (first use in
	 this function) 
	This is because Turkish character i. Using ASCII could solve the
	problem. I am attaching a patch for makelist, so we can compile
	it.

2007-12-20 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/_sel.py, swig/python/openipmigui/gui_list.py:
	Fine-tune some GUI settings.

	* lib/entity.c: Fix a possible race condition in the entity code.

	* lib/domain.c: Make the localonly option actually work.

2007-10-16 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/gui_domainDialog.py: Insert the default
	value into string and integer values, primarily so the "Max
	Outstanding Msgs" field has a proper default value.

	* include/OpenIPMI/internal/ipmi_fru.h: One of the changes for
	problems with older compilers had bad side effects; it resulted
	in corrupt data in some cases.  Change it back.

	* tcl/Makefile.am, glib/Makefile.am: I was instructed by the
	Debian maintainer that -rpath is a bad idea, and Debian had a
	writeup.  However, the automake documentation says that if you use
	EXTRA_LTLIBRARIES for optional libraries, you must use -rpath.  So
	change the files back that use EXTRA_LTLIBRARIES.

	* glib/Makefile.am: Add an pythoninstalllib option to instruct
	where to install the shared libraries for python.  Also install
	the library directly in the install location and not in
	lib-dynload.

	* swig/OpenIPMI.i: Fixed a refcounting problem with
	parse_args_iter_help().

	* configure.in: Since one of the changes fixed a critical bug,
	move to version 2.0.13.
	
2007-10-02 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/internal/ipmi_fru.h, lib/normal_fru.c: Fix
	problems compiling with older compilers.
	* lib/oem_atca_fru.c: ditto

	* lib/ipmi_lan.c: Fixed a problem where the LAN code would pick
	rmcp+ defaults that might not be available.  Instead, pick the
	most secure available default.

	* lib/domain.c: Free mc_oem_handlers when shutting down.

	* */Makefile.am: Removed -R and -rpath from everything, per
	a bug report from Debian.

	* swig/python/Makefile.am, swig/python/openipmigui/Makefile.am:
	Use INSTALL_DATA, not INSTALL_PROGRAM, to install python code.

	* man/rmcp_ping.1: Some minor manpage fixups.

	* configure.in: Move to version 2.0.12.

2007-09-15 Corey Minyard <cminyard@mvista.com>

	* ui/ui_os.c: This file shouldn't use the ipmi_mem_alloc and
	ipmi_mem_free calls, as that introduces a circular dependency.
	Only use malloc and free here.

2007-09-12 Corey Minyard <cminyard@mvista.com>

	* cmdlang/cmd_mc.c: Fix an unsigned problem pointed out by Phil
	Estes.

2007-09-11 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c, include/OpenIPMI/ipmi_lan.h: Add support for a
	parameter to set the maximum number of outstanding messages on a
	LAN connection.  This used to be fixed to 2, but now can range
	from 1 to 63.

	* swig/python/openipmigui/gui_domainDialog.py: Remove some unused
	definitions.  Add support for "int" types of parameters, like the
	new maximum outstanding message count.  Fix a bug if the parm type
	is not supported.

	* lanserv/emu.c: Enable support for the reserve SDR commands.  Not
	having this confuses ipmitool.

2007-09-06 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c, lib/entity.c: Don't abort SDR handling if the
	device string is invalid.  Just go on and set the id to
	"**INVALID**"

2007-08-17 Corey Minyard <cminyard@mvista.com>

	* sample/dump_sensors.c, sample/Makefile.am: Added a little
	program to just dump all the sensors.

2007-07-23 Corey Minyard <cminyard@mvista.com>

	* lib/conn.c: Fix a possible race if an OEM check fails.

2007-07-11 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c, include/OpenIPMI/internal/ipmi_oem.h:
	Added infrastructure for fixups for main SDRs.

	* lib/oem_intel.c: Add main SDR fixups for Intel SE7520
	motherboards.

2007-05-25 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c: Fix the domain fully up get/put operations to
	work properly.  Before, the fully up could come early in
	some situations.

2007-05-24 Corey Minyard <cminyard@mvista.com>

	* ui/ui.c: Move the call to ipmi_init() to before where things
	may be allocated.  Thanks to Bruce Rosenkrantz for pointing
	this out.

2007-05-22 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/gui_SoL.py: Add dumping useful
	information if data processing for terminal input raises an
	exception.

	* swig/python/openipmigui/_term.py: Add some missed range checking
	to make sure Y values are within range with vt100 H and f
	commands.

	* swig/python/OpenIPMI_lang.i: If a method raises an exception,
	print the method name.
	
2006-07-21 Gerhard Obrecht <varnhalt2 at users.sourceforge.net>

        * lib/oem_kontron_conn.c: Add more board support.
		
2007-03-05 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c, include/OpenIPMI/internal/ipmi_sensor.h: Added a
	new function to get/set whether the sensor should be used for
	presence.  This is a replacement for the ignore_if_no_entity,
	whose use is vague, and abstracts this operation a little better.
	* lib/control.c, include/OpenIPMI/internal/ipmi_control.h: ditto
	for controls.

	* lib/entity.c, lib/oem_atca.c, lib/oem_motorola_mxp.c: Switch
	over to the new presence ignore functions.
	* lib/oem_test.c, sample/example_oem.c: ditto

	* lib/entity.c: Other presence handling fixes.

	* cmdlang/Makefile.am: Remove the -L$(DESTDIR)$libdir, it was
	broken to add it.
	* glib/Makefile.am: ditto
	* lanserv/Makefile.am: ditto
	* lib/Makefile.am: ditto
	* swig/perl/Makefile.am: ditto
	* swig/python/Makefile.am: ditto
	* tcl/Makefile.am: ditto
	* ui/Makefile.am: ditto
	* unix/Makefile.am: ditto

	* lib/domain.c, lib/entity.c: Found some minor bugs pointed out
	by new compilers.

	* swig/python/Makefile.am: Create lib-dynload before installing
	into it.

2007-03-05 David Greigo <dgriego@mvista.com>

	* sample/ipmicmd.c: Fix problems with handling errors in
	non-interactive mode.

2007-02-25 Corey Minyard <cminyard@mvista.com>

	* configure.in, OpenIPMI.spec.in: Improve the handling of perl
	installation.  Also improve the tcl and glib12 handling to make it
	more automatic.

	* configure.in: Move to version 2.0.11

2007-02-09 Corey Minyard <cminyard@mvista.com>

	* tcl/Makefile.am: Add $(TCL_LIBS) to the test programs ld flags.

2007-01-10 Michael Chu <michaelychu@yahoo.com>

	* sdr.c: Fix ipmi_sdr_save related issues: use standard fetch size,
	correct offset and record id values, parameter checking and passing,
	do sdr reservation and check status after sdr clear.

2006-12-28 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/gui_cmdwin.py: Fix a problem

2006-12-06 Corey Minyard <cminyard@mvista.com>

	* lanserv/Makefile.am: Added the utils library to the
	applications.

2006-12-04 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/gui.py: Made more reasonable defaults
	for the initial window settings.

	* doc/IPMI.ltx, doc/SimpleMonitoring.dia, doc/ipmi.bib: Add some
	more docs and some use cases.

2006-11-30 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c, include/OpenIPMI/ipmiif.h.in: Some sensors are not
	readable, specifically event-only sensors and sensors with system
	software IDs as the owner.  Add a readable field to the sensor
	object and check on read operations to make sure it is readable.
	Technically, for SDRs with a system software ID owner, it might be
	better to make sure that threadhold and event enables are not
	done, but hopefully the SDRs are right.  Yeah, right, I know.
	
	* include/OpenIPMI/internal/ipmi_sensor.h: Add a function to set
	the readable field for a sensor.

	* swig/OpenIPMI.i: Add the readable method to the sensor object.

	* swig/python/openipmigui/_sensor.py: Don't read the value for
	unreadable sensors, instead put "(not readable)" in the value.

	* lib/sensor.c: Fix some problems parsing type 3 SDRs.  Also added
	some error logs and cleaned things up a bit.
	
	* configure.in: Move to version 2.0.10
	
2006-11-29 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_types.h: Increase the value of
	MAX_IPMI_USED_CHANNELS to 14.  It was increased to 12 in the Feb
	2006 markup of the spec, but just go all the way to 14; it doesn't
	really matter.  We don't want to include 14, and 15, though, those
	are special channels.

2006-11-20 Pierre Sangouard <psangouard@eso-tech.com>

	* include/OpenIPMI/ipmi_picmg.h: I've found a small issue in
	ipmi_picmg.h: Get Shelf Power Allocation command uses a wrong code
	(0x19), it should be 0x22 instead. This was changed at the very
	last minute before ECN-002 release since it conflicted with AMC.0
	defined commands. The attached patch fixes this issue.

2006-11-16 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c: ipmi_entity_fetch_frus_cb() violated the rule of
	returning an error and still calling the done handler (and it
	didn't check the done handler for NULL).  Fix this problem.

	* lib/domain.c: Fixed a problem when a shutdown occurred during
	startup.

	* swig/python/openipmigui/_saveprefs.py: Make sure that the
	startup file is only accessible by the user and refuse to start up
	if it is world orgroup accessible.
	* swig/python/openipmigui/_gui_cmdwin.py: Ditto for the history file.

	* configure.in: Move to version 2.0.9

2006-11-15 Corey Minyard <cminyard@mvista.com>

	* lib/domain: Fix a problem with active/standby connections; now
	force command rerouting when a connection goes inactive, as well
	as when a connection goes active.

	* lib/domain.c: Modified command rerouting a little more.  The
	send sequences are now per-connection instead of per-domain and
	the routing is only done when a connection goes inactive or down.
	This is more reliable and will make multiple active connections
	work better.

2006-11-14 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/gui.py: Rework the mouse wheel stuff so
	it works on older version of tk.
	* swig/python/openipmigui/gui_list.py: ditto
	* swig/python/openipmigui/gui_treelist.py: ditto

	* Makefile.am, swig/python/Makefile.am: "make rungui" wouldn't
	work on systems that could dynamically choose the glib library.
	Add an LD_LIBRARY_PATH back in for that directory only.

	* lib/fru.c, include/OpenIPMI/internal/ipmi_fru.h: Exported a
	function to reference the FRU structure without claiming the lock.

	* lib/normal_fru.c: Removed a deadlock where a FRU was referenced
	while the lock was held.

	* lib/fru.c: If the FRU fetch start fails, return an error.

	* lib/mc.c: Fixed a deadlock in certain error cases.

	* lib/oem_atca.c: Make sure the entity is gotten before creating
	the FRU controls with it.

	* cmdlang/os_debug.c: Can't use ipmi_mem_alloc any more to
	allocate a lock, the locks are claimed too early.

	* lib/ipmi_lan.c: Fixed a missing shutdown check that could cause
	a race at shutdown and a possible segv.

	* lib/oem_atca.c: Fixed a possible memory leak in the LEDs if an
	ATCA domain is shut down while it is coming up.

	* lib/sdr.c: Fix a problem with the fetch retry count being reset
	to zero sometimes on a restart.

	* lib/sdr.c, lib/mc.c: Added a way to stop the SDR timer
	operations during cleanup of an MC.

2006-11-13 Corey Minyard <cminyard@mvista.com>

	* lib/control.c, lib/sensor.c: Change the shutdown order of OEM
	controls so the OEM data is freed last, after the control is
	removed from the entity.

	* lib/control.c, lib/sensor.c: Don't fail freeing an OEM control
	or sensor if the index is reused.  The control is still valid to
	free.

	* lib/oem_atca.c: Free all the FRUs for an entity when the entity
	is freed at domain shutdown.

	* lib/sdr.c: Fix a race where if the SDR data is asked for the
	first time and then again immediately after, the DB will be
	fetched twice and the second time will overwrite the first data.
	Only fetch DB data if the SDR fetch state is idle.  Also, when
	fetching from the DB, free the SDR data if it is allocated.

	* lib/control.c, lib/sensor.c: Modified the addition of
	nonstandard sensor and controls so that the next unused number is
	picked instead of having to supply the number.

	* lib/oem_atca.c: Modified the controls for the IPMCs to let the
	control code pick the control number.  This handles a problem
	controls not being handled correctly for ATCA blades with multiple
	FRUs.

2006-11-10 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: Don't set a connection inactive if it goes down,
	let the active-reporting interface handle that.  Otherwise systems
	without inactive links will report inactive if the connection goes
	down.

2006-11-09 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/gui_list.py: Added a way to set the
	style of a column entry.

	* swig/python/openipmigui/gui.py: Added a "watch list" to the GUI.
	You can put controls, entities, and sensors you want to watch into
	this list and monitor them.

	* swig/python/openipmigui/_sensor.py: Add support for the watch list.
	* swig/python/openipmigui/_control.py: ditto
	* swig/python/openipmigui/_entity.py: ditto

2006-11-08 Corey Minyard <cminyard@mvista.com>

	* Makefile.am, configure.in: Rework the setting up of the library
	environment for Perl and Python.  The code would, by default, pick
	up the libraries from the installed directory instead of the local
	directories.  For lack of a better option, the modifications
	LD_PRELOAD the libraries that are required.  Also make the setting
	of the libs required by swig cleaner and put it in a common place.
	* swig/perl/Makefile.am: ditto
	* swig/python/Makefile.am: ditto
	* swig/python/openipmigui/Makefile.am: ditto

2006-11-07 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/_fru.py: Added a refresh button to
	re-read the whole FRU contents.  This allows you to change
	multi-record data and see what happens.
	
	* swig/python/openipmigui/gui.py: Got wheel mouse scrolling working.
	* swig/python/openipmigui/gui_list.py: ditto
	* swig/python/openipmigui/gui_treelist.py: ditto

	* swig/python/openipmigui/gui_setdialog.py: Added an option to
	allow using a Text widget for multi-line input (for multi-record
	data).

	* swig/python/openipmigui/_fru.py: Use the long option to
	gui_setdialog for binary or unicode data.

	* include/OpenIPMI/ipmi_fru.c, lib/fru.c, include/OpenIPMI/ipmi_fru.h:
	Added infrastructure for getting enumeration values from FRU nodes.

	* lib/normal_fru.c: Added enumeration support for multirecord FRU
	nodes.

	* lib/oem_atca_fru.c: Added enumeration stuff for the few items
	that need it.

	* swig/OpenIPMI.i: Added the enumeration interface.

	* swig/python/openipmigui/_fru.py: Added support for the new FRU
	enumerations.
	
2006-11-06 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/internal/ipmi_fru.h, lib/normal_fru.c: Redid
	the adjustment of offsets and lengths to work properly with nested
	arrays.

	* swig/python/openipmigui/gui_cmdwin.py: Fixed some problems
	dealing with backspace and delete.
	
2006-11-05 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/internal/ipmi_fru.h, lib/normal_fru.c: Reworked
	the way writing to arrays is done so it is cleaner and allows
	insertion at arbitrary points and elements that are other arrays
	or basic items.

	* include/OpenIPMI/ipmi_fru.h: Worked on docs for the changes.

	* swig/python/openipmigui/_fru.py, lib/oem_atca_fru.c: Adjusted
	for the previous changes.

	* swig/OpenIPMI.i: Make sure the string on an empty binary array
	is terminated.

2006-11-03 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca_fru.c: Massive rewrite to make this table-driven and
	add setting capability.

	* swig/python/openipmigui/gui_treelist.py: Add the ability to insert
	items before a list element.
	
	* swig/python/openipmigui/_fru.py: Add the ability to insert items
	before an array element.  Fix boolean handling.

	* lib/normal_fru.c, include/OpenIPMI/internal/ipmi_fru.h: Move the
	FRU decoding from the ATCA code into here and make it generic.
	Convert the standard FRU multirecord handling to the new code.

	* lib/oem_atca_fru.c: Convert multirecord handling over to the
	generic version.

	* configure.in: Move to version 2.0.9-rc1

2006-11-01 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c: Fixed a problem with scanning entity association
	records.

	* include/OpenIPMI/ipmi_fru.h, lib/normal_fru.c: Added
	multi-record helper functions for modifying multirecord data.

	* lib/normal_fru.c: Fixed some problems dealing with multirecord
	lengths.

	* lib/oem_atca_fru.c: Added writing FRU data for the address
	table.

	* swig/python/openipmigui/_fru.py: Adjustment to improve the way
	this works.

2006-10-31 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_fru.h, lib/normal_fru.c: Added some better
	handling of multirecord modification.

	* lib/fru.c: Warn and recover on zero-length FRU writes.

	* lib/normal_fru.c: Added better setup handling for new FRU areas.

	* lib/normal_fru.c: Added FRU area data to the FRU information.

	* swig/python/openipmigui/_fru.py: Added support for re-displaying
	the FRU data if FRU area offset data changes.

	* swig/python/openipmigui/gui_treelist.py: Added support for
	clearing all the data in the list.

2006-10-30 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_fru.h, include/OpenIPMI/internal/ipmi_fru.h:
	Added functions for getting a FRU array's subtype.
	* lib/fru.c: ditto
	* swig/OpenIPMI.i: ditto

	* swig/OpenIPMI.i: Modify fetching a subtype to return the array
	length (or -1 for non-arrays) in the value of get_field() on sub
	nodes.

	* lib/normal_fru.c: Added subtype handling for custom string
	arrays.

	* lib/normal_fru.c: Fixed reporting of arrays in custom strings so
	that it is possible to tell an empty array from a non-existent
	field.

	* swig/python/openipmigui/gui_treelist.py: Added the ability to
	remove items from the tree and added better cleanup facilities.
	
	* swig/python/openipmigui/_fru.py: Added the ability to remove
	array items.

2006-10-28 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_fru.h, include/OpenIPMI/internal/ipmi_fru.h:
	Added basic function interfaces for setting values in FRU nodes.

	* lib/fru.c: Added infrastructure for setting FRU nodes.

	* lib/normal_fru.c: Added support for setting the basic FRU item
	through the FRU nodes.

	* lib/oem_atca.c, lib/oem_atca_fru.c: Modified for new multirecord
	handling for setting, though no set support yet.

	* swig/OpenIPMI.i: Added support for the new FRU node set field
	and settable functions.

	* swig/python/openipmigui/_fru.py: Added support for setting FRU
	items.
	
2006-10-27 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca.c, doc/IPMI.ltx: Created a power feed control for
	ATCA shelfs.

2006-10-26 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c, include/OpenIPMI/internal/ipmi_entity.h: Added a
	function to refetch entity FRU information and report when it is
	done.

	* lib/entity.c, include/OpenIPMI/ipmiif.h.in: Added a way to know
	when an entity that is reported present has all its data (FRU
	information) fetched.

	* cmdlang/cmd_entity.c: Added reporting of entities being fully
	up.

2006-10-25 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca_fru.c: Added all the current ATCA-defined FRU
	information multirecord descriptors.

	* cmdlang/out_fru.c: Only parse the given number of array
	elements, don't rely an an error return to finish the array.

	* lib/entity.c: Fix a small problem where there was a remote
	chance that a FRU fetch would occur before the entity was reported
	present.

	* lib/normal_fru.c: Fix a memory leak with multirecords that don't
	have decoders.

	* swig/python/openipmigui/_domain.py: Added a way to dump
	arbitrary FRU info in a domain.

	* swig/python/openipmigui/gui_treelist.py: Added a way to expand
	the entire tree.

	* swig/python/openipmigui/_fru.py: Expand the entire tree when
	displaying FRU information.

2006-10-24 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_domain.h, lib/fru.c: More work on the
	special FRU handling.

	* lanserv/emu.c, lanserv/emu.h, lanserv/lanserv_emu.c: Added
	support for ATCA FRU locking.

	* lib/oem_atca.c: Added FRU data handling for reading/writing FRU
	inventory device 254 on the shelf manager.

	* swig/python/openipmigui/_fru.py: Make sure FRU data gets freed.

2006-10-23 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_bits.h, lib/strings.c: Add some new sensor
	types from IPMI 2.0.

	* lib/oem_atca.c: Added support for detecting version changes with
	a version change sensor event.

	* include/OpenIPMI/ipmi_domain.h, lib/domain.c, lib/fru.c: Added
	infrastructure for handling special FRU characteristics for a
	domain.

2006-10-22 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca_conn.c: Fixed a few glitches with the new ATCA
	auxiliary connection facility.

	* doc/IPMI.ltx: Added info on the new ATCA capabilities.

2006-10-21 Corey Minyard <cminyard@mvista.com>

	* lanserv/emu.c, lanserv/emu.h, lanserv/lanserv_emu.c: Added
	support for the PICMG get IP addresses and get FRU control
	capabilities commands.

	* lib/domain.c: Interpret ENOENT from a low-level connection
	change to mean the connection no longer exists.

	* lib/oem_atca.c: Free the new FRU control capabilities controls.

	* lib/oem_atca_conn.c: Clean up the ATCA IP address pinging stuff
	to work properly.

	* sample/rmcp_ping.c: Fix a problem with specifying the port.

	* swig/python/openipmigui/gui.py: Add a port removal function.

	* swig/python/openipmigui/_domain.py: Pass some more parameters
	to the port up function.

	* swig/python/openipmigui/_conn.py: Allow dynamic changes to the
	ports.

2006-10-20 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmiif.h.in, lib/domain.c: Added a function to
	get port information.
	* include/OpenIPMI/ipmi_conn.h, lib/ipmi_lan.c: ditto

	* cmdlang/cmd_conn.c, man/ipmi_cmdlang.7: Added support for the
	new port information.
	* swig/OpenIPMI.i: ditto
	* swig/python/openipmi/_conn.py: ditto

	* include/OpenIPMI/ipmi_lan.h, lib/ipmi_lan.c: Exposed some
	internals for use by the OEM ATCA handler dealing with RMCP ping
	sockets.

	* include/OpenIPMI/ipmi_picmg.h: Added the new PICMG messages from
	the new ATCA spec.
	
	* lib/oem_atca_conn.c: Added support for ATCA RMCP ping sockets so
	that the auxiliary IP connections on ATCA chassis can be
	monitored.

2006-10-16 Corey Minyard <cminyard@mvista.com>

	* doc/IPMI.ltx: Added some docs on redundant connections and on
	ATCA.

	* man/openipmicmd.1: Added information about the proper handling
	of response messages.

	* swig/python/openipmigui/gui.py: Fix a problem where sensor
	settings would get greyed

2006-10-12 Philipp Hahn

	* man/ipmi_cmdlang.7: Various cleanups
	* man/openipmi_conparms.7: ditto
	* man/openipmigui.1: ditto
	* man/openipmish.1 ditto
	* man/rmcp_ping.1 ditto

2006-10-13 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/_mc_lanparm.py: Fix a problem in a
	pulldown.

2006-10-11 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/_misc.py: Added an int array to hex
	string converter.

	* swig/python/gui_cmdwin.py: Print command output in hex.

	* swig/python/_sel.py: Print event data in hex.

2006-10-06 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_smi.c: Fix the IPMB address setting code to only set
	the channels that are reported to it.

	* lib/oem_atca_conn.c: Properly initialize the ipmb array that is
	passed to the other code.

2006-10-05 Corey Minyard <cminyard@mvista.com>

	* sample/ipmi_serial_bmc_emu.c, sample/Makefile.am: Added a serial
	BMC emulator.

2006-09-22 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui.py: Fixed a problem dealing with
	different python/TCL thread models in the GUI.  Major ugliness.
	See the code for details.

	* configure.in: Move to version 2.0.8
	
2006-09-21 Coly Li <colyli@gmail.com>

	* swig/python/Makefile.am: Fix the path mistake for install 
	handling.

2006-09-21 Coly Li <colyli@gmail.com>
	
	* swig/OpenIPMI.i: add the missed IPMI_SWIG_C_CB_EXIT to
	add_domain_change_handler and remove_domain_change_handler.

2006-09-20 Corey Minyard <cminyard@mvista.com>
	
	* cmdlang/Makefile.am: Add proper uninstall handling
	* include/OpenIPMI/Makefile.am: ditto
	* include/OpenIPMI/internal/Makefile.am: ditto
	* sample/Makefile.am: ditto
	* swig/perl/Makefile.am: ditto
	* swig/python/Makefile.am: ditto
	* swig/python/openipmigui/Makefile.am: ditto

	* swig/OpenIPMI.i: Fix a misnamed #ifdef that caused
	cleanup_lang() to not be called.

2006-09-19 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/_mc_solparm.py: Use the proper data
	object for a SOL parameter window.

2006-09-15 <nok at users.sourceforge.net>

	* man/openipmicmd.1: Fix the man page number in the header.

2006-09-13 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c: Don't set the event receiver in the MC recheck if the
	user has asked it to not be set.

2006-08-24 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/gui_list.py: Split up the list processing
	into two parts, one for a standalone toplevel list, and one for a
	list that can be contained in something else.

2006-08-01 Corey Minyard <cminyard@mvista.com>

	* configure.in, doc/Makefile.am: Autodetect the dia version and use
	the right command-line arguments depending on version.

	* Makefile.am, swig/Makefile.am: Add DIST_SUBDIRS so "make dist"
	will work even if you don't have all the tools present.

	* Makefile.am, include/OpenIPMI/Makefile.am: Added proper files to
	DISTCLEANFILES.

2006-07-31 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c: Fixed a problem with error handling for bad SDRs.

2006-07-24 Corey Minyard <cminyard@mvista.com>

	* FAQ - Added info on interpreting errors.

2006-07-22 Corey Minyard <cminyard@mvista.com>

	* lib/rakp.c: Fix a problem that causes a crash in RMCP+ if the
	IPMI interface is deleted between the RAKP1 and RAKP3 messages.

	* swig/python/openipmigui/_mc_chan.py: Fix a shutdown problem that
	could cause wierd things to happen if you delete the channel
	window while it was being fetched.

2006-07-21 Gerhard Obrecht <varnhalt2 at users.sourceforge.net>

	* lib/oem_kontron_conn.c: Add more board support and fix
	some IPMB addressing problems.

2006-07-18 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui.py, swig/python/openipmigui/gui.py: Fix
	some problems with shutdown, gets rid of an annoying failure at
	shutdown and fixes a lockup problem if there are no domains.

2006-07-16 Corey Minyard <cminyard@mvista.com>

	* sample/sample.c: Change over to use ipmi_parse_args2() so we
	are setting a good example for the users.
	* sample/sample2.c: ditto
	* sample/sample3.c: ditto

2006-06-27 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/gui.py: Fix cleanup of items to clear
	out parents properly.

2006-06-23 Gerhard Obrecht <varnhalt2@users.sourceforge.net>

	* lib/oem_kontron_conn.c: Add new board support.

2006-06-18 Corey Minyard <cminyard@mvista.com>

	* FAQ, README: Add info about the encryption used by OpenIPMI.

2006-06-08 Corey Minyard <cminyard@mvista.com>

	* configure.in: Convert wxpython into Tkinter.

	* configure.in: Older version of Tcl don't have Tcl_GetTime, they
	have an equivalent TclpGetTime (that was private, but everyone
	still used it).

	* README - Update some information, including adding all the
	required and optional packages.

	* OpenIPMI.spec.in: Added the Tcl stuff.

	* Makefile.am: Added CONFIGURING_FOR_LAN

	* configure.in: Move to version 2.0.7.

2006-06-07 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/*: Get SoL and the command window working
	with Tix, the GUI conversion is complete except for testing.

	* doc/Makefile.am: Convert the export option for dia from
	--export-to-format to --filter.

2006-06-02 Corey Minyard <cminyard@mvista.com>

	* lib/pefc.c: Only call the set_done() callback if it is non-NULL.

	* lib/mc.c: If a set_user() call is done with nothing changed in
	the user, make sure the handler is not NULL before calling and
	call the right free function.

	* swig/python/openipmigui*: Rewrote the GUI using Tk.  The SOL
	terminal is not done yet, but I think everything else works.
	Still needs testing, but most stuff should work ok.

2006-06-01 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: Fix some problems with TCL not doing logs
	correctly.

2006-05-31 Corey Minyard <cminyard@mvista.com>

	* configure.in: For gdbm, make sure to check for the library and
	not just the header file.

2006-05-30 Corey Minyard <cminyard@mvista.com>

	* configure.in: Fix the TCL_LIBS value when --with-tcllibs is
	hand-specified.

2006-05-26 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c, lib/ipmi_lan.c: Fix a couple of more signed/unsigned
	comparison warning.

	* swig/OpenIPMI.i: Fix the TCL init code.

2006-05-12 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_posix.h: Remove selector interface.
	
	* unix/posix_os_hnd.c: Remove selector interface and make
	sset_log_handler static.
	* unix/posix_thread_os_hnd.c: ditto

	* cmdlang/os_debug.c: Make sset_log_handler static.

	* unix/selector.c: Rework the mutex code to use the os handler,
	not some special interfaces that break static compiles.

2006-05-02 Corey Minyard <cminyard@mvista.com>

	* include/Makefile.am, include/net, lib/ipmi_smi.c, lanserv/lanserv.c:
	Remove include/net, as the socket interface is not used any
	more.

	* README: Improved the code structure information.

2006-04-18 Corey Minyard <cminyard@mvista.com>

	* configure.in, lanserv/lanserv.c: Add detection for syslog.

2006-04-06 Corey Minyard <cminyard@mvista.com>

	* tcl/tcl_os_hnd.c, tcl/test_handlers.c: Get these working.

	* cmdlang/ipmish.c: Add TCL support.
	* swig/OpenIPMI.i: ditto
	* swig/perl/Makefile.am: ditto
	* swig/python/Makefile.am: ditto

2006-04-05 Corey Minyard <cminyard@mvista.com>

	* tcl/*, include/OpenIPMI/ipmi_tcl.h, configure.in, Makefile.am:
	Start adding TCL support.
	* OpenIPMItcl.pc.in: ditto

2006-03-31 Corey Minyard <cminyard@mvista.com>

	* */Makefile.am: Add -Wsign-compare to find signed/unsigned
	comparison problems.
	
	* practically everything: Fixed signed/unsigned comparison problems.

2006-03-18 Corey Minyard <cminyard@mvista.com>

	* lib/sel.c: There were some subtle problems with deletes of large
	SEL contents with per-event deletion.  This cleans those up to
	make deleting large numbers of SEL entries more efficient.

	* swig/python/openipmigui/_sel.py: Call DeleteAllItems, not
	ClearAll, to remove all the elements of the list.  ClearAll
	cleared the columns, too.

2006-03-17 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi.c: Fix a bug, the input length for binary/unicode data
	wasn't being checked in device string parsing.

	* lib/ipmi.c, include/OpenIPMI/internal/ipmi_int.h: Modify
	ipmi_get_device_string() to return an error instead of the length,
	so that errors can be handled properly in device strings.

	* lib/normal_fru.c: Adjust for previous change.
	* lib/oem_atca.c: ditto
	* lib/oem_atca_fru.c: ditto
	* lib/entity.c: ditto
	* lib/sensor.c: ditto

	* swig/python/openipmigui/_sel.py: Cleaned up this file.

2006-03-14 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: If the ipmi connections received in
	ll_event_handler is invalid, ignore the event.

	* lib/oem_atca_conn.c: Fix the passing of the ipmb array
	in an error path.

	* include/OpenIPMI/ipmi_conn.h, lib/conn.c: The statistics
	interface for connections was broken for supporting multiple
	domains with the same connection.  Add a new interface that is
	capable of this.

	* lib/lan.c: Add the new statistic interface support.
	* lib/domain.c: ditto
	
2006-03-01 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca_conn.c: Need to pass an entire channel set's worth
	of IPMB addresses to the IPMB address change handlers.
	* lib/oem_kontron_conn.c: ditto
	* lib/oem_force_conn.c: ditto
	* lib/oem_motorola_conn.c: ditto

	* util/ipmi_malloc.c: Fixed some problems with some memory
	debugging handling.  With memory debugging on, it would leak
	memory!

	* lib/sdr.c: Added some trace debugging stuff.

	* lib/ipmi_lan.c, lib/ipmi_smi.c: Added printing of connection
	names in debug output (where possible).

	* lib/mc.c: Don't start operations unless the MC is in the proper
	state.
	
	* lib/entity.c: Make sure only one presence check is running at a
	time.

	* swig/python/openipmigui/gui.py: Fixed some ordering problems,
	make sure things are not used after deletion.

	* swig/python/openipmigui/fru.py: Handle some problems dealing
	with certain FRU data combinations.

	* lib/sel.c, lib/mc.c: Fix the SEL name string.

	* configure.in: Move to version 2.0.6.

2006-02-28 Corey Minyard <cminyard@mvista.com>

	* lib/chassis.c: Make sure to remove the active handler from the
	list when deleting the control.

	* lib/mc.c: If the timer was stopped due to a not running
	condition, mark the timer as stopped.

	* swig/python/openipmigui/_domain.py: Fix the interpretation of
	the "connected" parameter is the connection reporting.  It means
	that any connection to the domain is up, not that the particular
	connection is up.

	* libedit/read.c: Don't beep on el_push, that causes way too much
	beeping for my taste.

	* lib/ipmi_lan.c, lib/ipmi_payload.c, include/OpenIPMI/ipmi_lan.h:
	Make sure ipmi->handle_send_rsp_err is called outside of the
	sequence lock.

	* lib/sensor.c, include/OpenIPMI/internal/ipmi_sensor.h: Removed
	the internal sensors wait queue (part of ipmi_sensors_t).  This
	was only used to serialized SDR access, but the sdr has it's own
	wait queue, so this was kind of pointless.

	* lib/mc.c: Removed the use of the sensor wait queue.  It caused
	problems handling failure conditions and was pointless.  Also
	added some debug tracing stuff.
	
2006-02-27 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c: Make sure use_orig_addr is handled in all cases,
	including timeouts and shutdown.

	* lib/domain.c: Set the connection name to something more useful.

	* swig/python/openipmigui.py: Add a log to stdout option.

	* lib/mc.c: Rework the startup code to properly handle all types
	of failures.  Some failure cases were not handled correctly and
	could leave things hanging.

	* lib/sdr.c: Add a useful name and proper handling of shutdown
	situations to avoid leaks.

2006-02-26 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c, lib/ipmi.c: Don't copy address information for
	system interface address responses, use the address the sender
	supplied.  This fixes problem with system interface MC scanning.

	* cmdlang/cmd_sensor.c: Fixed some misnamed comments.
	
	* lib/entity.c: Make sure the domain exists before calling
	_ipmi_put_domain_fully_up().

	* lib/ipmi_lan.c: Don't call the LAN close_done call until all the
	messages have been returned as errors.

	* lib/mc.c: Fix some accounting problems with errors and
	startup_count.

	* lib/oem_motorola_mxp.c: Don't add an AMC is the removal handler
	can't be registered.

	* lib/sensor.c, lib/control.c: Add some missing MC gets and puts.

	* swig/python/openipmigui/*: Fix a lot of little problems with
	handling certain failure cases, removal and adding of sensors, and
	a host of other things.

2006-02-25 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui.py, man/openipmigui.1:  Add the ability
	to send log output to stderr as well as the command window.

	* lib/entity.c: Fixed some possible deadlocks dealing with the
	built-in hot-swap state machine and presence handling.
	
2006-02-24 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui.py, man/openipmigui.1:  Added some
	command-line parameters to control some thing about the GUI.

	* sample/rmcp_ping.c, sample/Makefile.am, man/rmcp_ping.1: Add a
	command to do RMCP pinging.

	* OpenIPMI.spec.in: Add the rmcp_ping program.

	* lib/sel.c: Fix some possible deadlocks.

	* include/OpenIPMI/ipmi_conn.h: Added a way to discover how many
	ports the connection supports.

	* lib/ipmi_lan.c: Add the function to return the number of ports.

	* lib/domain.c: Set the enabled ports right at startup to avoid
	invalid readings of the number of ports.

	* lib/entity.c: Fix a memory leak in certain error conditions
	using the internal hot-swap state machine.

	* lib/ipmi_lan.c: Fix some locking problems that could lead to
	deadlock.  Don't call connection handlers in certain timeout cases
	with the sequence lock held.

	* lib/oem_motorola_mxp.c: Add some missing entity puts.

	* swig/python/openipmigui/*: Fixed problems with entities that
	need to be re-parented.

2006-02-14 Corey Minyard <cminyard@mvista.com>

	* utils/os_handler.c, include/OpenIPMI/os_handler.h:  Add an
	interface to allow easier waiting for IPMI things to complete.

	* utils/Makefile.am: Add the new os_handler.c file.

	* unix/test_handlers.c, unix/Makefile.am: Add some OS handler
	tests and tests for the wait operations.

2006-02-13 Radisys

	* lib/ipmi_smi.c: Fix the IPMB address setting code to actually
	use the right types when interacting with the driver.

2006-02-12 Corey Minyard <cminyard@mvista.com>

	* OpenIPMI.spec.in: Added some missing files.

	* configure.in: Move to version 2.0.5.

2006-02-11 Corey Minyard <cminyard@mvista.com>

	* lib/lanparm.c: Added a hack for non-compliant systems that
	return 0xcc for unsupported LANPARM parameters instead of the
	proper 0x80 return code.

2006-02-10 Corey Minyard <cminyard@mvista.com>

	* cmdlang/Makefile.am: Fix so it will install into any random
	directory.
	* glib/Makefile.am: ditto
	* lanserv/Makefile.am: ditto
	* lib/Makefile.am: ditto
	* sample/Makefile.am: ditto
	* ui/Makefile.am: ditto
	* unix/Makefile.am: ditto
	
	* lib/lanparm.c: Fixed a data overrun in ipmi_lanparm_set_config.
	* lib/solparm.c: ditto

	* swig/python/openipmigui/*: Fixed a bunch of problems dealing
	with wxPython 2.4 issues.  Ugly...

	* lib/normal_fru.c: Fix a cleanup order problem.

	* lib/domain.c, include/OpenIPMI/ipmiif.h.in: Added a way to get
	the connection type string.

	* swig/OpenIPMI.i: Added the connection type string.

	* swig/python/openipmigui/_conn.py: Print the connection type.

	* cmdlang/cmd_control.c: Don't return that we handles the event,
	pass it on.
	* cmdlang/cmd_entity.c: ditto
	* cmdlang/cmd_sensor.c: ditto
	* cmdlang/cmd_sel.c: ditto
	* swig/python/openipmigui/_entity.py: ditto
	* swig/python/openipmigui/_sensor.py: ditto

	* swig/python/openipmigui/errstr.py: Only do a clear in 2.4
	
	* swig/python/openipmigui/_sel.py: Fix problems deleting single
	events. 
	
2006-02-10 Coly <colyli@gmail.com>, Corey Minyard <cminyard@mvista.com>

	* libedit: Add this directory

	* cmdlang/ipmish.c, cmdlang/Makefile.am: Add support for libedit
	into ipmish.

2006-02-10 Corey Minyard <cminyard@mvista.com>

	* configure.in: Convert over to use config.h instead of passing
	everything on the command line for the compiler.
	* cmdlang/ipmish.c, cmdlang/os_debug.c: ditto
	* glib/glib_os_hnd.c: ditto
	* lanserv/lanserv_config.c, lanserv/lanserv_ipmi.c: ditto
	* lib/aes_cbc.c, lib/hmac.c, lib/md5.c, lib/rakp.c: ditto
	* lib/ipmi.c, lib/ipmi_lan.c, lib/ipmi_smi.c: ditto
	* swig/OpenIPMI.i: ditto
	* swig/perl/Makefile.am: ditto
	* swig/python/Makefile.am: ditto
	* ui/basic_ui.c: ditto
	* unix/posix_os_hnd.c, unix/posix_thread_os_hnd.c: ditto
	* utils/ipmi_malloc.c: ditto

2006-02-09 Corey Minyard <cminyard@mvista.com>

	* configure.in: Added more support for handling dual glib
	libraries (1.2 and 2.0) in the swig stuff.

	* glib/Makefile.am, glib/glib_os_hnd.c: Added more support for
	handling dual glib libraries.
	* include/OpenIPMI/ipmi_glib.h: ditto

	* swig/Makefile.am: Removed glib shim, as it was not going to
	work.

	* swig/OpenIPMI.i: Fixed the glib stuff so it works properly with
	dual glib libraries.
	* swig/perl/Makefile.am, swig/python/Makefile.am: ditto

	* swig/python/openipmigui/_SoL.py: Fixed to work with wxPython
	2.4.

	* swig/OpenIPMI.i: Added missing callback entry and exit markers
	for SoL.

	* swig/python/openipmigui/gui.py: Fixed getting boolean attributes
	so it works with older versions of python.

2006-02-08 Corey Minyard <cminyard@mvista.com>

	* swig/perl/OpenIPMI_perl.c, swig/python/OpenIPMI_lang.i: Added a
	new return value type that will take an empty return and not
	modify the return value.
	
	* swig/OpenIPMI.i: Allow event handlers to take return values from
	the handler, but preserve current semantics.

	* swig/python/openipmigui/_entity.py: Cleanup and set return
	values from event handlers.
	* swig/python/openipmigui/_sensor.py: ditto

	* include/OpenIPMI/ipmiif.h.in, include/OpenIPMI/ipmi_bits.h:
	Added a way for an event handler to "handle" the event (not send
	it to the unhandled event handler) but still pass the event data
	on to other handlers.
	* lib/sensor.c, lib/control.c, lib/entity.c: ditto

	* lib/entity.c: Changed the internal presence handling to never
	pass an event (since one is never really available, and shouldn't
	matter).  The API is still there, though, and should be handled as
	before.

	* lib/oem_atca.c: Fixed a missing event handled initialization.

	* swig/OpenIPMI.i: Added the new IPMI_EVENT_HANDLED_PASS return
	value.

	* swig/python/openipmigui/_entity.py: Switched to the pass event
	handler return.
	* swig/python/openipmigui/_sensor.py: ditto
	* cmdlang/cmd_control.c: ditto
	* cmdlang/cmd_entity.c: ditto
	* cmdlang/cmd_control.c:  ditto

	* configure.in, glib/Makefile.am, glib/glib_os_hnd.c: Add support
	for a separate glib 1.2 library, so we can build with either.

	* OpenIPMIglib.pc.in: Fix some linking problems, don't need the
	glib libs or cflags.

	* OpenIPMIglib12.pc.in: Add this for the new glib 1.2 library.

	* swig/Makefile.am, swig/glibshim.c, swig/OpenIPMI.i: Add a glib
	shim so we can do both glib-2.0 and glib-1.2 at the same time.

	* swig/python/openipmigui.py: Add some parameter handling

	* swig/python/openipmigui/_domain.py: Fix some problems with
	handling python 2.2.
	* swig/python/openipmigui/_term.py: ditto

2006-02-07 Corey Minyard <cminyard@mvista.com>

	* lib/lanparm.c, include/OpenIPMI/ipmi_lanparm.h: Add a way to
	detect if a parm is an enum and get the enum string and index
	values.
	* lib/solparm.c, include/OpenIPMI/ipmi_solparm.h: ditto
	* lib/pef.c, include/OpenIPMI/ipmi_pef.h: ditto

	* swig/OpenIPMI.i: Add the new enum interfaces for lanparm and
	solparm and pef.

	* swig/python/openipmigui/_SoL.py: Add an error report if SoL
	won't work on an interface.

	* swig/python/openipmigui/_mc_chan.py: Add support for detecting
	if an MC supports SoL before offering solparm configuration.
	
	* swig/python/openipmigui/_mc_lanparm.py: Add support for handling
	enum values.
	* swig/python/openipmigui/_mc_lanparm.py: ditto

	* lib/pef.c: Return EAGAIN if the lock could not be claimed on the
	PEF config fetch.

	* swig/python/openipmigui/_mc.py: Add support for detecting if an
	MC supports PEF and offser PEF configuration menu items for it if
	so.

	* swig/python/openipmigui/_mc_pef.py: Add support for PEF
	configuration.
	
	* swig/python/openipmigui/Makefile.am: Add solparm and pef
	configuration files.

	* Makefile.am: Added the ability to run the GUI from the main
	makefile.

	* man/openipmigui.1: Added docs on SOL, pefparms, solparms, and
	fixed up a few things.

	* lib/cmd_mc.c: Added the ability to dump all channels easily, and
	added useful string names to the channel info.

2006-02-06 Corey Minyard <cminyard@mvista.com>

	* lib/solparm.c, include/OpenIPMI/ipmi_solparm.c: Added
	configuration of SoL parameters.

	* lib/Makefile.am, include/OpenIPMI/Makefile.am: Added new solparm
	files.

	* cmdlang/cmd_solparm.c, cmdlang/cmdlang.c, cmdlang/Makefile.am:
	Added support for solparms.

	* swig/OpenIPMI.i: Added support for solparms.	

	* swig/OpenIPMI.i: Fixed bugs in lanparm and pef config and parm
	set handling, they were referencing a possibly uninitialized
	variable.

	* swig/python/openipmigui/_mc_solparm.py: Added solparm support in
	the GUI.

	* swig/python/openipmigui/_mc_chan.py: Tie-ins for solparm support
	are here.
	
	* swig/python/openipmigui/Makefile.am: Add the new solparm file.

2006-02-03 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_sol.c: Fixed some problem with nack handling.

	* swig/OpenIPMI.i: The nack_release function had an invalid
	parameter.

	* swig/python/openipmigui/_term.py: Finished out a lot of the ANSI
	handling and added color support.

2006-02-02 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/_SoL.py: Add in all the SoL handling.

2006-02-01 Corey Minyard <cminyard@mvista.com>

	* swig/python/openipmigui/_term.py: Lots of work on terminal
	emulation and improving performance.

2006-01-28 Corey Minyard <cminyard@mvista.com>

	* swig/perl/OpenIPMI_perl.c, swig/perl/OpenIPMI.h: Added the
	ability to return a return value from a function.
	* swig/python/OpenIPMI_lang.i: ditto

	* swig/OpenIPMI.i: Modified sol_data_received_cb to handle the
	return value properly.

	* include/OpenIPMI/ipmi_sol.h, lib/ipmi_sol.c: Added a function to
	release a SOL NACK situation.

	* swig/OpenIPMI.i: Added the SOL NACK release function.

	* swig/python/openipmigui/_term.c: Fixed a problem with character
	handling.

2006-01-27 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: If the BMC returned a completely bogus response to
	a get device id during connection startup, the domain would remain
	in a perpetually messed up state.  This adds something to the
	normal domain audit to detect this situation and try again.

	* lib/ipmi_sol.c: Worked on the packet and state locking to make
	sure that a lock was held during state changes, locks were not
	held in callbacks, and callbacks are done in the right order.

	* lib/ipmi_sol.c: Added code to do packet processing in order and
	not hold locks in callbacks.  This required some complicated
	additions of wait lists, but should guarantee to the user that all
	callbacks will be in order and will occur one at a time from a SoL
	connection.

	* lib/entity.c: Modified MC refcounts to not be held over a
	message.  Bad idea.

	* lib/ipmi_lan.c: The OEM finished callback could return a NULL
	connection if shutdown was occurring, handle that.

	* swig/python/openipmigui/_cmdwin.py: Added history saving for the
	command window.
	* swig/python/openipmigui.py: ditto

	* swig/python/openipmigui/_saveprefs.py: Clean up error handling.

	* swig/python/openipmigui/gui.py: Clean up shutdown so that
	domains are cleaned up no matter how the shutdown occurs.

	* swig/python/openipmigui/Makefile.am: Modify python path to
	allow building and execution in alternate object directories.

	* swig/perl/Makefile.am: Modify paths to allow make check to
	work in alternate object directories.

2006-01-26 Corey Minyard <cminyard@mvista.com>

	* lib/normal_fru.c: Clear out the FRU settings if the FRU decode
	fails, to avoid a crash at FRU destruction time.

2006-01-25 Corey Minyard <cminyard@mvista.com>

	* lib/strings.c: Added some sensor code strings specified by
	errata to the spec.

	* lib/ipmi_sol.c: Replaced the callback_lists used for reporting
	status with locked lists.  The locked-lists are race-free and
	handle all the deletion while in use type cases.

	* lib/ipmi_sol.c: Make logging consistent with the rest of
	OpenIPMI, add the filename and function to all logs.

	* lib/ipmi_sol.c: Add locking for OOB handling, as it was racy.

	* lib/ipmi_sol.c, lib/ipmi.c: Moved SOL payload registration to
	initialization routines so it is only done once.

	* lib/ipmi_sol.c: Added locks for the SoL connection list and
	reworked the list so the memory allocation is not required.

	* lib/ipmi_sol.c: Consolidated the callback list handling into the
	one place it was left in use.  Converted all the fatal logs into
	severe ones since fatal means the logger should termintate the
	program.

	* lib/ipmi_sol.c: Added refcounting to make sure the sol
	connection is not in use when it is deleted.

	* lib/ipmi_sol.c: Reworked the timer code to handle shutdown races
	properly.

2006-01-24 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_sol.c: Modified formatting to conform with the OpenIPMI
	standard formatting.  Make a few minor fixes (marked with FIXMEs
	for now).

	* lib/ipmi_sol.c: Fixed a bunch of memory leaks.  Still some left
	with the callback lists, but those need to be replaced with locked
	lists, so they are not worth fixing right now.

	* swig/python/openipmigui/_term.py: Started working on a terminal
	emulator for SoL.

	* swig/python/openipmigui/_SoL.py: Started working on SoL interface
	code for the GUI.

	* swig/pythong/openipmigui/Makefile.am: Added the above two files.

2006-01-20 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_conn.h: Added a way to send messages with
	options; primarily for supporting per-packet authentication and
	encryption settings.

	* include/OpenIPMI/ipmi_sol.h: Added C++ handling.

	* lib/ipmi_lan.c: Added the ability to support per-packet
	encryption and authentication for asynchronous packets (primarily
	for SOL) using the previous change to the connection interface.

	* lib/ipmi_sol.c: Added the ability to support separate
	authentication and encryption on the interfaces.  Also, default
	the values to use encryption.

	* sample/solterm.c: Modify to use encryption and authentication by
	default.  Also modify the way connection parameters are specified
	so that it is standard (the "lan" is required") and get the
	connection help via the standard interface.  Also removed all the
	DOS newlines and converted them to *nix.

	* man/Makefile.am, man/openipmi_conparms.7: Added a man page on
	the standard connection parms, so it doesn't have to be in every
	man page.
	
	* man/openipmicmd.1: Swith over to use the new conparms manpage.

	* man/solterm.1: Added docs for solterm.

	* lib/domain.c: Fixed a shutdown problem if a shutdown occurred
	during a bus scan that detected an MC.

	* swig/python/openipmigui/_domain.py: Fix a problem with shutting
	down in startup.  conn_change_cb could be called after the
	connections were brought down (due to a race).

	* swig/OpenIPMI.i: Finish out the SoL interface.

	* swig/perl/OpenIPMI_perl.c: Add a "*b" format to the callback
	caller to allow sizes arrays of characters (including nils) to be
	passed.
	* swig/python/OpenIPMI_lang.i: ditto

2006-01-19 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_sol.h, lib/ipmi_sol.c: Modified one
	interface a little to pass the state as the correct type.

	* include/OpenIPMI/ipmi_con.h: Added a way to increment the
	usecount for a connection.  Right now this is only available on
	LAN, so that a domain connection can be reused for something
	else.

	* lib/ipmi_lan.c: Added the usecount function.

	* include/OpenIPMI/ipmiif.h.in, lib/domain.c: Added a way to fetch
	the connections used by a domain.

2006-01-16 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: Fix a bug in getting some event fields.

2006-01-15 Corey Minyard <cminyard@mvista.com>

	* man/ipmish.1, man/openipmish.1: Rename ipmish to openipmish.

	* man/ipmicmd.1, man/openipmicmd.1: Rename ipmicmd to openipmicmd.

	* OpenIPMI.spec.in: Modify for renames and and the GUI.

	* swig/OpenIPMI.i: Added some missing docs.

	* configure.in: Move to version 2.0.4.

2006-01-13 Corey Minyard <cminyard@mvista.com>

	* cmdlang/Makefile.am: Add os_debug.c into the openipmish build,
	and remove it from the main library build, to allow the command
	language to be used elsewhere.

	* swig/OpenIPMI.i: Add command language interfaces for the swig
	interfaces.

	* swig/perl/Makefile.am, swig/python/Makefile.am: Now we need to
	link with libOpenIPMIcmdlang.

	* swig/perl/OpenIPMI_lang.i, swig/python/OpenIPMI_lang.i: Add
	defines for a generic callback (assuming we have already checked
	it for valid functions).

	* swig/python/openipmigui/*.py, swig/python/openipmigui.py: Add a
	command line interface to the GUI.

	* lib/mc.c: Fixed a memory leak that occurred in certain situations
	when a shutdown occurs during startup.

2006-01-12 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi.c, include/OpenIPMI/internal/ipmi_int.h: Massive
	restructure of the way connections done.  All the connection-type
	specific code was moved out of ipmi.c and into the individual
	connection code.  A way to register connections was added, and
	ways to query argument fields from connection types was added.
	Basically, it completely abstract connection type information so
	new connections can be seamlessly added to OpenIPMI without
	changing the core code, GUI, or anything else like that.
	
	* include/OpenIPMI/ipmi_conn.h, lib/domain.c, lib/ipmiif.h.in:
	Added a way to get the arguments for a connections.

	* lib/ipmi_lan.c, lib/ipmi_smi.c: Adjusted for the previous
	changes.

	* include/OpenIPMI/ipmiif.h.in, swig/OpenIPMI.i: Added interfaces
	for the connection abstraction.

	* swig/perl/OpenIPMI_lang.i, swig/python/OpenIPMI_lang.i: Added
	types necessary for the new connection abstractions.

	* swig/perl/test_lanparm, swig/perl/test_pet: Modified due to
	a previous renumbering of the LAN parameters.

	* swig/python/openipmigui.py, swig/python/openipmigui/*.py:
	Massive restructure to use all the previous changes to support
	dynamically determining connection type content for saving
	parameters and for querying the user for new connections.  Also
	switched over to using domain watching to detect new domains.

2006-01-10 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/internal/ipmi_int.h, lib/ipmi.c: Add support
	for connection-type registration for parsing, to remove all the
	connection-specific code from ipmi.c.  This is very important
	because it allows OEM connection handlers to register themselves
	fully and interact with standard mechanisms for connection
	setup/teardown.  Also add a help interface.

	* lib/ipmi.c: Added handling for multiple calls to ipmi_init() and
	ipmi_shutdown().

	* lib/ipmi_lan.c: Add support for the new parsing interface,
	basically moving stuff from ipmi.c.
	* lib/ipmi_smi.c: ditto

	* lib/ipm_lan.c: Remove _ipmi_lan_handle_connected, as it is not
	needed any more as MXP is gone.

	* swig/python/openipmigui/_conn.py: Add support for connection
	handling in domains.
	* swig/python/openipmigui/_domain.py: ditto
	* swig/python/openipmigui/gui.py: ditto
	
	* swig/python/openipmigui/Makefile.am: Add the _conn.py file.

	* sample/ipmicmd.c, sample/Makefile.am: Remove the popt parsing
	code, it could not properly handle the new-style arguments (that
	had "-<c>" after popt finished parsing the options.  It's a lot
	shorter without popt, anyway.

	* include/OpenIPMI/ipmiif.h.in: Added parse args and option help
	interfaces.

	* swig/OpenIPMI.i: Added parse args and option help interfaces.

	* cmdlang/cmdlang.c, include/OpenIPMI/ipmi_cmdlang.h: Add a
	"help_finish" function to commands to allow dynamic help
	content.

	* cmdlang/ipmish.c: Adjust for previous changes.

	* cmdlang/cmd_domain.c: Make the "domain open" help dynamic based
	upon the new help interfaces.

	* include/OpenIPMI/ipmi_conn.h: Add an interface to the connection
	for returning the current arguments that could be fed to a new
	connection.
	
2006-01-09 Corey Minyard <cminyard@mvista.com>

	* man/openipmigui.1, man/Makefile.am: Started a man page for the
	GUI.

	* lib/domain.c, include/OpenIPMI/ipmiif.h: Added a way to rescan
	all IPMB busses known by the domain.

	* swig/OpenIPMI.i: Added the rescan all IPMB busses function.

	* lib/lanparm.c: Moved the num_alert_destinations field to a
	location that makes more sense.

	* swig/python/openipmigui.py: Renamed "~/.ipmigui.startup" to
	"~/.openipmigui.startup"

	* swig/python/openipmigui/*.py: Finish up user handling, clean up
	a bunch of other things.

2006-01-08 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c: Added handling of checking if the channel support
	RMCP+ before allowing setting of 20-bit passwords.  Also allow
	a null handler for ipmi_mc_set_user().
	
	* swig/python/openipmigui/*.py: Work on IPMI user handling.

2006-01-06 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: Need a separate blocking and callback setup
	define, as we might need to handle these differently.

	* swig/python/OpenIPMI_lang.i: Add defines for the previous
	change.
	* swig/perl/OpenIPMI_lang.i: ditto

	* swig/python/openipmigui/*.py, swig/python/openipmigui.py: More
	work on getting the 2.4 version of wxPython working.

	* swig/OpenIPMI.i: Fix a comment, change the users callback
	and object list reference to pass the proper value.
	* swig/perl/OpenIPMI_perl.c: Adjust for the previous change.

	* lib/mc.c: Allow a NULL callback in ipmi_mc_channel_set_access().

	* swig/python/openipmigui/*.py: Work on getting the lanparm values
	and channel values settable.
	
2006-01-05 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: Add a way for the languages to plug-in code at
	the beginning and end of a function that handles callbacks or may
	block.  This allows Python to release the GIL lock in older
	versions of Python.

	* swig/python/OpenIPMI_lang.i: Add defines for the previous
	change.
	* swig/perl/OpenIPMI_lang.i: ditto

	* swig/OpenIPMI.i: Only initialize gthreads if it is not already
	initialized.

	* swig/python/openipmigui.py: Fix the GUI startup to use the
	proper OnInit structure for wxPython.

	* unix/posix_thread_os_hnd.c, unix/posix_os_hnd.c: Fix the
	get_random() function to fill in all the data.

	* swig/python/openipmigui/*.py: Convert over from the wxPython 2.6
	Bind() functions to the older EVT_xxx() bind functions.

2005-12-30 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: Fix problems with the channel info and
	channel access data structures provided in callbacks; make
	copies of those so the use can keep them around in the swig
	languages.  Also add copy operations on the channel access
	and user data structures and fix some problems with references
	on various set operations.

	* swig/python/OpenIPMI_lang.i: Create references for objects
	passed to Python parameters, since Python doesn't do that
	automatically.

	* swig/python/openipmigui/Makefile.am: Add _mc_chan.py and
	_mc_lanparm.py.

	* swig/python/openipmigui/_mc_chan.py: Add MC channel info
	handling

	* swig/python/openipmigui/_mc_lanparm.py: Add MC lanparm
	handling.

	* swig/python/openipmigui/_domain.py: Fix some formatting

	* swig/python/openipmigui/_mc.py: Add support for the MC channel
	and lanparm handling.

2005-12-29 Corey Minyard <cminyard@mvista.com>
	
	* lib/ipmi_payload.c: Fix things so send message commands can be
	routed through a LAN channel.  This allows ATCA AMCs to be
	directly communicated with.

2005-12-28 Corey Minyard <cminyard@mvista.com>

	* cmdlang/cmd_domain.c, man/ipmi_cmdlang.7: Add doc info about
	the authtype and privilege fields.

	* lib/rakp.c: Fix a comment error about the message the rolem hack
	applies to.

	* swig/python/Makefile.am: Add a way to run the gui from the
	makefile, to avoid having to set the paths by hand.

2005-12-20 Corey Minyard <cminyard@mvista.com>

	* doc/IPMI.ltx: Fixed a cross reference.

	* doc/Makefile.am: Fixed the latex build to run bibtex and latex
	the apropriate number of times.

2005-12-14 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i, swig/python/OpenIPMI_lang.i: Added support for
	older versions of Python.

	* OpenIPMI.spec.in: Cleaned up some GUI stuff.

	* swig/python/openipmigui: Lots of work in this directory, have a
	mostly complete GUI now.

	* include/OpenIPMI/ipmi_posix.h; Added posix_vlog() back so
	openhpi will compile.  posix_vlog() is still considered
	deprecated, though.
	* unix/posix_thread_os_hnd.c, unix/posix_os_hnd.c: ditto

	* cmdlang/cmd_domain.c, man/ipmi_cmdlang.7: Fixed some problems
	with the "domain open" documentation.

	* cmdlang/cmd_domain.c: Fixed a problem with a possible memory
	leak in one failure scenario.

	* swig/OpenIPMI.i, samples/solterm.c: Switch over to the new log
	handler.

	* unix/posix_thread_os_hnd.c: Fix a problem where a wrong
	function was being called for logging.

	* swig/OpenIPMI.i, configure.in: Modified things to use the
	right threads library for perl and python.
	* swig/perl/Makefile.am, swig/perl/OpenIPMI_lang.i: ditto
	* swig/python/Makefile.am, swig/python/OpenIPMI_lang.i: ditto

	* configure.in: Move to version 2.0.3.

2005-12-13 Corey Minyard <cminyard@mvista.com>

	* lib/rakp.c: Add a proper error handler for timeouts.

	* lanserv/lanserv_ipmi.c: return an error on invalid auth to
	rakp3.

	* cmdlang/ipmish.c, cmdlang/cmd_domain.c: Add useful error
	reporting.

	* include/OpenIPMI/ipmi_err.h, lib/strings.h: Added a way to get
	the length of an error string so it can be dynamically allocated
	to the right size.

	* swig/OpenIPMI.i: Added an error string fetcher.

2005-12-08 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: Added the event method call_handlers that allow
	an event to be interpreted after the fact.

2005-12-06 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: Fix wrong name of set_event_log_enable for the
	MC class.

2005-12-05 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: Added compare functions for all entity ids.

	* swig/OpenIPMI.i: Redid all constants to use %constant.  Also
	renamed some misnamed ones, they are not supposed to begin with
	IPMI_.

	* swig/OpenIPMI.i: Fixed the hot-swap comments for the
	auto-activate/deactivate settings.

	* include/OpenIPMI/ipmiif.h.in, lib/entity.c, swig/OpenIPMI.i:
	Added a function that returns if the entity supports auto activate
	or auto deactivate time.

	* lib/fru.c: Make sure to return an error instead of crashing if a
	root node fetcher is not installed.

	* lib/oem_atca.c: Set the auto activate/deactivate function to
	NULL instead of real functions that return value.  That lets the
	upper level code detect that this is not supported.
	
	* swig/python/OpenIPMI_lang.i: Fixes problems with returning NULL
	char ** and other ** objects.

2005-12-03 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: Added a method to get the MC id for an entity.

2005-12-02 Corey Minyard <cminyard@mvista.com>

	* swig/OpenIPMI.i: There was a critical error in the
	convert_to_xxx methods; they returned a string instead of an error
	and were inconsistent (A NULL return might mean success or an
	error).  Make them consistently return an int and remove the
	"convert_" prefix since it seems unnecessary.  This is,
	unfortunately, not backwards compatible, but needs to be fixed.
	And hopefully there are not too many perl/python users yet.

	* swig/perl/*, swig/python/*: Adjusted for the previous change.

	* swig/OpenIPMI.i: Fixed problems dealing with threshold and event
	strings.

	* swig/OpenIPMI.i: Have the discrete event handle call the proper
	callback.

	* swig/OpenIPMI.i: Add an event delete capability.

	* swig/python/OpenIPMI_lang.i: Fix a hidden (in a macro) vague
	else clase.

2005-12-01 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_mc.h, include/OpenIPMI/internal/ipmi_sensor.h:
	Move the ipmi_sensor_get_mc() call to a more public interface,
	primarily to give the GUI access to it.

	* swig/OpenIPMI.i: Add get_mc() to the sensor class.

	* swig/OpenIPMI.i: Added function to conver the various threshold
	and event values into strings.

2005-11-30 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c: Got something wrong in the new MC state machine.  Need
	to call mc_startup without any locks held.

	* lib/entity.c: Fixed some problems with detecting presence from
	children.  Also fixed some bugs dealing with entity containment
	SDR records.

	* swig/OpenIPMI.i: Fix threshold printing

2005-11-29 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c: Keep the entity key around (channel, IPMB, id,
	instance) even if the entity's SDR is destroyed.

	* lib/mc.c: Added a callback when the MC is completely up.  This
	was a major undertaking, the basic operation of MCs had to change
	substantialy.  Before, MCs could go active and inactve any number
	of times and the transitions were counted and reported
	appropriately.  This no longer happens; the MC will go through a
	state machine and active/inactive/fully up will only happen in
	order.

	* swig/OpenIPMI.i: Add the MC fully up handler methods.

	* lib/oem_atca.c: Make sure the MC is scanned when the entity is
	newly present (as well as when it goes away, which was already
	there).  Also some code cleanups.

	* lib/ipmi_smi.c: Fix a "memory use while free" problem at
	shutdown.

	* cmdlang/cmd_domain.c: Remove the code and requirement for
	including internal/ipmi_event.h

	* lib/domain.c: Restart the domain audit timer immediately when
	the timeout is set.

	* glib/glib_os_hnd.c: Clear the running flag when timer is
	stopped.

2005-11-28 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca.c: Make sure the main entities I create hang around
	after devices have been removed, so the configured data from the
	address table stays valid.

2005-11-27 Corey Minyard <cminyard@mvista.com>

	* swig/python/ipmigui.py: removed

	* swig/python/openipmigui.py, swig/pythong/openipmigui/*: Started
	work on a real GUI.

	* OpenIPMI.spec.in, configure.in: Added GUI directories.

2005-11-26 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca.c: Set the number of values properly on non-identifier
	controls.

	* swig/OpenIPMI.i: Properly name get_light and set_light (remove
	the ipmi_control_ from in front of them).  Fix a doc error.

	* include/OpenIPMI/ipmiif.h.in: The setting light information
	about local control and color support didn't have per-light
	values, which was a problem.  A new interface was added, the
	old one only works for the first light.
	* include/OpenIPMI/internal/ipmi_control.h: ditto
	* lib/control.c: ditto
	* cmdlang/cmd_control: ditto
	* lib/oem_atca.c: ditto
	* swig/OpenIPMI.i: ditto

	* swig/OpenIPMI.i: Fix a problem setting light parms

2005-11-25 Corey Minyard <cminyard@mvista.com>

	* lib/aes_cbc.c: Make sure we don't coredump if the connection
	doesn't get set up.

	* lib/domain.c: Don't iterate the domain list if it is NULL.

	* lib/ipmi_lan.c: Allow RMCP+ to be specified explicitly as a
	connection type.

	* swig/OpenIPMI.i: On an error, pass in a valid dummy array when
	delivering control value lists, since they may be NULL on an
	error.

	* swig/OpenIPMI.i: Add entity SDR id and entity id string fetch
	methods.
	
2005-11-24 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c, lib/domain.c: Make sure certain things don't run when
	the object is being destroyed.

	* lib/opq.c: Fix an opq destroy error.

2005-11-23 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c: Remove the check for the MC being active when
	allowing the sensor to perform operations.  It's not always
	accurate and shouldn't matter.
	* lib/control.c: ditto

	* swig/OpenIPMI.i: Fix some string handling errors.

	* swig/OpenIPMI.i: Fix the threshold_reading_cb to pass the error
	as a parameter

	* swig/python/OpenIPMI_lang.i: Handle generating exception
	information from callbacks.

2005-11-22 Corey Minyard <cminyard@mvista.com>

	* swig/python/OpenIPMI_lang.i: Fixed all the calls to grab/release
	the lock state so things will always work properly no matter where
	the calls come from.

2005-11-21 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c: call _ipmi_mc_put() at the end of
	ipmi_entity_get_mc_id().

2005-11-17 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c: Make sure to handle all cases of partial data in a
	set sensor event enables response.  Also be sure to mask off
	reserved bits.

	* cmdlang/cmd_sensor.c: Fix an error report function location.

	* include/OpenIPMI/ipmi_mc.h: Add ipmi_event_alloc() to this file
	so you can allocate events to add to the SEL.  Otherwise you would
	have to include internal include files.

	* cmdlang/cmd_sel.c: No longer need the event.h include.

	* lanserv/lanserv_ipmi.h, include/OpenIPMI/lanserv.h: Change the
	"idx" of a session to its handle (since the index is something
	else) and rework the "Get Session" handling code in the lan server
	to actually be correct.

2005-11-16 Corey Minyard <cminyard@mvista.com>

	* swig/perl/Lanserv.pm: Removed the need for threads, use fork()
	instead, for the perl tests.
	* swig/perl/test_chan: ditto
	* swig/perl/test_fru: ditto
	* swig/perl/test_lanparm: ditto
	* swig/perl/test_pef: ditto
	* swig/perl/test_pet: ditto

	* swig/perl/OpenIPMI_lang.i: Added unsigned in typemaps for swig.

	* unix/heap.h: Fix a test so an unsigned value doesn't go negative
	in a test.

	* swig/perl/Makefile.am: Add test_pef, since it was missing.

	* lib/pef.c: Fix a problem writing PEF alert strings.

2005-11-13 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi.c: Remove some bogus additions of string nil characters
	and fix an incorrect index for setting the second port of a LAN
	address.

2005-11-09 Corey Minyard <cminyard@mvista.com>

	* lib/sel.c: Don't set startup_SEL_time if the user hand-sets
	the SEL time.

	* lib/oem_atca.c: Added some prints on some ATCA table errors.

2005-11-04 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c: Allowed null handlers in some set calls.

	* include/OpenIPMI/ipmiif.h.in: Correct some documentation on
	managed hot-swap.

	* include/OpenIPMI/ipmi_fru.h: Added some missing information to
	the comments.

	* doc/IPMI.ltx: Added info on the new FRU interfaces, cleaned up a
	few things.

2005-10-30 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/internal/ipmi_mc.h, lib/mc.c: Add a way to
	force the active value without reporting it.

	* lib/domain.c: Force the system address MC to always be active,
	since it makes no sense for it to be inactive.

	* lib/cmdlang.c: Make sure output is reported properly for binary
	and unicode output to avoid warning messages.

2005-10-24 Matt Domsch <Matt_Domsch@dell.com>
	* ipmi.sysconf: add IPMI_POWERCYCLE back in, change SuSEconfig
	modulename to .ipmi

2005-10-20 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_conn.h: Modify the ipmb-providing
	functions to take an array of IPMB addresses, not a single ipmb
	address.  Required for per-channel IPMB support.  An unfortunate
	(mostly internal) interface change.
	
	* lib/domain.c, include/OpenIPMI/internal/ipmi_domain.h: Add
	per-channel IPMB address support.
	* lib/ipmi_lan.c: ditto
	* lib/ipmi_smi.c: ditto
	* lib/oem_atca.c: ditto
	* lib/oem_atca_conn.c: ditto
	* lib/oem_force_conn.c: ditto
	* lib/oem_intel.c: ditto
	* lib/oem_kontrol_conn.c: ditto

	* include/linux/ipmi.h: Add per-channel IPMB support ioctls.

	* lib/ipmi_smi.c: Remove socket support, as nobody should be using
	it.

	* everything: Cleaned up a bunch of new warnings from the gcc 4.0
	compiler.

	* include/OpenIPMI/internal/ipmi_domain.h, lib/domain.c: The MC
	scanning functions were not following the rules properly; the done
	function would still be called on some errors.  Some users were
	handling this properly and some weren't.  This cleans it up to
	follow the standard rules (return an error then no callback,
	return success then always callback).
	* lib/oem_motorola_mxp.c: ditto

	* include/OpenIPMI/internal/ipmi_domain.h, lib/domain.c, lib/atca.c:
	Modified the way bus scanning works so that the ATCA code can use
	it.

	* include/OpenIPMI/internal/ipmi_domain.h, lib/domain.c:  Modified
	the domain fully up code to take a debugging parm to help know who
	is not releasing this properly.
	* lib/entity.c: ditto
	* lib/mc.c: ditto

2005-10-17 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_fru.h: Add ipmi_bits.h include.

	* include/OpenIPMI/internal/ipmi_fru.h: Add some needed includes.

	* lib/oem_atca.c, lib/oem_atca_fru.c: Move the FRU decoding to a
	different file.

	* include/OpenIPMI/ipmiif.h.in, lib/strings.c: Added ATCA blade
	domain type, and the option for local-only domains.

	* lib/domain.c, lib/ipmi.c, include/OpenIPMI/internal/ipmi_domain.h:
	Added local-only domain options support.

	* lib/domain.c, include/OpenIPMI/internal/ipmi_domain.h: Added a
	way to get the connections for a domain.

	* lib/oem_atca.c: Added support for local blade domains when coming
	in from an system interface.
	
2005-10-17 Matt Domsch <Matt_Domsch@dell.com>
	* ipmi.init: if ipmi_devintf can't be removed, don't delete /dev/ipmi0
	* ipmi.init: merge SuSE config file foo=yes vs foo=1  changes.
	* ipmi.sysconf: ditto

2005-10-13 Corey Minyard <cminyard@mvista.com>
	
	* cmdlang/Makefile.am: Fix the clean to work properly.
	* glib/Makefile.am: ditto
	* lanserv/Makefile.am: ditto
	* lib/Makefile.am: ditto
	* ui/Makefile.am: ditto
	* unix/Makefile.am: ditto
	* utils/Makefile.am: ditto

	* lib/fru.c: Added a call to cleanup the old FRU recs when the rec
	data for the FRU information is set and old FRU data exists.

	* lib/fru_spd_decode.c: Don't free the FRU data at shutdown.

	* lib/normal_fru.c: If you add a record area to a non-normal FRU,
	convert it to a normal FRU.  This lets you edit a corrupt FRU.

	* lib/oem_intel.c: Add support for the Intel SE7520 motherboard.

2005-10-09 Corey Minyard <cminyard@mvista.com>

	* lib/opq.c: Added a way to pre-allocaste opq entries, a way to
	put an item at the front of the opq instead of at the end, and a
	way for an opq operation to return if it was started or not (an
	optimization to keep from blowing the stack in operations that
	might heavily nest).

	* lib/control.c: Adjusted for the opq changes.
	* lib/entity.c: ditto
	* lib/lanparm.c: ditto
	* lib/mc.c: ditto
	* lib/pef.c: ditto
	* lib/sdr.c: ditto
	* lib/sensor.c: ditto
	
	* lib/sel.c: Optimized SEL clearing.  If the SEL detects that all
	entries are deleted, it will immediately add a fetch operation at
	the head of the queue.  If the fetch operation succeeds and clears
	the SEL, any pending deletes are marked as already done and will
	return a success for the operation.

	* lib/sel.c, include/OpenIPMI/internal/ipmi_sel.h: Added a way to
	try to force an SEL clear immediately.  NOTE: Do not use this.
	This is only for HPI.

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: Added an SEL clear
	function for the MC.  NOTE: Do not use this.  This is only for
	HPI.

	* include/OpenIPMI/internal/ipmi_mc.h: Added a way to set a custom
	clear handler.

	* cmdlang/cmd_sel.c: Added a way to force-clear an MC's SEL.

	* lanserv/emu.c: Fixed some bugs in SEL handling.

2005-10-05 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c, include/OpenIPMI/internal/ipmi_entity.h: Added a
	way to set the FRU for an entity.

	* lib/oem_atca.c: Put the shelf FRU info into the chassis entity
	(the 23.1 entity).

	* lib/oem_atca.c: Fix some problems with references on the
	multirecord decoding.

	* lib/normal_fru.c: Make sure the fru is unlocked while calling
	the root node handlers.

	* lib/fru.c: Make sure the FRU is unlocked while decoding the FRU
	data.

2005-10-04 Matt Domsch <Matt_Domsch@dell.com>
	* ipmi.init: don't strictly require LSB functions on Red Hat / VMware
	
2005-10-02 Corey Minyard <cminyard@mvista.com>

	* utils/*.c, lanserv/*.c, lanserv/*.h: Relicense part of OpenIPMI
	under a dual LGPL/BSD license so it may be used as part of a BMC
	implementation.
	* include/OpenIPMI/internal/ilist.h: ditto
	* include/OpenIPMI/internal/md2.h: ditto
	* include/OpenIPMI/internal/md5.h: ditto
	* include/OpenIPMI/internal/ipmi_malloc.h: ditto
	* include/OpenIPMI/internal/ipmi_locks.h: ditto
	* include/OpenIPMI/internal/locked_list.h: ditto
	* include/OpenIPMI/ipmi_auth.h: ditto
	* include/OpenIPMI/ipmi_err.h: ditto
	* include/OpenIPMI/ipmi_log.h: ditto
	* include/OpenIPMI/os_handler.h: ditto
	* include/OpenIPMI/ipmi_debug.h: ditto
	* include/OpenIPMI/ipmi_addr.h: ditto
	* include/OpenIPMI/ipmi_msgbits.h: ditto
	* include/OpenIPMI/ipmi_picmg.h: ditto
	* include/OpenIPMI/ipmi_bits.h: ditto
	* include/OpenIPMI/ipmi_types.h: ditto
	* include/OpenIPMI/lanserv.h: ditto

2005-09-29 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca.c: Make sure the shelf entity is reported
	before any child entities of the ATCA shelf.

2005-09-22 Corey Minyard <minyard@acm.org>

	* lib/fru.c: Added an error when FRU decode failed.

	* lib/normal_fru.c: Fixed the filename in error prints and remove
	an error log when the checksum fails.

	* lib/ipmi.c, lib/fru_spd_decode.c: Added FRU info decoding for
	SPD FRU information.  This info type occurs in DRAMs.

	* lib/sample.c: Switched over to use the new FRU decode fetching
	method.

2005-09-21 Corey Minyard <minyard@acm.org>

	* lib/event.c, include/OpenIPMI/ipmiif.h.in: Added a way to
	"interpret" an existing event the same way that new incoming
	events are interpreted.
	
	* cmdlang/cmd_sel.c: Added an "interp" option to the event
	listing command to interpret the event.

2005-09-14 Matt Domsch <Matt_Domsch@dell.com>

	* ipmi.init: use poweroff_control or poweroff_powercycle module
	option to ipmi_poweroff as appropriate.  kernel 2.6.14-rc1
	(driver 36.0) and newer uses poweroff_powercycle.

	* OpenIPMI.spec.in: %preun and %postun fixes from Fedora Core
	
2005-09-08 Matt Domsch <Matt_Domsch@dell.com>

	* ipmi.init: silence modprobe output, matches Fedora again
	
2005-09-06 Corey Minyard <cminyard@mvista.com>

	* lib/fru.c: Check that the write and write complete functions are
	available before allowing them to be called.

2005-09-06 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmiif.in, lib/entity.c: Added a function to
	get the mcid of an entity, for MC and generic entities.

2005-08-31 Matt Domsch <Matt_Domsch@dell.com>

	* ipmi.init: Updated initscript to return sane status values from
	all commands.

2005-08-31 Corey Minyard <cminyard@mvista.com>

	* lib/fru.c, include/OpenIPMI/ipmi_fru.h: Create a new abstract
	FRU interface based upon the node stuff done with multi-records.
	This is getting ready for FRU data that is not standard IPMI (SPD
	in DIMMs, for instance).

	* include/OpenIPMI/internal/ipmi_oem.h:  Move some FRU-specific
	interfaces out of here.
	
	* include/OpenIPMI/internal/ipmi_fru.h: Move the FRU-specific
	interfaces into here.

	* lib/normal_fru.c, lib/oem_atca.c: Convert over to the new FRU
	interfaces.  This changed all the multi-record interfaces, but is
	much cleaner.

	* cmdlang/out_fru.c: Use new FRU data dumping interface.

	* swig/OpenIPMI.i: Added an interface to get the FRU's root node,
	for the new abstract FRU interface.

2005-08-29 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c: Fixed a possible race during shutdown with timer
	handling.

	* lib/opq.c: Only allow the opq destroy to be done once, in case
	it is called again from the destroy callbacks.

	* lib/event.c, include/OpenIPMI/internal/ipmi_event.h: Add a way
	to get the generating MC from a standard IPMI event.

	* lib/event.c, include/OpenIPMI/ipmiif.h.in: Add a way
	to get the generating sensor from a standard IPMI event.

	* lib/domain.c: Convert over to the new function to get the
	generating MC.

	* lib/fru.c, include/OpenIPMI/internal/ipmi_fru.h: Removed all the
	"normal" FRU processing and made interfaces so it can be put into
	another file and abstracted (to allow multiple FRU data types).
	Not quite done yet, but a long way down the road.

	* lib/normal_fru.c, lib/Makefile.am, lib/ipmi.c: The "normal" fru
	processing moved here.

2005-08-26 Corey Minyard <cminyard@mvista.com>

	* ipmi.init, ipmi.sysconf, Makefile.am, OpenIPMI.spec.in: Add init
	script stuff.

	* include/OpenIPMI/ipmi_fru.h, lib/fru.c, cmdlang/cmd_fru.c: Add
	general FRU float handling.

2005-08-25 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c, lib/control.c: Fix so proper counts are held in
	shutdown situations.

2005-08-24 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c, include/OpenIPMI/internal/ipmi_domain.h: Added a
	way to tell if the domain is in shutdown.

	* lib/sensor.c: Don't allow operations if the domain/mc it is
	attached to is in shutdown or is not active.  There was a problem
	where if a sensor was getting refetched in the fetch completion
	handler, and it blew the stack because the fetch would go through
	the opq, fail, call the handler, start the fetch, etc.
	* lib/control.c: ditto

	* lib/sensor.c: Fix an error path in states_get_start() that was
	incorrectly returning success.  Fix a typo in a comment.

	* include/OpenIPMI/ipmi_sol.h: Make this into a normal unix text
	file (remove carraige returns) and general formatting cleanups.

2005-08-23 Gerhard Obrecht <varnhalt2 at users.sourceforge.net>

	* lib/ipmi.c, lib/Makefile.am, lib/oem_kontron_conn.c: Add
	support for the Kontron system interface IPMB address setting.

2005-08-23 Corey Minyard <cminyard@mvista.com>

	* cmdlang/cmd_sensor.c, man/ipmi_cmdlang.7: Fixed the docs on the
	threshold names.

	* lib/sensor.c: Fix threshold setting to clear out the unused
	threshold values (just so random data isn't sent).

2005-08-19 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c: When doing a "set sensor enable", only disable the
	bits that the sensor says it supports.

	* lib/lanparm.c: Added a hack for working with broken systems that
	return the wrong alert destination number with the response.

2005-08-18 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca.c: When a hot-swap event comes in and the MC
	already exists, it is probably an AMC insertion/removal.
	Rescan the SDRs on the IPMC when this occurs, as it probably has
	new sensors.

2005-08-16 Corey Minyard <cminyard@mvista.com>

	* OpenIPMI.pc.in: Fix linking and order for libOpenIPMIutils.
	* OpenIPMIcmdlang.pc.in: ditto
	* OpenIPMIglib.pc.in: ditto
	* OpenIPMIposix.pc.in: ditto
	* OpenIPMIpthread.pc.in: ditto
	* OpenIPMIui.pc.in: ditto

2005-08-05 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c: Fix an entity destruction problem that could
	result in a SEGV in some situations.

	* swig/OpenIPMI.i: Fix the fru multi-record node handling.
	* swig/perl/OpenIPMI_lang.i: ditto
	* swig/python/OpenIPMI_lang.i: ditto
	* swig/perl/sample: Added code for dumping multirecords.

2005-08-02 Corey Minyard <cminyard@mvista.com>

	* cmdlang/os_debug.c: Fix so log handler gets set correctly.

	* cmdlang/out_fru.c: Add support for multi-record parsing.

	* include/OpenIPMI/ipmi_fru.h, lib/fru.c: Add consts where needed.
	* include/OpenIPMI/internal/ipmi_int.h: ditto
	* include/OpenIPMI/internal/ipmi_oem.h: ditto

	* lanserv/atca.emu: Add more multi-records for testing.

	* lib/fru.c: Fix return of the multi-record root name.

	* lib/oem_atca.c: Fix problems with the multi-record parsing, add
	support for the ATCA address table.

	* swig/OpenIPMI.i: Add support for the fru nodes and multi-record
	parsing.
	* swig/perl/OpenIPMI_lang.i, swig/python/OpenIPMI_lang.i: new
	types for multi-record parsing.

	* ui/ui.c: Some const fixes.

	* lib/lanparm.c: Fixed the RMCP+ cipher suites lanparm entry so it
	is optional.

	* include/OpenIPMI/internal/ipmi_oem.h: Add comments on
	registering FRU multi-record handlers.

	* lib/fru.c, include/internal/ipmi_oem.h, include/ipmi_fru.h:
	Modified the fru node to return floating point and boolean
	values.
	* lib/oem_atca.c: ditto
	* ui/ui.c: ditto
	* cmdlang/out_fru.c: ditto

	* lib/fru.c: Added support for the standard FRU multi-record for
	power supplies (types 0-2).

2005-07-21 Darius Davis <dariusd@users.sourceforge.net>

	* lib/ipmi_sol.c: Fix potential crash due to a dodgy memset().
	Fixed an incorrect warning text string.

2005-07-14 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c: Make sure the entity for a sensor is locked even
	if the MC is bad.

	* lib/sel.c: Remove a bogus sel_unlock().

	* include/OpenIPMI/os_handler.h: Add a way to directly set the
	log handler for an os handler.

	* include/OpenIPMI/ipmi_posix.h: Remove the posix_vlog garbage.
	We still maintain backwards compatability, but this was a stupid
	idea.
	* unix/posix_os_hnd.c: ditto
	* unix/posix_thread_os_hnd.c: ditto

	* unix/posix_os_hnd.c: Add in the set_log_handler os_handler
	function.
	* unix/posix_thread_os_hnd.c: ditto
	* glib/glib_os_hnd.c, include/OpenIPMI/ipmi_glib.h: ditto
	* cmdlang/os_debug.c: ditto

	* cmdlang/ipmish.c: Convert over to set_log_handler.
	* sample/sample.c: ditto

	* sample/ipmicmd.c: Remove posix_vlog and use the default one.
	* sample/sample2.c: ditto
	* sample/sample3.c: ditto

	* configure.in: Move to version 2.0.2
	
2005-07-13 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/internal/ipmi_sensor.c, include/OpenIPMI/ipmiif.h.in:
	Move ipmi_sensor_get_owner() to ipmiif.h for the CIM mapping.

	* everything: A massive update to improve const correcteness.

2005-07-12 Corey Minyard <cminyard@mvista.com>

	* lib/fru.c: Fix a problem with uninitialized variable FRU string
	data and another problem with encoding later fields after a
	changed field.

	* cmdlang/cmd_fru.c: Must reference the FRU again before deleting;
	the caller is holding their own reference and will dereference it
	themselves.

	* lanserv/emu_cmd.c: Fixed a problem reading continued command
	strings in the emulator.

	* lanserv/README.emulator: Fixed some documentation for FRU handling.

	* lib/sdr.c: When checking the length of SDR data, allow extra
	data at the end.

2005-07-06 Corey Minyard <cminyard@mvista.com>

	* swig/perl/test_fru: Added some more tests trying to reproduce
	a user problem.

2005-06-14 Forrest Zhao <forrest.zhao@intel.com>, Corey Minyard <cminyard@mvista.com>
	
	* include/OpenIPMI/ipmi_fru.h, include/OpenIPMI/internal/ipmi_oem.h 
	  lib/fru.c, lib/oem_atca.c, ui/ui.c: Add support for OEM FRU
	  multirecord decode, providing a hierarchy interface for user to
	  get each field of decoded OEM FRU multirecord.
 
2005-06-10 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c: Fix some english grammar problems in a pring.

	* swig/python/Makefile.am, OpenIPMI.spec.in: Fix so python
	installs correctly.

	* configure.in: Move to version 2.0.1.

2005-06-05 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_fru.h: Add some docs explaining how the
	type field works in multi-records.

	* lib/fru.c: Fix the definition of fru_area_info to be static
	and not extern for the forward definition.

	* lib/fru.c: Call fru_write_handler, not fru_data_handler, on
	a write retry.

2005-06-02 Corey Minyard <cminyard@mvista.com>

	* lib/fru.c: Fix the byte ordering on reading FRU time.  Make sure
	the in_use field is reset if the FRU is written but there are no
	changes.

2005-05-19 Forrest Zhao <forrest.zhao@intel.com>

	* include/OpenIPMI/ipmiif.h, lib/domain.c, lib/oem_atca.c,
	  lib/sensor.c: Add callback for OEM-specific sensor types.

2005-05-18 Corey Minyard <cminyard@mvista.com>

	* lanserv/lanserv_ipmi.c: Use K1 instead of SIK for the initial
	key for hmac_sha1, per the IPMI 2.0 R2 errata.

	* lanserv/lanserv_ipmi.c: Adjust the range of allowed sequence
	numbers for RMCP+, per the IPMI 2.0 R2 errata.

	* lib/ipmi_lan.c: Adjust the range of allowed sequence numbers for
	RMCP+, per the IPMI 2.0 R2 errata.

	* lib/entity.c: Add presence bit sensors entries for drive slot
	and memory sensor types, per the newly added bits in the IPMI 2.0
	R2 errata.

	* lib/strings.c: Add strings for sensor bit readings for memory
	sensors, drive slot sensors, and cable sensors, per the IPMI 2.0
	R2 errata.

2005-05-17 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h, swig/OpenIPMI.i: Add the
	(dangerous) ability to set the system event log enable for an MC.
	* cmdlang/cmd_mc.c: ditto

	* lib/domain.c: Move adding the domain to the domain list to
	right where the domain is created.  That way it will be cleaned
	up properly even if it never comes up.

2005-05-10 Paul Drews <paul.drews at intel.com>

	* unix/posix_thread_os_hnd.c: Clear the internal_data structure
	after allocating.

2005-05-06 Paul Drews <paul.drews at intel.com>

	* unix/posix_thread_os_hnd.c: Initialize the mutex structure
	after it is allocated.

2005-04-27 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_sdr.h, lib/sdr.c: Added the ability
	to clear out and SDR like it has never been fetched.

	* include/OpenIPMI/internal/ipmi_event.h, lib/event.c, lib/sel.c:
	Added setting if the event is old into the event itself.

	* lib/oem_atca.c, lib/oem_motorola_mxp.c, lib/domain.c: Use the
	old event info in the event itself to reject old events.
	
	* lanserv/README.emulator: Added channel info fetching.
	* lanserv/atca.emu: ditto
	* lanserv/emu.c: ditto
	* lanserv/emu.h: ditto
	* lanserv/emu_cmd.c: ditto
	* lanserv/lanserv_emu.c: ditto

	* lib/chassis.c: Tie into the MC going inactive to remove the
	chassis controls.

	* lib/control.c: Fix handling of shutdown when destroyed to clear
	out the waitq when the control does an opq done and the control is
	destroyed.  Also fix some refcount problems on some error
	situations.
	* lib/sensor.c: Ditto, but for sensors.

	* lib/mc.c: Make sure the clear out the SDR repository to an
	intial state when the MC goes inactive.  Also add some useful
	error messages.

	* lib/oem_atca.c: Fix the detection of going to or from not
	installed state to be correct.

	* lib/entity.c: Fixed a problem where if a presence sensor got an
	error on a reading, it would not continue to try other presence
	methods.

2005-04-20 Corey Minyard <cminyard@mvista.com>

	* unix/posix_os_h.c, unix/posix_thread_os_hnd.c: Fix incorrect
	return values from perform_one_op() in these os handlers.

	* sample/ipmicmd.c: When performoning a non-interactive operation,
	make sure to not exit in the message handler, because that is done
	with the LAN object still refcounted (so it won't shut down).

2005-04-18 Corey Minyard <cminyard@mvista.com>

	* lib/sel.c: Fix a bug where deleting the last record of the SEL
	cause the SEL fetch to not work any more on systems that support
	individual deletes.

2005-04-14 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi_lan.c: Fix a bug with multiple IPMI connections on the
	same FD.

2005-04-13 Corey Minyard <cminyard@mvista.com> 

	* lib/strings.c, lib/ipmi_sol.c, sample/solterm.c: Fix compile
	problems with older compilers.

	* lib/oem_atca.c: Modify the ATCA detection to use a Get PICMG
	Properties command instead of getting the shelf FRU info address,
	since not all systems get the shelf FRU properly.

2005-04-08 Corey Minyard <cminyard@mvista.com> 

	* sample/ipmicmd.c: Make sure all error output goes to stderr and
	only submit the command once in LAN mode.
	
2005-04-07 Corey Minyard <cminyard@mvista.com>

	* OpenIPMI.spec.in: Added solterm, reorganized a little.

	* swig/OpenIPMI.h: Added domaim monitoring interfaces.

2005-04-07 Darius Davis <dariusd@users.sourceforge.net>

	* sample/solterm.c, sample/Makefile.am: Added solterm sample program.

2005-04-07 Darius Davis <dariusd@users.sourceforge.net>

	* include/OpenIPMI/ipmi_err.h: Added error codes and macros for Serial
	over LAN support

	* include/OpenIPMI/ipmi_err.h: Added prototype for ipmi_get_error_string.

	* include/OpenIPMI/ipmi_lan.h: #defined IPMI_RMCPP_ADDR_SOL to provide
	the RMCP+ address for the SoL payload.

	* include/OpenIPMI/ipmi_sol.h: New file: Serial over LAN (SoL)
	interface.

	* lib/Makefile.am: Added ipmi_sol.c.

	* lib/ipmi_lan.c: Added support for Serial over LAN on an IPMI 1.5
	connection, using the most significant "reserved" bit in the AuthType
	field.  Even on an IPMI 1.5 connection, the outgoing and incoming
	SoL packets are treated exactly the same as packets for the SoL RMCP+
	payload.

	* lib/ipmi_sol.c: New file: Serial over LAN (SoL) support.

	* lib/strings.c: Added descriptions for SoL and RMCP+ errors.

	* lib/strings.c: Added ipmi_get_error_string function to generate a
	textual description from an error code regardless of the error class.

2005-03-31 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c: Cleaned up some minor things.

2005-03-30 Corey Minyard <cminyard@mvista.com> 

	* lib/sel.c: Remove a bogus stat increment.

	* lib/ipmi_lan.c: Add a missing stat.

2005-03-30 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi_lan.c: Fix a problem with multiple connections to the
	same address.  These cannot share lan_fd entries because they
	cannot be uniquely identified.

	* include/OpenIPMI/ipmi_conn.h: Rework the RMCP+ hacks to make
	them more generic.
	* cmdlang/cmd_domain.c: ditto
	* lib/hmac.c: ditto
	* lib/rakp.c: ditto
	* lib/ipmi.c: ditto
	* man/ipmi_cmdlang.7: ditto

	* all: Release version 2.0.0.

2005-03-29 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_conn.h: Added support for a
	IPMI_CONN_HACK_BROKEN_INTEL_BMC for handling RMCP+ problems
	on Intel BMCs.  The Intel BMCs use the bottom 4 bits of the
	ROLE(m) instead of the whole ROLE(m) byte.  They also use K1
	instead of SIK to authenticate normal messages.  Both of these are
	problems with spec compliance.
	* cmdlang/cmd_domain.c: ditto.
	* lib/hmac.c: ditto
	* lib/rakp.c: ditto
	* lib/ipmi.c: ditto
	* man/ipmi-cmdlang.7: ditto

	* lib/ipmi_lan.c: It seems the payload length does not include the
	integrity padding, adjust for that.

	* lib/hmac.c: The integrity length for normal messages is 12 bytes
	for SHA1-96, not 20 bytes.
	
	* lib/rakp.c: The integrity length for RAKP4 messages was 12
	bytes, not 20 bytes.
	
	* lanserv/lanserv_ipmi.c: It seems the payload length does not
	include the integrity padding, adjust for that. The integrity
	length for normal messages is 12 bytes for SHA1-96, not 20 bytes.
	The integrity length for RAKP4 messages was 12 bytes, not 20
	bytes.

2005-03-29 Darius Davis <dariusd@users.sourceforge.net>, Corey Minyard <cminyard@mvista.com> 

	* configure.in: Add test for execinfo.h

	* utils/ipmi_malloc.c: #ifdef HAVE_EXECINFO_H around code dependent on
	execinfo.h and the backtrace function.

2005-03-24 Corey Minyard <cminyard@mvista.com> 

	* cmdlang/cmdlang.c: Cast ipmi_time_t to long long when outputting
	the data to avoid compiler warning.

	* lib/aes_cbc.c, lanserv/lanserv_ipmi.c: Don't use the padding
	from openssl, as it is incorrect for IPMI.  Add our own padding
	and turn openssl padding off.

2005-03-24 Darius Davis <dariusd@users.sourceforge.net>

	* lib/fru.c, include/OpenIPMI/ipmi_fru.h: Moved #include<time.h>
	to fru.h.

	* lib/ipmi_lan.c: #ifdef around more PF_INET6 dependent code.

	* lib/ipmi_lan.c: when reading AuthType field, only take low
	nybble.

	* lib/ipmi_lan.c: raise a warning if the BMC reports that it
	supports IPMI2 in extended capabilities, but doesn't say it
	provides extended capabilities.

	* lib/ipmi_lan.c: move RMCP+ support detection from
	auth_cap_done_p to auth_cap_done so we can give a warning for BMCs
	that don't handle Get Channel Auth Conf properly.

	* lib/sensor.c: change log2 to c_log2 for platforms that define
	log2 as a macro (Cygwin).

2005-03-23 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/mxp.h: Fixed the license to be LGPL, as
	intended.

	* configure.in: Added some target detection and some
	target-specific defines.

	* lib/ipmi.c, lib/ipmi_smi.c: Made the init/shutdown of ipmi_smi
	based upon target-specific defines.

2005-03-22 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c: Fix a bug in fru presence handling, addressing
	beyond the end of the array.

	* lib/ipmi.c: Fixed a problem with handling of 1-byte full ASCII.

	* lib/ipmi_lan.c: Lots of little fixes.

	* include/OpenIPMI/ipmi_lan.h: Added a string for the IPMI LAN
	standard port.

	* unix/posix_thread_os_hnd.c: Fix a possible double-free scenario.

	* glib/glib_os_hnd.c: Fix a possible use of free data scenario.

	* lanserv/lanserv_ipmi.c: in return_rmcpp_rsp, make the d[] array
	be one longer to accomidate the checksum.

	* lanserv/lanserv.c: in handle_msg_ipmi_dev, make the data[] array
	be one longer to accomidate the checksum.

	* sample/ipmicmd.c: Check to make sure the channel is present.

2005-03-21 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: Added IPMI 2.0 as a supported version.

2005-03-21 Darius Davis <dariusd@users.sourceforge.net>

	* lib/strings.c: Fix misnamed command string for payload activation.

2005-03-17 Corey Minyard <cminyard@mvista.com>

	* lib/fru.c: Fixed an off-by-one problem when writing FRU data.

	* unix/posix_thread_os_hnd.c: ifdef some gdbm stuff that needed it.

	* include/OpenIPMI/internal/ipmi_utils.h, lib/fru.c: Add a
	field to the notrack FRU to allow only specific areas to be
	processed.
	* lib/entity.c: ditto
	* lib/oem_atca.c: ditto, only fetch multi-records.

2005-03-16 Corey Minyard <cminyard@mvista.com>

	* lib/fru.c: Added IPMI_REQUEST_DATA_LENGTH_INVALID_CC to the
	list of errors that means the FRU fetch was too big and we should
	back off the fetch size.

2005-03-12 Corey Minyard <cminyard@mvista.com>

	* lib/lanparm.c: Fix some minor problems with IPMI 2.0 parms.

2005-03-03 Corey Minyard <cminyard@mvista.com>

	* sample/ipmicmd.c: Fixed some memory sloppiness that was causing
	segvs with test_lat.

	* lib/ipmi_lan.c: Added a boatload of statistics to the LAN
	interface.

	* lib/sel.c: Added statistics.

2005-03-02 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c, include/OpenIPMI/ipmiif.h.in: Added a
	statistics interface.

	* include/OpenIPMI/ipmi_conn.h: Added a statistics interface for
	connections.

	* lib/ipmi_lan.c: Started adding statistics.

	* cmdlang/cmd_domain.c: Added statistics dumping.

	* lib/ipmi_lan.c: Converted to socket to be non-blocking.

2005-02-28 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c: Modified sending to sending to odd netfns will
	result in immediate send without response.

	* lib/ipmi_lan.c, lib/ipmi_smi.c: Free the "name" attribute if it
	is set.

	* lib/control.c, lib/sensor.c, lib/entity.c: Don't check for the
	lock on opq_done() operations, since the lock may not be held due
	to shutdown races.

	* lib/ipmi_lan.c: Removed an unecessary "retries" and "timer"
	variables from the LAN structure.

	* lib/oem_atca.c: More hacks for broken hardware.

	* lib/sel.c: Hacks for broken hardware.

	* lib/mc: Added some information for changed MCs.

2005-02-25 Corey Minyard <cminyard@mvista.com>

	* lib/oem_atca.c: Some more fixups for the Intel chassis.

2005-02-24 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Ignore controls and sensors for presence if they
	are supposed to be ignored when the entity is not present.  I
	think I previously misunderstood this bit (not like it is well
	explained, anyway).
	
	* lib/sensor.c, lib/control.c: Make oem sensors and controls not
	ignored when the entity is not present.
	* lib/oem_motorola_mxp.c: ditto
	* lib/oem_test.c: ditto
	* lib/oem_intel.c: ditto

	* lib/oem_atca.c: Set address controls to be ignored if the entity
	is not present.

	* lib/sensor.c: Fix a problem with handling sensor state fetches
	that didn't have optional bytes.

	* lib/oem_atca.c, lib/oem_atca_conn.c: Modify fetching the shelf
	FRU to try the ECN 1.1 version first.  Commented out some
	Intel-specific hacks as the shelf gets better.

	* include/OpenIPMI/internal/locked_list.h, util/locked_list.c:
	Added a way for the prefunc to tell it to skip an item.

	* include/OpenIPMI/ipmiif.h, lib/domain.c: Added support for
	domain statistics.

	* include/OpenIPMI/ipmi_conn.h: Added a statistics interface.

2005-02-23 Tariq Shureih <tariq@linux.intel.com>, Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Added a physical slot number attribute for
	entities, useful for ATCA, CTCA, PICMG2.6, etc.
	* include/OpenIPMI/ipmiif.h.in: ditto
	* include/OpenIPMI/internal/ipmi_entity.h: ditto
	* cmdlang/cmd_entity.c, man/ipmi_cmdlang.7: ditto
	* lib/oem_atca.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* swig/OpenIPMI.i: ditto

	* lib/entity.c: Fixed an ordering problem were if the FRU becomes
	present before its entity data comes in, still fetch the FRU info.

2005-02-18 Corey Minyard <cminyard@mvista.com> 

	* cmdlang/cmd_entity.c: Add an "entity tree" command to dump
	the list of entities in a tree structure.

	* lib/fru.c: Add a new error to handle auto-resizing of FRU
	fetches with.

2005-02-11 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi_utils.c, include/OpenIPMI/ipmi_addr.h: Add an address
	comparison that does not use the LUN as part of the comparison.

	* lib/domain.c: Modify finding MCs to not use the LUN, since there
	may be multiple LUNs on an MC.

	* lib/oem_atca.c: In the Intel SDR fixups, added entity
	containment records for all the entities found in the SDRs.

	* lib/sel.c: Fixed problems with timestamp handling.

	* lib/mc.c: Fixed an error/shutdown race with timer info.

2005-02-08 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Fixed some problems with the use of qsort and the
	sorting and comparing of device locator records and entity
	association records.

	* glib/Makefile.am: Changed the name of a field to be glib, not
	posix.

	* glib/glib_os_hnd.c: Clear out the glib info so the gdbmf will be
	NULL at startup.

	* lib/domain.c: Added a general domains_initialized function to
	know if the domain lock is valid.  This is because some things can
	try to do a ipmi_domain_pointer_cb() after the domains have been
	shut down.

	* lib/sdr.c: Only store the SDRs in the database if we have a
	valid key for the MC.

	* swig/OpenIPMI.i: Initialize the glib OS handler in the right
	order.

	* utils/ipmi_malloc.c: Don't free the memory in the alloced list
	when shutting down.  It may still be in use.

2005-02-02 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/os_handler.h, lib/ipmi.c: Added an interface to
	protect users that have created their own OS handler from
	additions to the os handler data structure.

	* include/OpenIPMI/os_handler.h, lib/sdr.c: Added a non-blocking
	mode to the database.

	* configure.in: Added gdbm tests.

	* cmdlang/os_debug.c, cmdlang/Makefile.am: Added gdbm support.
	* glib/glib_os_hnd.c, glib/Makefile.am: ditto
	* unix/posix_os_hnd.c, unix/posix_thread_os_hnd.cg, unix/Makefile.am:
	ditto

2005-02-01 Corey Minyard <cminyard@mvista.com> 

	* lib/sdr.c: Add support for dynamically resizing SDR fetches if
	the system cannot support the size required.  This allowed an
	increase in the starting size but can support smaller sizes than
	were supported.
	* lib/fru.c: Ditto, but for FRU data.

	* lib/domain.c: Fixed channel handling to not scan the IPMB if
	there is not one from the channel info command.  This may cause
	some broken 1.5 systems (that do not implement the get channel
	info command properly) to not work, but that's too bad, they are
	broken.  Systems without IPMB will work much better with this
	change.

	* lib/oem_atca.c: Force instance to be 0x60 on all main units that
	came in as entity id 7 or 0.

	* include/OpenIPMI/os_handler.h: Added a database interface.
	NOTE: This change is not binary backwards compatible if you have
	created your own OS handler.

	* lib/sdr.h: Added support for storing and retrieving SDR
	data in the database for client-side caching.

2005-01-30 Corey Minyard <cminyard@mvista.com> 

	* lib/lanparm.c: Allow zero-length parm responses to represent
	optional unsupported parms.

2005-01-27 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Changes "==" to "=".

	* swig/perl/Makefile.am: Added PERLLIB to pull the modules from
	the right place.

	* lib/ipmi_lan.c: Only use the get_msg_tag() method on payloads if
	the session id is zero.

	* include/OpenIPMI/ipmi_lan.h: Improve payload docs.

2005-01-25 Corey Minyard <cminyard@mvista.com> 

	* lib/event.c: Fixed a problem with the data length when getting
	data.

	* configure.in, lanserv/Makefile.am, sample/Makefile.am: Added
	popt library detection and overriding.

2005-01-23 Corey Minyard <cminyard@mvista.com> 

	* lib/sel.c: Fixed a bug where the SEL lock was being held in
	the SEL fetch done callback.

	* include/OpenIPMI/ipmi_mc.h, include/OpenIPMI/ipmiif.h.in: Added
	routines to get the GUID for the system and for each MC.
	* include/OpenIPMI/internal/ipmi_mc.h: ditto (added set routine)
	* lib/mc.c: ditto
	* lib/domain.c: ditto
	* cmdlang/cmd_mc.c: ditto
	* cmdlang/cmd_domain.c: ditto
	* swig/OpenIPMI.i: ditto
	* man/ipmi_cmdlang.7: ditto

	* lib/ipmi_lan.c, lib/rakp.c: Fixed some broken stuff caused by
	the last changes to the LAN code.

2005-01-21 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_lan.h: Added a function to payloads to get
	the message tag for a message, and added a message tag parm to
	starting an authentication session.  This is primarily to allow
	the LAN code to set the message tags and get them.
	* lib/rakp.c: ditto
	* lib/ipmi_lan.c: ditto

	* lib/ipmi_lan.c: Modified the LAN code to allow the same socket
	to be reused for multiple LAN connections.  This should increase
	scalability by a large amount.

	* lanserv/lanserv_emu.c: Added an option to override the port
	number.

2005-01-20 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Allow the SNMP and OpenSSL libraries and compile
	flags to be hard-coded on the configure command line.

	* lib/domain.c: Fixed a problem with the type in a log.

	* lib/lanparm.c: Fixed some problem handling the newly added
	parms not being there.
	
2005-01-19 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_lanparm.h: Added the RMCP+ and VLAN
	lanparms.
	* lib/lanparm.c: ditto
	* cmdlang/cmd_lanparm.c: ditto
	* swig/perl/test_lanparm: ditto
	* include/OpenIPMI/lanserv.h: ditto
	* lanserv/lanserv_ipmi.c: ditto

	* lanserv/lanserv_ipmi.c: Fix a bug where the dummy session wasn't
	being zeroed when handling temporary session messages.

	* lib/ipmi_lan.c: Use the right size when comparing the bmc_key in
	the options.  Also remove some debugging cruft.

2005-01-17 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_mc.h, include/OpenIPMI/internal/ipmi_mc.h:
	Moved ipmi_mc_get_address, ipmi_mc_get_channel, and
	ipmi_mc_get_ipmi_address from the private to the public
	interfaces.

	* lib/sel.c: Added a comment on why the SEL fetch is aborted after
	so many reservation losses in the fetch.

2005-01-14 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi_lan.c: Fixed some race conditions between reuse of LAN
	connections and destruction of LAN connections.

	* include/OpenIPMI/ipmi_conn.h: Reworked the registering for event
	handlers to use a locked list interface.  Great reduction in code
	size and increase in reliability.
	* lib/ipmi_lan.c: ditto
	* lib/ipmi_smi.c: ditto
	* lib/domain.c: ditto
	* sample/ipmicmd.c: ditto

	* include/OpenIPMI/ipmiif.h.in: Added a domain option to not
	activate the interfaces.
	* include/OpenIPMI/internal/ipmi_domain.c: ditto
	* lib/domain.c: ditto
	* lib/ipmi.c: ditto

2005-01-13 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h, lib/entity.c: Undeprecated the
	hot-swap requester and indicator command, since HPI provides them.
	I still think it's a bad idea to use them, though.

	* include/OpenIPMI/ipmi_mc.h, include/OpenIPMI/internal/ipmi_mc.h:
	Moved the ipmi_mc_del_event() function to the public interface.

	* lib/sel.c: Clear the SEL if the SEL is empty and the overflow
	flag is set.  This appears the clear the overflow flag (at least
	on some systems) and is safe to do.

	* lib/sel.c: Fixed a bug where if the reservation was lost
	fetching a SEL, it would not fetch anything from the SEL until a
	new event was added.

	* lib/ipmi_lan.c: Modified the list of LAN addresses to be two
	hash tables, one indexed by connection and one indexed by IP
	address (all IP addresses go in).

	* include/OpenIPMI/ipmi_conn.h: Changed the connection and IPMB
	reporting to use an add/remove instead of a set for the handler.
	* lib/ipmi_smi.c: ditto
	* lib/ipmi_lan.c: ditto
	* lib/domain.c: ditto

	* lib/oem_motorola_mxp_intf.c, lib/ipmi.c: Removed old MXP
	interface support (it shouldn't be needed any more and maintenance
	was getting to be a pain).
	
	* lib/ipmi_lan.c: Added connection reuse.  If a user makes a
	connection to a system and the same connection already exists
	(same parms) then it will reuse the old connection.

	* lib/entity.c: Found a problem with disconnect/reconnect; it was
	claiming a lock recursively in once case.

2005-01-12 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Add support for openssl.
	* cmdlang/Makefile.am: ditto
	* cmdlang/Makefile.am: ditto
	* lib/Makefile.am: ditto
	* sample/Makefile.am: ditto

	* cmdlang/cmd_domain.c: Added support for the new RMCP+ LAN parms.

	* doc/IPMI.ltx: Minor cleanups.

	* include/OpenIPMI/ipmi_addr.h: Added a concept of an RMCP+
	address.  This allows payloads to be routed using the normal
	addressing mechanisms.

	* include/OpenIPMI/ipmi_auth.h: Added RMCP+ auth and expanded the
	user password to 20 bytes.

	* include/OpenIPMI/ipmi_conn.h: Modified ipmi_msgi_t so that it
	can take external data as well as the internal data and knows how
	to free it.
	* lib/domain.c: ditto
	* lib/ipmi.c: ditto
	* lib/ipmi_lan.c: ditto
	* lib/oem_atca_conn.c: ditto
	* lib/oem_force_conn.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* lib/oem_motorola_mxp_intf.c: ditto
	* sample/ipmicmd.c: ditto

	* lib/strings.c: Adde RMCP+ auth strings.
	
	* include/OpenIPMI/ipmi_conn.h: Added the concept of asynchronous
	events so that payloads can report asyncronous data coming up.
	* lib/ipmi_smi.c: ditto

	* include/OpenIPMI/ipmi_conn.h, lib/conn.c: Added connection
	attributes so that payloads have a place to store data.
	* lib/ipmi_lan.c: Ditto
	* lib/ipmi_smi.c: Ditto
	* lib/oem_motorola_mxp_intf.c: Ditto

	* include/OpenIPMI/ipmi_err.h: Added RMCP+ errors.
	
	* include/OpenIPMI/ipmi_lan.h: Added support for RMCP+ payloads,
	authentication, integrity, and confidentiality handling.  This
	includes new options for lan connection and the ability to
	register the various algorithms and payload types.

	* include/OpenIPMI/md5.h, utils/md5.c: Added a way to handle
	multiple-length passwords with MD5.

	* lib/ipmi_payload.c: Moved IPMI LAN data formatting into a
	separate file.

	* lib/Makefile.am, lib/ipmi.c: Added support for RMCP+ algorithms.
	* lib/aes_cbc.c: ditto
	* lib/hmac.c: ditto
	* lib/md5.c: ditto
	* lib/rakp.c: ditto

	* lib/ipmi.c: Add support for the new RMCP+ data options.

	* lib/ipmi_lan.c: Added RMCP+ support.

	* include/OpenIPMI/lanserv.h: Added support for RMCP+ data.

	* lanserv/Makefile.am: Added support for OpenSSL.

	* lanserv/lanserv.c: Fixed the random data routines to work right.
	* lanserv/lanserv_emu.c: ditto.
	
	* lanserv/lanserv_config.c: Added support for some RMCP+ data.
	
	* lanserv/lanserv_ipmi.c: Added support for RMCP+.

	* man/ipmi_cmdlang.7: Added info about the RMCP+ LAN parms.
	
	* configure.in: Update to version 2.0.0.

2005-01-11 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/internal/Makefile.am: Fixed so it installs in
	the right place.

2005-01-04 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Added a warning log if the FRU fetch request
	failed.

	* include/OpenIPMI/ipmi_users.h, lib/mc.c, swig/OpenIPMI.i: Added
	the ability to get the other information from the get user access
	command.
	* swig/perl/test_chan: Adjusted for the previous changes.
	* cmdlang/cmd_mc.c, man/ipmi_cmdlang.7: ditto

	* doc/IPMI.ltx: Added info for user and channel management.

2005-01-03 Corey Minyard <cminyard@mvista.com> 

	* Include/OpenIPMI/ipmi_pet.h, lib/pet.c: Added a refcount to the
	PET external interface and fixed some problems with PET handling.

	* swig/OpenIPMI.i: Added PET support.

	* swig/perl/test_pet, swig/perl/Makefile.am: Added PET perl tests.
	
	* glib/glib_os_hnd.c: Fixed the perform_one_op function to
	time (sort of) properly.

	* swig/perl/test_chan: Fix some problems with the tests.

	* lanserv/lanserv_ipmi.c: Fix bugs handling channel privilege
	limits.

	* swig/perl/test_pef, swig/perl/test_lanparm: Minor perl cleanups.

	* ui/ui.c: Fixed a parm messed up by an interface change.

	* lib/entity.c: Fixed handling of FRU info from devices, we need
	to look at the pending as well as the current info to know if an
	entity already has a FRU device.

	* configure.in: Move to version 1.4.7.

2005-01-01 Corey Minyard <cminyard@mvista.com> 

	* swig/perl/test_pef: Add PEF tests.

	* lanserv/lanserv_ipmi.c: Fixed a few problems with PEF handling.

	* lib/pef.c: Fixed some problems with PEF handling.

2004-12-31 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/lanserv.h, lanserv/lanserv_ipmi.c: Added PEF
	config support.

	* cmdlang/cmd_pef.c: Fixed some printing problems.

	* lib/pef.c: Fixed a problem getting the last alert string and the
	guid data and a few data format problems.

2004-12-30 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_strings.h: Converted return strings to
	be const because the user can't change them.
	* include/OpenIPMI/ipmiif.h.in: ditto
	* include/OpenIPMI/ipmi_auth.h: ditto
	* include/OpenIPMI/ipmi_bits.h: ditto
	* include/OpenIPMI/ipmi_cmdlang.h: ditto
	* include/OpenIPMI/internal/ipmi_sensor.h: ditto
	* cmdlang/cmd_sensor.c: ditto
	* cmdlang/cmdlang.c: ditto
	* cmdlang/ipmish.c: ditto
	* lib/control.c: ditto
	* lib/entity.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* lib/sensor.c: ditto
	* lib/strings.c: ditto
	* sample/sample3.c: ditto
	* swig/OpenIPMI.i: ditto

	* include/OpenIPMI/ipmi_lanparm.h, lib/lanparm.c: Added a way to
	get a config parm type from the parm number and added refcount
	stuff for perl.

	* swig/OpenIPMI.i: Finished adding lanparm stuff.

	* lib/lanparm.c: Changes to the last alert destintation can
	be fetched.

	* swig/perl/test_lanparm: Added lanparm tests.

	* include/OpenIPMI/ipmi_pef.h, lib/pef.c: Added a way to get data
	by parm number and added refcount stuff for perl.

	* swig/OpenIPMI.i: Added support for PEF.

2004-12-29 Corey Minyard <cminyard@mvista.com> 

	* ui/ui.c: Added printing of if the sensor/control should be
	ignored if the entity is not present.

	* lib/control.c: Default nonstandard controls to be ignored if the
	entity is not present.

	* lib/sensor.c: Default nonstandard sensors to be ignored if the
	entity is not present.

	* lib/entity.c: Use controls for presence detection, and clean
	up the presence code to properly handle presence sensor removal.
	Also modify the presence detection to be 100% compliant with
	the spec, including messaging FRU devices as the last step.
	
	* lib/chassis.c: Remove the dummy presence sensor since the
	controls can be used for presence now.

	* lib/oem_motorola_mxp.c, lib/oem_atca.c: Cleanup up all the
	ignore if no entity setup for all the sensors and controls.

	* lib/fru.c: Fix a problem with handling certain invalid
	FRUs.

	* lib/entity.c: Use the proper function to destroy the
	entity info.

	* swig/OpenIPMI.i: Fix a compile problem.

2004-12-28 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/lanparm.h, lanparm/lanparm_ipmi.c: Added
	support for lanparm configuration parameters.

	* lib/entity.c: Fixed presence detection to not use sensors for
	entity presence that are there if the entity is not present.

	* swig/perl/test_atca_entities: Added a little test script for
	ATCA entities.

	* swig/OpenIPMI.i: Added some missing deref callbacks.

	* swig/OpenIPMI.i: Added support for lanparm configuration.

2004-12-26 Corey Minyard <cminyard@mvista.com> 

	* lib/mc.c: Invert the values from get/set channel access so they
	are logical for the user.

	* swig/OpenIPMI.i: Added user/channel access.

	* swig/perl/test_fru: Fixed a timing problem.

	* swig/perl/test_chan, swig/perl/Makefile.am: Added channel/user
	testing.

	* swig/perl/OpenIPMI_perl.c: Added a way to pass an array of
	objects.

	* lanserv/lanserv_ipmi.c: Fixed some minor bugs in channel
	handling.

	* include/OpenIPMI/ipmi_lanparm.h, lib/lanparm.c: Added an
	interface for getting general data values by index/name.

2004-12-25 Corey Minyard <cminyard@mvista.com> 

	* lib/mc.c: Fixed some minor bugs in user handling.

	* lib/cmd_mc.c: Fixed a missing put and some error strings.

	* include/OpenIPMI/lanserv.h, lanserv/lanserv_ipmi.c: Added
	support for all the user bits in the set and get user access
	commands.

2004-12-23 Corey Minyard <cminyard@mvista.com> 

	* sample/ipmicmd.c: Removed the ipmi_log() func, it was junk
	and caused problems.

	* lib/mc.c, include/OpenIPMI/ipmi_user.h, cmdlang/cmd_mc.c: Fixed
	some problems with the user stuff.  Added a way to set the
	enable/disable of a user (done through the set password command,
	for some strange reason).

	* lib/sensor.c: Fix a missing sensor in a callback.

2004-12-22 Corey Minyard <cminyard@mvista.com> 

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h,	include/OpenIPMI/ipmi_user.h:
	Added handling for users and channel information.

	* lib/cmd_mc.c: converted over to the standard user and channel
	handling.

2004-12-17 Corey Minyard <cminyard@mvista.com> 

	* lib/lanparm.c, lib/pef.c, lib/pet.c: Fixed some locking and
	refcount problems found with testing.

2004-12-16 Corey Minyard <cminyard@mvista.com> 

	* lib/fru.c: Fixed a problem with FRU area creation, where the
	versions where not set properly.

	* lib/ipmi.c: Fixed some last bugs dealing with IPMI strings.

	* swig/OpenIPMI.i: Added handling for properly deleting FRU
	information when we are done with it.
	
	* lib/fru.c: Fixed some race conditions with the new list stuff
	and FRU destruction.

	* include/OpenIPMI/ipmi_fru.h, lib/fru.c: Added refcount functions
	for keeping track of FRUs.

	* swig/perl/test_fru: Finished up FRU tests.

	* include/OpenIPMI/ipmi_fru.h, lib/fru.c: Added a FRU alloc
	function that has the domain in the callback.  Converted the
	domain pointer in the FRU to a domain id and modified the
	function to get the FRU's domain to return the domain id.

	* include/OpenIPMI/internal/ipmi_util.h, lib/fru.c: Modified the
	notrack FRU allocater to take the domain pointer
	* lib/entity.c: ditto
	* lib/domain.c: ditto

	* swig/OpenIPMI.i: Fixed the FRU functions to call the FRU
	destructor when the FRU was dereffed.  Modified the FRU
	alloc and write functions to also supply the domain as the
	first parameter. Added debugging setup functions.

	* swig/perl/test_fru, swig/perl/sample: Adjusted for the
	previous changes.

	* lib/domain.c: Pass in domain during shutdown clearing of
	messages.

	* lib/mc.c: Fixed some problems where the refetch callbacks
	were not always being called in certain error situations.
	
	* lib/domain.c, include/OpenIPMI/internal/ipmi_domain.c:
	Modified the domain attributes to be refcount based, since
	they could theoretically go away while still in use.
	* lib/lanparm.c: ditto
	* lib/pef.c: ditto
	* lib/pet.c: ditto
	* lib/fru.c: ditto

2004-12-15 Corey Minyard <cminyard@mvista.com> 

	* lib/fru.c, include/OpenIPMI/ipmi_fru.c: Fixe the name of the set
	multi-record function function.
	* cmdlang/cmd_fru.c: ditto

	* swig/OpenIPMI.i: Add functions to set FRU multi-records.
	Properly handle undefined values in the other FRU set functions.

	* include/OpenIPMI/internal/ipmi_utils.h, lib/fru.c: Added
	internal FRU destroy functions to keep users from destroying
	internal FRUs.
	* lib/entity.c: ditto
	* lib/oem_atca.c: ditto
	
	* swig/perl/test_fru, swig/perl/Lanserv.pm: More work on tests.

	* lib/ipmi.c, lib/fru.c: Fixed some more string handling problems
	that the new testing found.

	* lib/domain.c: Rework error return values to make them a
	single consistent set.
	* lib/fru.c: ditto
	* lib/ipmi.c: ditto
	* lib/ipmi_smi.c: ditto
	* lib/lanparm.c: ditto
	* lib/mc.c: ditto
	* lib/oem_atca.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* lib/pef.c: ditto
	* lib/sdr.c: ditto
	* lib/sel.c: ditto
	* lib/sensor.c: ditto
	* lib/.c: ditto

	* swig/OpenIPMI.i: More work to fix some bugs and add the
	error constants used by OpenIPMI.

2004-12-14 Corey Minyard <cminyard@mvista.com> 

	* lib/fru.c: Fixed some bugs with FRU handling.

	* include/OpenIPMI/internal/ipmi_int.h, lib/ipmi.c: FRU data
	needed some more info for decoding, handle that.
	* lib/fru.c: ditto
	* lib/entity.c: ditto
	* lib/sensor.c: ditto
	* lib/oem_atca.c: ditto

	* include/OpenIPMI/ipmi_fru.h, lib/fru.c: Added functions to
	convert between names and FRU field indexes.

	* lanserv/lanserv_emu.c: Added a noecho command to turn off echo.

	* lib/ipmi_smi.c: Return the entry when registering commands
	to watch.

	* swig/OpenIPMI.i: Added support for getting multirecords from
	the FRU.  Fixed some other FRU-related problems.

	* swig/perl/test_fru, swig/perl/Lanserv.pm, swig/perl/Makefile.am:
	Started working on some tests.

2004-12-13 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/internal/locked_list.h, utils/locked_list.h:
	Added the ability for the user to use their own lock with locked
	lists.  This avoids multiple locking in areas that already have
	locks.

	* lib/entity.c: Converted over the entity, child, parent, sensor,
	and control lists to use the main domain lock as their lock, since
	that lock was always claimed anyway.

	* lib/lanparm.c: Fixed a race condition between lanparm iteration
	and destruction using the new locked list stuff.
	* lib/pet.c: ditto
	* lib/pef.c: ditto
	* lib/fru.c: ditto

	* lib/entity.c: Fixed some minor locking problems the previous
	changed exposed.

	* swig/OpenIPMI.i: Add the FRU writing support to the Perl code.

	* doc/IPMI.ltx: Added documenation for FRU writing.

	* swig/perl/sample: Clean up Perl warnings.

	* include/OpenIPMI/internal/ipmi_entity.c, lib/entity.c: Added a
	way for code to force entities to stay around.

	* lib/oem_atca.c: Force the shelf entity to stay around even if
	there are no sub-entities.

	* cmdlang/fru_cmd.c: Added multi-record setting.

	* lib/fru.c: Fixed problems writing multi-records.

2004-12-10 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/internal/ipmi_int.h, lib/ipmi.c: Fixes
	to the IPMI string encoding/decoding routines.
	* lib/fru.c: ditto
	* lib/entity.c: ditto
	* lib/oem_atca.c: ditto
	* lib/sensor.c: ditto

	* include/OpenIPMI/ipmi_fru.h, lib/fru.c: Added the capability
	to modify FRU info and write FRU data back to the FRU.

	* lib/fru.c: Added tracking of FRUs in the system.
	
	* include/OpenIPMI/internal/ipmi_utils.c, lib/fru.c: Added an
	interface for FRUs so internal stuff can allocate untracked FRU
	information.  This way, user's can't delete internal FRU data.
	* lib/entity.c: ditto
	* lib/oem_atca.c: ditto
	* lib/sensor.c: ditto

	* cmdlang/cmd_fru.c, cmdlang/cmdlang.c, cmdlang/Makefile: Added
	FRU handling routines:
	* include/OpenIPMI/ipmi_cmdlang.h: ditto
	* man/ipmi_cmdlang.7: ditto

	* cmdlang/cmd_domain.c: Don't deleted FRUs after they are fetched.

	* cmdlang/ipmish.c: Fix unicode handling.

	* cmdlang/out_fru.c: Minor FRU data handling updates.

	* lib/domain.c: Minor fixes for attribute handling, make sure
	things are cleared out correctly.
	
2004-12-07 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in, lib/mc.c, lib/domain.c,	lib/ipmi.c:
	Added an option to not set the SEL time.

	* include/OpenIPMI/ipmi_mc.h, include/OpenIPMI/internal/ipmi_mc.h:
	Moved the ipmi_mc_set_current_sel_time() from the internal to
	the user-visible interface.

	* cmd_entity.c, man/ipmi_cmdlang.7: Added the id and entity id
	string to the entity info.

	* cmd_mc.c: Added a way to set the SEL time.

	* include/OpenIPMI/ipmiif.h.in: Added support for a managed
	  hot-swap call so the user can know if the entities hot-swap
	  states can be managed.
	* include/OpenIPMI/internal/ipmi_entity.h: ditto
	* lib/entity.c: ditto
	* lib/oem_atca.c: ditto
	* cmdlang/cmd_entity.c: ditto
	* man/ipmi_cmdlang.7: ditto

2004-12-03 Corey Minyard <cminyard@mvista.com> 

	* lib/mc.c: Fixed a problem where the startup SEL time was not set
	if the target time was ahead of the time on the system.  This
	would cause old events in the SEL to be reported as new events.

	* lib/oem_atca.c: Reworked the fixups for broken entity ids to
	be more general.
	
2004-12-02 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi.c: fixed a problem with ipmi_parse_args mishandling
	userids.

	* include/OpenIPMI/*.h: Added extern "C" to all the necessary
	include files.

2004-12-01 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Ignore sensors for presence if they use the
	generic reading type codes.

	* lib/chassis.c: Added a dummy presence sensor for the chassis
	entity so it will be reported as present.

2004-11-27 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_lan.h, lib/ipmi_lan.c: Added a new, more
	flexible interface for configuring a LAN connection.  Hopefully
	this is the last one we have to do here, this would be able
	to handle anything (especially RMCP+).

	* lib/ipmi.c: Adjusted to use the new LAN connection method.

2004-11-18 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi_smi.c: Fix the unregister ioctl for the socket interface.

	* configure.in: Fix comments on perlinstall option.

	* configure.in: Allow perl, swig, and glib options to be overriden
	to support cross-compilation.

	* configure.in: Move to version 1.4.6.

2004-11-16 Corey Minyard <cminyard@mvista.com> 

	* cmdlang/cmd_mc.c: Added support for the user information
	viewing and modification.

	* man/ipmi_cmdlang.7: Added information about the channel
	and user commands just added.

2004-11-15 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_auth.h, lib/ipmi_lan.c: Added the
	ability to have a "default" auth type that will pick the
	best authentication type available.
	
	* include/OpenIPMI/ipmi_auth.h, lib/strings.c: Added strings
	for the auth and privilege values.

	* lib/ipmi.c: Added a new parameter parsing function that should
	be easier to use.
	
	* cmdlang/cmd_domain.c: Added support for a "domain open"
	command using the new parameter parsing.

	* cmdlang/cmd_mc.c: Added support for the channel info
	and access control commands.

	* cmdlang/cmd_mc.c: Fixed a bug where the MC was not
	printed when dumping SEL info.

	* include/OpenIPMI/ipmi_err.h: Fixed a bug in the IPMI_OS_ERR_VAL
	macro.

	* lib/ipmi_lan.c: Fixed a bug where a timer might be freed
	twice on an error.

2004-11-10 Corey Minyard <cminyard@mvista.com> 

	* cmdlang/ipmish.c: Fixes a problem with the --execute command
	line option where only the first and last command would be
	executed.

2004-11-09 Corey Minyard <cminyard@mvista.com> 

	* OpenIPMI.spec.in: Changes to compile on Redhat.

	* configure.in: Move to version 1.4.5.

2004-11-09 Andrew Cress <andrew.r.cress@intel.com>

	* lib/oem_intel.c: Minor fixups for the alarm control.

2004-11-09 Kevin Gao <kevin.gao@intel.com>

	* sample/ipmicmd.c: Don't segv when given bad parms.

2004-11-05 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Another fix to the perl installation dir.

2004-11-04 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Fix perlinstalldir to work.

	* doc/IPMI.ltx: Added some docs on the Perl interface.

	* lib/ipmi.c: Fixed optional SEL handling.

	* lib/ipmi_smi.c: Added missing close_connection_domain callback
	initialization.

	* swig/OpenIPMI.i: Fixed initialization to work without glib.

2004-11-01 Corey Minyard <cminyard@mvista.com> 

	* FAQ: Added some useful information

	* OpenIPMI.spec.in: Cleaned up the spec file andmake it correct,
	added the new stuff.

	* README: Added Perl info.

	* configure.in, swig/perl/Makefile.am: Improved the Perl detection
	support, added handling for Perl module installation.

	* cmdlang/out_fru.c: Fix compiler warning.

	* lib/fru.c: Modified initialization to work with older C
	compilers.

	* lib/mc.c, lib/entity.c: Fixed deadlocks.

	* swig/Makefile.am, swig/OpenIPMI.i: Minor build cleanups.

	* swig/OpenIPMI.i: Fixed some problems with handling FRU
	data.

	* swig/perl/sample: Fixed some problems with events.
	
	* configure.in: Move to version 1.4.4

2004-10-29 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_conn.h: Added another connection close
	handler that has a callback.  This way, the domain code can know
	when the connection is really closed.  There were race conditions
	at shutdowns that this fixes.
	* lib/ipmi_lan.c: ditto
	* lib/ipmi_smi.c: ditto
	* lib/oem_motorola_mxp_intf.c: ditto
	* lib/domain.c: ditto

	* lib/control.c, lib/sensor.c: Fixed some shutdown ordering
	problems.

	* lib/oem_atca.c: Don't clean up the MC if it has already been
	destroyed.

	* swig/OpenIPMI.i, swig/perl/OpenIPMI.h, swig/perl/OpenIPMI_perl.c:
	Added a perl interface for OpenIPMI.
	* swig/perl/Makefile: ditto
	* swig/perl/sample: ditto
	* swig/perl/ipmi_powerctl: ditto
	
2004-10-27 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi_lan.c: Fixed race conditions handling sequence numbers
	and connection handling.

	* include/OpenIPMI/ipmiif.h.in: Added a comment saying that a lock
	is held in connection change delivery.

	* lib/domain.c: Added a comment saying that locks are not
	necessary to sequence event delivery.

	* cmdlang/cmd_domain.c: Fix docs on "domain new".

	* lib/fru.c, include/OpenIPMI/ipmi_fru.h: Added an interface to
	make it possible to get FRU data in a more generic way.

	* cmdlang/out_fru.c, man/ipmi_cmdlang.7: Converted over to the new
	generic FRU interface and changed the output format some.

2004-10-26 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in, lib/sensor.c: Renamed
	ipmi_discrete_event_readable to ipmi_sensor_discrete_event_readable.
	* lib/entity.c: ditto
	* cmdlang/cmd_sensor.c: ditto

2004-10-24 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in, lib/entity.c: Deprectated the
	ability to directly handle the hot-swap indicators and requesters.
	In hindsight, this seems like a bad idea.  This should be under
	the control of the hot-swap state machine.

2004-10-22 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi_lan.c: Fix problems with connection failure during
	startup of the connection.  This fixes problems with the
	connections getting stuck and never coming up.

	* unix/posix_os_hnd.c: Fixed a problem with the return value of
	getting the random data.
	* unix/posix_thread_os_hnd.c: ditto
	* glib/glib_os_hnd.c: ditto
	* cmdlang/os_debug.c: ditto
	* ui/ui_os.c: ditto

	* lib/ipmi_lan.c: Only report the connection whose state changed
	on a connection up failure/success.

	* cmdlang/ipmi_sh.c, man/ipmish.1: Added the ability to turn off
	the redisplay of the command line on incoming events.

2004-10-20 Corey Minyard <cminyard@mvista.com> 

	* Makefile.am: Added glib OS handler.
	* configure.in: ditto
	* glib/Makefile.am: ditto
	* glib/glib_os_hnd.c: ditto

	* cmdlang/cmd_domain.c, include/OpenIPMI/ipmi_cmdlang.h: Remove
	selector stuff from cmdlang.
	* cmdlang/ipmish.c: ditto

	* cmdlang/os_debug.c: Removed rwlocks from OpenIPMI.
	* include/OpenIPMI/ipmi_conn.h: ditto
	* include/OpenIPMI/os_handler.h: ditto
	* include/OpenIPMI/internal/ipmi_int.h: ditto
	* lib/conn.c: ditto
	* lib/ipmi.c: ditto
	* lib/ipmi_lan.c: ditto
	* lib/ipmi_smi.c: ditto
	* lib/oem_motorola_mxp_intf.c: ditto
	* lib/sdr.c: ditto
	* unix/posix_thread_os_hnd.c: ditto
	* include/OpenIPMI/ipmi_glib.h: ditto
	
	* ui/ui.c: Add internal MC include file.

	* cmdlang/Makefile.am: Work on adding glib support.
	* glib/Makefile.am: ditto
	* include/OpenIPMI/Makefile.am: ditto
	* cmdlang/ipmish.c: ditto

	* cmdlang/os_debug.c: Rework locking to not allow recursive locks,
	and fix tons of problems with the locking.
	* glib/glib_os_hnd.c: ditto
	* lib/domain.c: ditto
	* lib/entity.c: ditto
	* lib/lanparm.c: ditto
	* lib/mc.c: ditto
	* lib/pef.c: ditto
	* lib/sdr.c: ditto
	* lib/sel.c: ditto
	* lib/sensor.c: ditto
	
2004-10-19 Corey Minyard <cminyard@mvista.com> 

	* cmdlang/cmd_conn.c: Renamed IPMI_MAX_DOMAIN_NAME_LEN to
	IPMI_DOMAIN_NAME LEN to make it consistent with the other defines.
	* cmdlang/cmd_domain.c: ditto
	* cmdlang/cmd_entity.c: ditto
	* cmdlang/cmd_lanparm.c: ditto
	* cmdlang/cmd_mc.c: ditto
	* cmdlang/cmd_pef.c: ditto
	* cmdlang/cmd_pet.c: ditto
	* cmdlang/cmd_sel.c: ditto
	* cmdlang/cmdlang.c: ditto
	* include/OpenIPMI/ipmi_mc.h: ditto
	* include/OpenIPMI/ipmiif.h.in: ditto
	* lib/domain.c: ditto
	* lib/fru.c: ditto
	* lib/ipmi.c: ditto
	* lib/mc.c: ditto
	* lib/sel.c: ditto
	* ui/ui.c: ditto


2004-10-18 Corey Minyard <cminyard@mvista.com> 

	* Practically_everything: More work on the include files, moved
	the internal/OEM include files to an "internal" directory, more
	restructure to make thing easier to use and make more clean
	definitions of what is and is not supported.

	This means that if you were naughty and used internal interfaces,
	you will have to change your code.

	* cmdlang/cmd_mc.c, cmdlang/cmd_domain.c, man/ipmi_cmdlang.7:
	Added beter support for the SELs.

	* lib/mc.c: Don't set the SEL time if that would move the time
	backwards.

2004-10-14 Corey Minyard <cminyard@mvista.com> 

	* Practically_everything: A restructure of the include files
	so the ipmiif.h is really the only thing you need to include
	to do pretty much everything (except for the helper things like
	pefs, lanparm, pets, etc.).  There should no longer be any need
	for external user programs to use ipmi_domain.h, ipmi_mc.h,
	or things like that.

2004-10-14 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in, lib/strings.c, lib/sensor.c: Added
	sensor direction from the 2.0 spec.

	* cmdlang/cmd_sensor.c, man/ipmi_cmdlang.7: Added direction
	output.

	* include/OpenIPMI/ipmi_bits.h, lib/strings.c: Added some more
	entity IDs that are new in the 2.0 spec.

	* lib/sensor.c: Added type 3 (event only) sensor support.

	* include/OpenIPMI/ipmi_bits.h, lib/strings.c, lanserv/priv_table.c:
	Added commands from the 2.0 spec.

	* include/OpenIPMI/ipmi_bits.h, lib/strings.c: The conversion code
	for commands, netfns, and completion codes was using static
	buffers.  Convert to using passed-in buffers so it is reentrant.
	* include/OpenIPMI/ipmi_err.h: ditto
	* lib/ipmi_lan.c: ditto
	* lib/ipmi_smi.c: ditto


2004-10-12 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Fixed some race conditions with entity creation
	and deletion.  The changes make sure that if an entity is deleted
	and re-added at about the same time, the operations occur in the
	right order.

	* lib/entity.c: Modified the timers to handle destruction more
	gracefully so the entity doesn't have to hang around until the
	timers go off.

	* lib/sensor.c: Report bad SDRs by record id, not the internal
	OpenIPMI index.

	* lib/sensor.c: Fix handling of duplicate SDR record detection
	to take the MC into account, too.

2004-10-11 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_event.h, lib/event.c: Changed the type
	for getting event data to an unsigned char.

	* cmdlang/cmd_mc.c, man/ipmi_cmdlang.7: Added active handler to
	know when MCs go active/inactive.  Added if the MC is active to
	the MC info.

	* cmdlang/cmd_control.c: Fixed an output problem with the
	control listing.

	* cmdlang/cmdlang.c: Fixed error output when no object was
	selected to work in all cases.

	* cmdlang/ipmish.c: Added output for ipmish-specific commands.

	* lib/oem_intel.c: Attach the alarm control to MC 0x20 and scan
	address 0xc0 when certain events are received.

	* cmdlang/cmd_lanparm.c: Fixed a problem with losing lanparm
	configs.
	
	* cmdlang/cmd_pef.c: Fixed a problem with losing pef configs.

	* include/OpenIPMI/ipmi_conn.h: Added a con_type field to the
	connection type for the connection code to use to identify itself.
	Added a priv_level field so the privilege of the conneciton may be
	reported.
	
	* lib/ipmi_lan.c, lib/ipmi_smi.c: Added the new items to the
	connection type.

	* include/OpenIPMI/ipmi_domain.h, lib/domain.c: Added a way to
	query the ports of a connection to see if they are up.

	* cmdlang/cmd_conn.c, man/ipmi_cmdlang.7: Added port information
	reporting and reporting of if the connection is up.

	* lib/domain.c: Modified setting the "set event receiver" option
	to depend on the privilege level, since it requires admin access
	to run.

	* include/OpenIPMI/ipmi_int.h: Added a "msg err" debugging flag to
	print out when errors occur in messaging.

	* cmdlang/ipmish.c, cmdlang/cmdlang.c, lib/ipmi_lan.c: Added
	support for the msg err debugging flag.

2004-10-10 Corey Minyard <cminyard@mvista.com> 

	* man/ipmi_cmdlang.7: Finished this document.

	* cmdlang/cmdlang.c: Renamed the three-character short form
	thresholds to be two characters to make them consistant.

	* configure.in: Move to version 1.4.3

2004-10-09 Corey Minyard <cminyard@mvista.com> 

	* OpenIPMIcmdlang.pc.in, Makefile.am: Added file for the new
	cmdlang library.

	* lib/strings.c, cmdlang/cmd_entity.c, cmd/cmdlang.c: Fixed some
	minor formatting things.

	* cmdlang/cmd_sensor.c: Added number output for sensor types,
	event readings, and units.

	* man/ipmi_cmdlang.7: Lots of work adding docs.  More formatting
	work still to do.

2004-10-08 Corey Minyard <cminyard@mvista.com> 

	* doc/IPMI.ltx: Documentation cleanup

	* doc/OpenIPMI.texi: Removed old docs.

	* doc/Makefile.am: Removed old docs and added generation of the
	LaTeX documentation.

	* sample/sample.c: Cut the length of a line so it came out nicely
	on the docs.

	* lib/domain.c: Cleaned up log output.
	* lib/entity.c: ditto
	* lib/ipmi.c: ditto
	* lib/ipmi_lan.c: ditto
	* lib/ipmi_smi.c: ditto

	* cmdlang/*, include/OpenIPMI/ipmi_cmdlang.h: Added the new and
	improved command language.

	* lib/control.c: Removed lock check from ipmi_control_get_mc()
	since it is needed to check the lock.

	* lib/domain.c: Fixed a lock problem in the attributes.

	* lib/entity.c: Make sure the MC is locked when iterating controls.

	* lib/lanparm.c: Fixed a lock problem.
	
	* lib/pef.c: Fixed a lock problem.

	* lib/sensor.c: Zero the data used when fetching event enables.

	* man/ipmish.1: Added man page.

	* man/ipmi_cmdlang.7: Started man page.
	
2004-10-07 Corey Minyard <cminyard@mvista.com> 

	* lib/domain.c: Fixes some problems found by a static analysis
	tool.
	* lib/mc.c: ditto
	* lib/entity.c: ditto
	* lib/control.c: ditto
	* lib/sensor.c: ditto
	* lib/oem_atca.c: ditto
	* lib/lanparm.c: ditto
	* lib/pef.c: ditto
	* lib/pet.c: ditto
	* lib/ipmi_utils.c: ditto
	* lib/sdr.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* lib/strings.c: ditto

	* include/OpenIPMI/ipmi_pef.h, lib/pef.c: Added a consistent
	presentation of the GUID.

	* include/OpenIPMI/ipmi_bits.h, lib/strings.c: Added fatal
	error and gram unit types.

	* lib/sensor.c: Fixed sensor reporting order so locks are
	properly held.

	* lib/oem_atca.c: Fixed some problems with holding the proper
	refcounts on object during callbacks.

	* lib/oem_intel.c: Fixed some problems with holding the proper
	refcounts on object during callbacks.

	* lib/entity.c: Fixed a race condition with the try count
	for presence detection.

	* lib/domain.c: Fixed race conditions dealing with callbacks.

	* include/OpenIPMI/ipmi_sensor.h, lib/sensor.c: Added a way
	to get a sensor's domain.
	
	* include/OpenIPMI/ipmiif.h.in: Added support to the open domain
	call for detecting when the domain has finished all initial
	operations.
	* include/OpenIPMI/ipmi_domain.h: ditto
	* lib/domain.c: ditto
	* lib/entity.c: ditto
	* lib/mc.c: ditto
	
	* ui/ui.c: Adjusted for the change to open domain.
	* ui/basic_ui.c: ditto
	* sample/sample.c: ditto
	* sample/sample2.c: ditto
	* sample/sample3.c: ditto

	* include/OpenIPMI/ipmiif.h.in, lib/domain.c: Deprecated
	ipmi_close_connection() and added ipmi_domain_close() in its
	place.

	* ui/ui.c: Adjusted for the change to ipmi_close_connection().
	* sample/sample.c: ditto
	* sample/sample2.c: ditto
	* sample/sample3.c: ditto

2004-10-06 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_domain.h, lib/domain.c: Added an anonymous
	attribute that allows external code to tie data into the domain
	without the domain having direct knowledge of them.

	* lib/pet.c: Converted the PET list to be per domain.

	* include/OpenIPMI/ipmi_lanparm.h, lib/lanparm.c: Rework of the
	lanparm code to keep track of the lanparms that have been
	allocated, be able to list them, etc.

	* include/OpenIPMI/ipmi_pef.h, lib/pef.c: Rework of the pef code
	to keep track of the lanparms that have been allocated, be able to
	list them, etc.

	* lib/pef.c, lib/lanparm.c: Fix locking behaviour to work.

2004-10-05 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in: Renamed a bunch of the sensor
	functions and types to make their names more consistent  I hope
	this is the last big rename effort for 1.4.
	* include/OpenIPMI/ipmi_sensor.h: ditto
	* lib/entity.c: ditto
	* lib/oem_atca.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* lib/sensor.c: ditto
	* sample/sample3.c: ditto
	* ui/ui.c: ditto

	* lanserv/emu.c, lanserv/emu.h, lanserv/emu_cmd.c: Fixed problems
	with SEL handling.

	* lib/mc.c, lib/sel.c, lib/event.c: Fixed some problem with
	handling errors from SEL deletes.

	* unix/posix_thread_os_hnd.c: Add a missing return.

2004-10-04 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_control.h, lib/control.c: Add the ability
	to check the local control capability of an LED.
	* include/OpenIPMI/ipmiif.h.in: ditto
	* lib/oem_atca.c: ditto

	* lib/control.c: Add missing ipmi_control_get_id_type() function.

	* lib/oem_atca.c: Fixed color reporting to report black when
	the on time is 0.
	
	* lib/domain.c: Minor changes to domain startup reporting so
	things come in the right order.

	* lanserv/emu.c: Fixed local control support to use the right bit.

2004-10-02 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in, include/OpenIPMI/ipmi_domain.h:
	Added support for some option for enabling/disabling various
	automatic scanning and fetching operations.
	* lib/domain.c: ditto
	* lib/mc.c: ditto
	* lib/entity.c: ditto

2004-10-01 Corey Minyard <cminyard@mvista.com> 

	* lib/domain.c, include/OpenIPMI/ipmiif.h.in: Add support for a
	global domain change handler to report addition and removal of
	domains.

	* lib/pet.c: Removed an extraneous mc put, cleaned up close
	handling to be done in the proper order.

2004-09-25 Chetan Hiremath <chetan.hiremath@intel.com> 

	* lib/ipmi_smi.c: Use the proper address on received commands and
	async events.

2004-09-23 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_pet.h, lib/pet.c: Modified the PETs to be
	refcount based, use locked lists, and have all the information
	about them available.

2004-09-17 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in, lib/fru.c: Modified the FRU length
	returned to include the NIL character for ASCII strings.

	* include/OpenIPMI/ipmiif.h.in, lib/fru.c: Added a way to get the
	domain from the fru type.

2004-09-13 Corey Minyard <cminyard@mvista.com> 

	* FAQ: Added some information about the driver.

2004-09-11 Corey Minyard <cminyard@mvista.com> 

	* lib/domain, include/OpenIPMI/ipmiif.h.in: Added options
	to the ipmi_open_domain call to allow things to be done in
	the future (like turn off certain functions, etc.).
	* ui/ui.c, ui/basic_ui.c: Adjust for previous change
	* sample/sample.c, sample/sample2.s, sample/sample3.c: ditto

2004-09-09 Corey Minyard <cminyard@mvista.com> 

	* lib/mc.c: Return the proper callback data for the sel_reread
	function.

2004-09-08 Corey Minyard <cminyard@mvista.com> 

	* utils/ipmi_malloc.c, include/OpenIPMI/ipmi_malloc.h: Added
	an ipmi_strndup() function.

2004-09-07 Corey Minyard <cminyard@mvista.com> 

	* lib/domain.c, include/OpenIPMI/ipmiif.h.in: Added a list of
	domains and a way to iterate them.

	* lib/domain.c, include/OpenIPMI/ipmiif.h.in: Reworked the
	naming code to make thing a lot more sane and consistent.
	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: ditto
	* lib/entity.c: ditto
	* lib/sensor.c: ditto
	* lib/control.c: ditto

	* sample/sample.c: Add domain name for above changes.
	* sample/sample2.c: ditto
	* sample/sample3.c: ditto
	* ui/basic_ui.c, ui/ui.c: ditto

	* lib/ipmi.c: Added a prototype for ipmi_malloc_init().

2004-09-02 Corey Minyard <cminyard@mvista.com> 

	* ui/ui.c: Print active information about MCs when reported.

	* utils/selector.c, utils/heap.c, utils/test_heap.c, utils/Makefile.am:
	Moved the selector code into the unix directory, where it really
	belonged.
	* unix/selector.c, unix/heap.c, unix/test_heap.c, unix/Makefile.am:
	New location

	* include/OpenIPMI/os_handler.h: Added memory allocation into
	the os handlers.  Lots of things had to change.
	* utils/ipmi_mem_alloc.c: ditto.
	* ui/os_hnd.c: ditto
	* unix/posix_os_hnd.c: ditto
	* unix/posix_thread_os_hnd.c: ditto
	* lib/ipmi.c: Add mem alloc initialization

	* unix/selector.c: Converted over to using "malloc" instead of
	ipmi_mem_alloc() to avoid startup race conditions.  This code is
	now unix-specific, so that should be fine.

	* unix/selector.c, include/OpenIPMI/ipmi_posix.h: Reworked the
	selector code to directly use POSIX locks.
	* unix/posix_os_hnd.c: ditto
	* unix/posix_thread_os_hnd.c: ditto

	* ui/ui.c: Reworked initialization because of the mem alloc
	changes.

	* ui/basic_ui.c, ui/Makefile.am: Have to link with
	libOpenIPMIposix now to get the selector code.

	* utils/ipmi_mem_alloc.c: Fixed a bug handling the head and
	tail elements of the debug malloc list.

	* sample/sample2.c, sample/sample3.c: Fixed a few small problems
	in the examples.
	
	* configure.in: Move to version 1.4.2

	* lib/ipmi_lan.c: Fixed a problem where the wrong LUN was being
	looked at in LAN reponses.

2004-09-01 Corey Minyard <cminyard@mvista.com> 

	* lib/chassis.c: Fixed a problem where the wrong error was being
	passed to a callback.

	* lib/mc.c: Cleaned up the logs.
	* lib/sel.c: ditto
	* lib/oem_force_conn.c: ditto

	* lib/opq.c: Initialize the opq data.

	* lib/oem_atca.c: Fixed problems due to the new refcount code.
	Modify the address control numbers to just be assigned
	sequentially; you cannot use the IPMB address since multiple
	functions may be at the same IPMB.

	* lib/control.c: Fix problems with not unlocking locks in
	certain situations.

	* lib/control.c: Add reporting of duplicate control numbers.

	* lib/domain.c: Don't clear the active call list when
	reporting updates.

	* lib/domain.c: Remove a redundant set active for MCs.

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: Remove
	_ipmi_mc_clear_active_call().

	* lib/sensor.c: Fixed problems detecting duplicate sensor
	numbers in an SDR array.  The new code really works, verses
	the old code which didn't work any more.

	* lib/mc.c: Apply pending updated to devid data before installing
	a new MC.

2004-08-23 Corey Minyard <cminyard@mvista.com> 

	* lib/oem_motorola_mxp.c: Fixed a problem with SDR support.

2004-08-20 Corey Minyard <cminyard@mvista.com> 

	* lib/oem_intel.c: Fixed some problems with the alarm panel,
	modified to add the controls and entities at the right time and
	to handle removal of the MC properly.

	* lib/sensor.c, lib/control.c: Added an "add_pending" flag to
	sensors and controls so that the sensor or control is not reported
	until it has been "put" for the last time.  This works like
	entities and allows creators of non-standard controls and sensors
	to report the entities when they want to report them.

	* lib/entity.c: Make sure the entity add handler is called before
	calling the sensor update handlers.

	* lib/chassis.c: Reworked the getting and putting so the
	controls are reported properly.

	* doc/IPMI.ltx: Added docs for the Intel alarm panel.

2004-08-19 Andrew Cress <andrew.r.cress@intel.com>

	* lib/oem_intel.c: Handle different bus ids for alarm panel.

2004-08-19 Corey Minyard <cminyard@mvista.com> 

	* doc/Makefile: Add new documentation.  Note that this is LaTex
	for now but will probably be switched to docbook.
	* doc/IPMI.ltx: ditto
	* doc/ipmi.bib: ditto
	* BusSystem.dia: ditto
	* ManagementController.dia: ditto
	* SimpleHotSwap.dia: ditto
	* ComplexHotSwap.dia: ditto
	* MgmtIF.dia: ditto
	* Thresh.dia: ditto
	* Hyst.dia: ditto
	* ServerSystem.dia: ditto

	* configure.in: Move to version 1.4.1

2004-08-16 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_controls.c:
	Renamed the "setting" part of a transition light to "value" to
	avoid confusion with "setting" type lights.
	* lib/control.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* lib/oem_test.c: ditto

2004-08-11 Erwan Velu <erwan@mandrakesoft.com>

	* lanserv/lanserv_config.c: Print the line number of errors.

2004-08-10 Corey Minyard <cminyard@mvista.com> 

	* ui/ui.c: Added support for displaying the one-shot reset and
	output devices.

2004-08-06 Corey Minyard <cminyard@mvista.com> 

	* lanserv/emu.c: Fixed some problems with handling event
	masks.

	* sample/sample3.c: Fixed some bugs so this works correctly.

	* lib/entity.c: Fixed the relative entity strings to subtract
	off 0x60 from the instance (per the spec).

	* lib/oem_atca.c: Ignore the floating IPMB address (0x20) for ATCA
	functions, since it's really not a physical device but a virtual
	device.

	* include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_sensor.h: Move
	some user-needed functions into ipmiif.h and do some minor
	cleanups.

	* lib/entity.c, lib/control.c, lib/sensor.c: Don't allow
	operations on destroyed objects.

2004-08-04 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in, lib/sensor.c: Added a way
	to tell if the threshold is returned by the sensor when the
	value is read.

	* include/OpenIPMI/ipmi_bits.h, include/OpenIPMI/ipmiif.h:
	Made the various unit value into enums so it is easier to know
	what returns what.
	* lib/sensor.c: ditto
	* lib/strings.c: ditto

2004-08-03 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in, lib/sensor.c: Added more
	consistent functions for checking if threshold and discrete
	events are supported.  Deprecated old functions.
	* lib/entity.c: adjust for above change
	* ui/ui.c: ditto

	* sample/sample3.c, sample/Makefile.am: Added a new sample
	file to show something about event settings.

2004-08-02 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in: Renamed some parameters to be more
	clear, moved some things around that were in the wrong places.
	* include/OpenIPMI/ipmi_sensor.h: ditto

	* lib/entity.c: Added the processor bit presence sensor, since
	there is a presence bit for processor sensors.

	* lib/oem_atca.c: Fixed an error log.
	
2004-07-29 Corey Minyard <cminyard@mvista.com> 

	* lib/domain.c, include/OpenIPMI/domain.h: Added a way to fetch
	the main SDRs from a domain.

2004-07-13 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_domain.h: Fixed a misnamed parm.

	* Makefile.am, configure.in, OpenIPMI.spec.in: Added support
	for building RPMs for OpenIPMI.

	* bootstrap: Added a helper shell script for starting up a
	raw CVS checkout.

	* lib/entity.c: Fix a problem with entity presence detection,
	entities were not being detected not-present in some cases
	when they went from non-present to present.

2004-06-28 Corey Minyard <cminyard@mvista.com> 

	* lib/domain.c: Fixed a theoretical race condition in fetching
	the system SELs.
	
2004-06-24 Corey Minyard <cminyard@mvista.com> 

	* sample/sample.c: Added event handling for sensors to the sample.

2004-06-23 Michael McMaster <Michael_McMaster@Xiotech.com>

	* lib/mc.c: Initialize info->err in ipmi_mc_reread_sel().

2004-06-23 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/os_handler.h: Add some user functions for
	performing operations like freeing hte handler, and waiting for
	events to occur.

	* include/OpenIPMI/ipmi_posix.h: Rework to use the standard
	functions in the OS handler.
	* unix/posix_os_hnd.c: ditto
	* unix/posix_thread_os_hnd.c: ditto
	* sample/sample.c: ditto
	* sample/sample2.c: ditto

	* lib/entity.c: Fixed a problem with always fetching FRU data.

2004-06-22 Corey Minyard <cminyard@mvista.com> 

	* lib/oem_atca.c: Fix a race with deleting an MC.

2004-06-18 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h.in, include/OpenIPMI/ipmi_domain.h:
	Added a ipmi_domain_get_type() function for determining the type
	of domain.  This is so things like ATCA domains can be detected.
	* lib/domain.c: ditto

	* lib/oem_motorola_mxp.c, lib/oem_atca.c: Added domain type
	setting for MXP and ATCA.

	* include/OpenIPMI/ipmiif.h.in, lib/strings.h: Added strings for
	the domain type.

	* lib/oem_atca.c: Add setting the entity id string into the entity
	fixup callback.

2004-06-17 Philipp Matthias Hahn <pmhahn@titan.lahn.de>

	* man/ipmi_ui.1, man/ipmicmd.1, man/ipmilan.8: Cleanups for the
	man pages.

2004-06-17 Corey Minyard <cminyard@mvista.com> 

	* lib/domain.c, lib/mc.c: Don't check the OEM handlers if the MC
	is in used, wait until the MC is no longer in use and apply the
	pending data update and check OEM handlers then.

	* lib/oem_atca.c: Added a control for getting the address
	information of an ATCA FRU.

	* lib/oem_atca.c: Added entity id strings for all ATCA entities
	that OpenIPMI deals with.

	* lib/entity.c: Defer reporting an entity add until the entity is
	put, so that the entity can be modified by OEM handlers before
	they are reported

2004-06-15 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Check for a null event in call_presence_handlers().

	* unix/posix_os_hnd.c, unix/posix_thread_os_hnd.c: Fixed up some
	problems with posix_vlog.

2004-05-21 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Add a callback for fetching FRU information even
	if the FRU information is bad.

2004-05-14 Louis Zhuang  <louis.zhuang@linux.intel.com>

	* lib/oem_intel.c: Added support for the alarm panel on an Intel
	server box.

2004-04-30 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_posix.c: Reworked the POSIX os handler to
	make it easier to use and add helper code for handling threaded
	wakeups.
	* unix/posix_os_hnd: ditto
	* unix/posix_thread_os_hnd: ditto

	* sample/sample1.c: Reworked for the POSIX os handler changes.

	* sample/sample2.c: Reworked for the POSIX os handler changes, and
	made it multi-threaded.

	* doc/OpenIPMI.texi: Reworked the docs on locking.

	* lib/sel.c, include/OpenIPMI/ipmi_sel.c: Added a way to get the
	number of entries and free bytes in the SEL.
	* lib/mc.c, include/OpenIPMI/ipmi_mc.c: ditto

	* lib/domain.c, lib/mc.c, lib/entities.c: More work on locking,
	making sure locks are held in the proper places.

	* lib/domain.c, lib/mc.c, include/OpenIPMI/ipmi_int.h: Rework the
	locking on MCs so that the device id data and the active
	indications are not changed until no one is using the MC.

	* lib/entity.c: Rework the locking on entities so that the DLR
	data does not change until no one is using the entity, and the
	changed indications are not reported until the entity is not in
	use.  Presence is also change to work this way, but it may need
	some more thinking.

2004-04-29 Corey Minyard <cminyard@mvista.com> 

	* everything: A massive rework of the internals.  Basically,
	locking was reworked completely.  Now locks are *not* held in user
	callbacks.  Instead, items in callbacks are usecounted and will
	not be destroyed until the usecount goes to zero.  All the same
	rules apply, there are just no locks held.  This should avoid
	problems with deadlocks.

	* lib/domain.c, lib/entity.c: Worked on marking deprecated
	functions using GCC-specific attributes.
	* include/OpenIPMI/ipmi_types.h: ditto
	* include/OpenIPMI/ipmi_entity.h: ditto
	* include/OpenIPMI/ipmi_domain.h: ditto

	* lib/sel.c: Fixed a bug in the sel get where the info allocated
	can go away before the operation returns, but the info is used
	after the operation returns.

	* lib/sensor.c: Fix the hysteresis setting to send a message that
	is the right size.

2004-04-15 Corey Minyard <cminyard@mvista.com> 

	* lib/oem_intel.c: More work on getting the various Intel servers
	supported better.

	* include/OpenIPMI/ipmiif.h.in: Modified the hot-swap state
	machine slightly to support the ability to move to activation
	requested state from inactive state.

	* include/OpenIPMI/ipmi_entity.h, lib/entity.c: Added the calls
	for ipmi_entity_set_activation_requested() to the hot-swap
	variables.  The normal state machine will not support it.

	* lib/oem_atca.c: Added support for setting the FRU activation
	policy with ipmi_entity_set_activation_requested().

	* configure.in: Move to version 1.3.5

	* include/OpenIPMI/ipmi_mc.h, lib/mc.c: Added callbacks for
	knowing when the MC has finished reading its SDRs and reading the
	SEL for the first time.

2004-04-14 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Scan MCs from MCDLRs even if the information is
	not used for anything else.

	* doc/OpenIPMI.texi: Add information about callbacks.

	* lib/oem_intel.c, lib/ipmi.c, lib/Makefile.am: Added an Intel
	server-specific file for handling special things about Intel's
	servers.

	* configure.in: Move to version 1.3.4.
	
2004-04-13 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Prefer to keep the MCDLR information for an entity
	that has FRU information, and don't try any FRU detection work if
	the MCDLR has FRU turned off.

	* lib/oem_atca.c: Turn off setting the event reciever for the ATCA
	chassis (for now), since it seems to cause all kinds of bad things
	to happen.

	* lib/entity.c, lib/sensor.c: Some minor changes to entity
	presence detection.

2004-04-12 Corey Minyard <cminyard@mvista.com> 

	* lib/control.c, lib/sensor.c, lib/entity.c: Reworked the internal
	naming of these to make them consistent.

	* lib/domain.c: Fixed a nasty bug about MC deletion, basically
	don't delete MCs from the domain list while processing, because
	they can be the "next" item in the list and corrupt the list
	traversal.  Add a delayed delete operation.

	* lib/domain.c: Do the OEM startup check after fetching the MC
	information for the connection.

	* lib/oem_atca.c: Fix a bunch of problems, add hacks for broken
	hardware.

	* lib/sensor.c: Destroy the handler list of a sensor on a
	duplicate sensor entry.

	* include/OpenIPMI/ipmi_conn.h: Added hacks to some of the
	interfaces to support wierd things.
	* lib/domain.c: ditto
	* lib/ipmi_lan.c: ditto
	* lib/ipmi_smi.c: ditto
	* lib/oem_atca.c: ditto
	* lib/oem_force_conn.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* lib/oem_motorola_mxp_intf.c: ditto

	* lib/domain.c: Added sending message straight to an interface if
	it matches the address of an interface.

	* lib/ipmi_lan.c: Added support for a wierd hack where the first
	IPMI address in a LAN message is 0x20, and the other one is the
	internal address.

	* lib/oem_atca_conn.c, lib/oem_atca.c: Added some hacks for the
	current bugs in the Intel ATCA box.

	* lib/oem_atca.c: Reworked the handling of MCs and entity addition
	to happen after the user is informed of the domain.

	* include/OpenIPMI/ipmi_domain.h, lib/domain.c: Added a way for OEM
	code to call the MC scan done handler.

	* lib/oem_atca.c: Fixed some SEL handling and report MC scan done
	when it is done.

	* lib/oem_atca.c: Added hacks for broken SDRs.

	* configure.in: Move to version 1.3.3.
	
2004-04-09 Corey Minyard <cminyard@mvista.com> 

	* lanserv/emu.c, lanserv/emu.h, lanserv/emu_cmd.c: Added
	capabilities to disable, enable, and remove MCs, also added a
	sleep command.

	* lanserv/lanserv_emu.c: Added support for the sleep command.

2004-04-08 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi_smi.c, lib/ipmi_lan.c, lib/domain.c: Remove the broken
	broadcast handling from the domain code and put it into the
	lower-level code, so the lower level code knows how to time it
	better.

	* lib/domain.c: Add a scan of IPMB 0x20 as the first thing.

	* lib/domain.c: Destroy locks last in a domain.

	* lib/mc.c, lib/entity.c, include/OpenIPMI/ipmi_mc.h: Rework the
	active_handlers dependency between entitys and MCs by using a
	refcount instead of seeing if something is in the active handlers
	list.  Using the list didn't work because external (user) entities
	in the list would keep the MC from being destroyed.

	* lib/oem_atca.c: Added a check_hot_swap_state handler.  Fixed
	some problems with getting the hot-swap state.

	* lib/domain.c, include/OpenIPMI/ipmi_domain.h: Added a callback
	to be called when a domain starts shutting down.

	* lanserv/atca.emu: Added a new board.

	* lanserv/emu.c: Fixed problems with event timestamps.

	* lib/domain.c, lib/entity.c, lib/mc.c, lib/oem_atca.c: Fixed a
	host of problems with shutdown order.  It still needs some work
	because of the backwards dependency from entities to MCs created
	by the requirement for active MCs to contribute to entity
	presence.

	* lib/oem_atca.c: Create the entities for the items in the shelf
	address table at startup and keep them around.

2004-04-07 Corey Minyard <cminyard@mvista.com> 

	* ui/ui.c: Added an MC active callback to the UI.

	* configure.in: Move to version 1.3.2.

	* lib/oem_motorola_mxp.c: Added a slot GA sensor to the AMC.

2004-04-02 Corey Minyard <cminyard@mvista.com> 

	* lib/sensor.c, lib/control.c: Make sure that calls that send
	messages cannot be done on destroyed sensors.

2004-04-02 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c, lib/sensor.c, lib/control.c: Fixed a rather nasty
	race condition.  Sensors and control may go away after the MC goes
	away underneath them if the sensor or control has an operation
	pending.  The entity routine to remove the sensor and control
	calls ipmi_xxx_convert_to_id(), which requires the MC to exist.
	These were converted to use the pointer itself.

2004-04-02 Corey Minyard <cminyard@mvista.com> 

	* lanserv/emu.c, lanserv/emu_cmd.c, lanserv/emu.h: Reworked LED
	support to better handle ATCA.  Added hot-swap support.

	* lanserv/README.emulator: Added.

	* lanserv/atca.emu: Added.

	* lib/oem_atca.c: Worked on hot-swap support.

	* configure.in: Move to version 1.3.1.

	* doc/OpenIPMI.texi: Added some docs on ATCA.

	* lib/entity.c: Added a check for duplicate FRU entries in the SDR
	DLRs, in case there is one.

	* lib/mc.c: Fixed connection up info to be freed for MCs that
	never go active.

	* lib/entity.c, include/OpenIPMI/ipmi_entity.c: Added support for
	checking the current hot-swap state (as in an audit).
	
	* include/OpenIPMI/ipmiif.h.in: Added functions for the above
	call.

	* lib/domain.c: Fix the ordering of OEM handling and reporting
	things so the MC is ready for commands at that time.

	* lib/entity.c: Add checking of hot-swap state along with
	presence.

	* lib/oem_motorola_mxp.c: Added an event for the power control.

	* lib/control.c, include/OpenIPMI/ipmi_control.h: Added a way to
	do noseq callbacks to controls.

2004-04-01 Corey Minyard <cminyard@mvista.com> 

	* lanserv/emu.c, lanserv/emu_cmd.c, lanserv/emu.h: Added a start
	at ATCA support.

	* lanserv/atca.emu: Emulator file for ATCA support started.

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: Added support for watching
	when an MC goes active or inactive.

	* lib/entity.c: For entities with FRU data, use the fru device
	(whether the MC is active or not)) to know if the entity is
	present.

	* include/OpenIPMI/ipmi_msgbits.h: Add some netfns for the group
	extensions.

	* lanserv/ipmi_checksum.c, lanserv/Makefile.am: Added a small
	program for calculating checksums, useful when working with
	emulator files and FRU info.

	* lib/domain.c: Moved the OEM domain info destroyer callback to
	the end of the domain destruction so that the OEM data is
	available through the destructino process.

	* lib/mc.c, lib/domain.c: Newly created MCs come up inactive by
	default and are set active.

	* lib/oem_atca.c: Lots of little bug fixes, finally getting to
	test it.

	* ui/ui.c: Added multi-record dumping for FRU info.

	* ui/ui.c: Added support for settings-based lights.

	* lib/entity.c: A rework of the entity handling so that entities
	cannot be destroyed while callback handlers are using them.

	* lanserv/emu_cmd.c, lanserv/emu.h: Made command reading halt
	on the first error.

2004-03-31 Corey Minyard <cminyard@mvista.com> 

	* lanserv/emu.c, lanserv/emu_cmd.c: Added power control, fixed
	some problems with getting the event state.

	* lanserv/emu.c: Added the hot-swap LED control.

	* lib/oem_test.c, lib/ipmi.c: Added some test code for testing
	things inside OpenIPMI.

	* lib/chassis.c: Added tests to make sure the response is
	long enough in power controls.

	* lib/entity.c: More work on the hot-swap state machine.

	* lib/sdr.c: Fix a memory leak when the SDRs are replaced.

2004-03-30 Corey Minyard <cminyard@mvista.com> 

	* lib/sensor.c: Fix a problem checking the event capabilities
	on setting the event enables.

	* lanserv/emu.c, lanserv/emu.h, lanserv/emu_cmd.c: Started
	actually working on a useful simulator.  Added SDR, FRU data, and
	sensor support.

2004-03-26 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Added calling the entity update handler when the
	hot-swap capabilities change.

	* lib/strings.c, include/OpenIPMI/ipmiif.h: Added strings for the
	hot-swap states.

	* ui/ui.c: Added hot-swap support.

 	* ui/ui.c: Turn off nonblocking mode on the write fd.

	* lib/entity.c: Some hot-swap fixes.

	* lib/oem_motorola_mxp.c: Turned on the hot-swap indicator and
	hot-swap requester.

	* lib/sensor.c: Alloc a handler_list for each sensor for type 2
	sensors records.

	* lib/entity.c: Added a slot sensor as one that has a bit presence
	detector.

	* lib/entity.c: Don't require event support for a presence sensor.

	* lib/entity.c: Don't fetch FRU information for an entity until
	it is present.

2004-03-25 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Always rescan FRU info on an entity presence change
	for an entity that has FRU info.

2004-03-23 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Call _ipmi_find_or_create_mc_by_slave_addr() on new
	mcdlrs.

	* lib/domain.c: Scan MCs that are added from SDR sources.

	* lib/oem_atca.c: Turn off SEL support for everything but the BMC.

	* lib/oem_atca.c: Rework the handling of new MCs and entities to handle
	things added before the FRU information is read.

	* lib/entity.c: Use certain sensors that have presence bits as
	presence sensors.

2004-03-20 Corey Minyard <cminyard@mvista.com> 

	* everything: Massive rework of the code structure.

2004-03-19 Corey Minyard <cminyard@mvista.com> 

	* configure.in, include/OpenIPMI/ipmiif.h.in: Completele rework
	the version handling so that major, minor, release, and extra
	version information are separately available for #ifdeff-ing.

	* lib/ipmi.c, ui/ui.c: Use OPENIPMI_VERSION for the version
	string.

	* Makefile.am, configure.in, OpenIPMI.pc.in, OpenIPMIui.pc.in:
	Added pkg-config info for OpenIPMI libraries.

	* lib/posix_thread_os_hnd.c, lib/Makefile.am: Add a first shot
	at a threaded POSIX OS handler, libOpenIPMIpthread.
	* OpenIPMIpthread.pc.in, Makefile.am, configure.in: ditto

2004-03-15 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/selector.h, lib/selector.c: Unfortunately,
	there were some race conditions in the freeing up of file
	descriptors.  Cleanups were done for this.

	* include/OpenIPMI/os_handler.h: Unfortunately, there were some
	race conditions in the freeing up of file descriptors.  Cleanups
	were done for this.

	* ui/ui_os.c: Adjusted for the selector and os_handler changes.
	* lib/ipmi_smi.c: ditto
	* lib/ipmi_lan.c: ditto
	* lib/oem_motorola_mxp_intf.c: ditto

2004-03-11 Corey Minyard <cminyard@mvista.com> 

	* lib/mc.c: Fix the set_time routine to pass in the info to the
	message send.

2004-03-09 Corey Minyard <cminyard@mvista.com> 

	* lib/oem_motorola_mxp.c: Don't create the "healthy" sensor for
	AMC boards.

	* lib/oem_motorola_mxp.c: Clear our the right variable after the
	allocation of info->con_ch_info.

2004-03-04 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_int.h, lib/sel.c, lib/mc.c: Fix broken
	time calculations for events.
	* lib/ipmi_lan.c: ditto
	* lib/ipmi_smi.c: ditto

	* include/OpenIPMI/ipmiif.h.in, lib/event.c, lib/domain.c: Created
	a new event delete function that does not take a domain.

	* doc/OpenIPMI.texi: Added some more documentation and cleaned
	things up a little.

2004-03-02 Corey Minyard <cminyard@mvista.com> 

	* lib/ipmi_lan.c: Fixed a bug where incoming SNMP traps were
	compared against the wrong IP address.

	* lib/oem_atca.c: Added the cold reset control.

	* lib/sensor.c: Fixed the range check in ipmi_sensor_pointer_cb().

	* lib/control.c: Fixed the range check in ipmi_control_pointer_cb().

2004-03-01 Corey Minyard <cminyard@mvista.com> 

	* lib/oem_atca_conn.c: Set broadcast_broken all the time.

	* lib/ipmi.c: Added raw debug tracing for incoming SNMP traps.

	* include/OpenIPMI/ipmi_conn.h, lib/ipmi.c, ui/basic_ui.c: Added
	a source address length to the SNMP trap reporting handler.

2004-02-26 Corey Minyard <cminyard@mvista.com> 

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: Added a way to check if an
	ID is invalid.
	* include/OpenIPMI/ipmiif.h.in: ditto for domains, sensors,
	controls, and entities.
	* lib/domain.c: ditto
	* lib/sensor.c: ditto
	* lib/control.c: ditto
	* lib/entity.c: ditto

	* lib/entity.c: Do a changed callback on the parent and child when
	a parent-child relationshi<p is created or destroyed.

	* include/OpenIPMI/ipmi_entity.h, lib/entity.c: Added an operation
	queue and handling functions for entities.

	* include/OpenIPMI/ipmi_entity.h, lib/entity.c: Added OEM
	information for entities.

	* include/OpenIPMI/ipmi_entity.h, lib/entity.c: Modified the
	hot-swap get state routine to take a more sensible callback.

	* include/OpenIPMI/ipmi_fru.h, lib/fru.h: Added a way to get the
	offset of a multi-record so it may be written.

	* lib/oem_motorola_mxp.c: Change the entity id selection to use
	the slot, if it's a switch slot then use the switch entity id,
	otherwise use the processing blade entity id.

	* ipmi_conn.h: Modified the event reporting to actually send
	an event, not the event message.
	* lib/ipmi_lan.c: ditto
	* lib/ipmi_smi.c: ditto
	* lib/domain.c: ditto
	* sample/ipmicmd.c: ditto

	* include/OpenIPMI/ipmi_types.h: Added ipmi_time_t

	* include/OpenIPMI/ipmi_mc.c: Modified the SEL time to be
	ipmi_time_t.
	* lib/oem_motorola_mxp.c: ditto.

	* include/OpenIPMI/ipmi_event.h, lib/event.c: Added these files
	and reworked the events to be opaque and easier to use.
	* lib/Makefile.am, include/OpenIPMI/Makefile.am: ditto
	* include/OpenIPMI/ipmi_sel.h, lib/sel.c: ditto
	* include/OpenIPMI/ipmi_mc.h, lib/mc.c: ditto
	* include/OpenIPMI/ipmiif.h.in, lib/domain.c: ditto
	* include/OpenIPMI/ipmi_types.h: ditto
	* lib/sensors.c: ditto
	* lib/oem_motorola_mxp.c: ditto

	* ui/ui.c: Adjusted for all the event rework.

	* doc/OpenIPMI.texi: Reworked docs to add info on the event
	rework.

	* lib/Makefile.am: Upped the library revision.

	* configure.in: Move to version 1.3.0.

2004-02-25 Corey Minyard <cminyard@mvista.com> 

	* lib/domain.c: Fixed a few problems were callbacks can receive
	NULL values that were not being handled.

	* configure.in: Move to version 1.2.16.

	* lib/oem_motorola_mxp.c: Added zeroing all data structures after
	they are allocated.

	* lib/entity.c, include/OpenIPMI/ipmiif.h: Added a way to have
	multiple callback handlers on control, sensor, and fru updates.

	* ui/ui.c: Converted over to the multi-callback handlers.

2004-02-24 Corey Minyard <cminyard@mvista.com> 

	* lib/control.c: Added an option for light controls to be able to
	set their color, on, and off times directly.
	* include/OpenIPMI/ipmiif.h: ditto
	* include/OpenIPMI/ipmi_control.h: ditto

	* include/OpenIPMI/ipmi_bits.h, lib/strings.h: Added an "orange"
	light color.

	* lib/oem_atca.c: Started serious work into handling for ATCA
	LEDs.

	* lib/oem_motorola_mxp.c: Added handling for newer Zynx switch
	boards.

	* utils/Makefile.am: Removed the md2 and md5 tests since they
	contain marginally free code.

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: Added a way to enable and
	disable the event generation on an MC.

	* ui.c, man/ipmi_ui.1: Added commands for mc event enable
	settings.

	* lib/entity.c, include/OpenIPMI/ipmi_entity.h: Added a way to
	have multiple callback handlers called when an entity is added to
	a domain.
	* lib/domain.c, include/OpenIPMI/ipmiif.h: ditto

	* lib/domain.c: Modified finding the event reciever to use the
	event receiver bit (not the SEL bit) and to ignore BMC channels,
	since their addresses would be bogus.

	* lib/ipmi_lan.c: Removed scanning the system address for general
	LAN connections.  It will do wierd things, and is only necessary
	if specific support is required.

	* lib/oem_motorola_mxp.c: Re-added scanning the system address
	for MXP chassis.

	* lib/domain.c, include/OpenIPMI/ipmi_domain.c, lib/sensor.c:
	Changed _ipmi_find_or_create_mc_by_slave_addr() to take a channel
	as part of the address.

2004-02-23 Corey Minyard <cminyard@mvista.com> 

	* lib/mc.c: Fixed a race condition dealing with an MC going away
	while the SDRs were being fetched.  I wasn't following my own
	rules about pointers and callbacks.

	* lib/oem_motorola_mxp.c: Added a read handler for the I2C Isolate
	control.

	* lib/oem_motorola_mxp.c: Used the minor firmware version, not the
	major version,to tell if an MXP board has SDRs on-board.

	* configure.in: Move to version 1.2.15.

	* lib/domain.c, lib/mc.c, lib/oem_motorola_mxp.c: Fix some
	problems handling things being destroyed at startup.

	* lib/oem_motorola_mxp.c: Changed the number of boards on the
	half-pint chassis to 9.  Fixed the detection of board versions.

2004-02-22 Corey Minyard <cminyard@mvista.com> 

	* lib/oem_motorola_mxp.c: Added reading the reset control for
	boards.  Don't create the I2C Isolate controls on the half-pint
	chassis.

	* man/ipmi_ui.1: Fixed the explanation of connecting using
	multiple connections and LAN addresses.

	* configure.in: Move to version 1.2.14.

	* sensor.c: Added a missing command length setting.
	
2004-02-20 Corey Minyard <cminyard@mvista.com> 

	* lib/fru.c, include/OpenIPMI/ipmi_fru.h: Added multi-record
	FRU handling.

	* lib/entity.c, include/OpenIPMI/ipmiif.h: Added multi-record
	FRU handling.

	* lib/domain.c, include/OpenIPMI/ipmi_domain.h: Added OEM
	information for a domain.

	* lib/oem_atca.c: More ATCA work.

2004-02-19 Corey Minyard <cminyard@mvista.com> 

	* lib/lanparm.c: Initialize the callback data when cleaning
	the lan parm lock.

	* man/ipmicmd.1, man/ipmi_ui.1: Update to make current.

	* include/OpenIPMI/ipmiif.h, lib/entity.c: Added an entity id
	comparison function.

	* include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_types.h: Added
	invalid id's for all the various object id's.
	* include/OpenIPMI/ipmi_mc.h: ditto
	* lib/entity.c: ditto
	* lib/mc.c: ditto
	* lib/sensor.c: ditto
	* lib/control.c: ditto
	* lib/domain.c: ditto

	* doc/OpenIPMI.texi: Added some more information about locking.

	* lib/oem_atca.c, lib/ipmi.c: Started work on the ATCA code.

2004-02-18 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Reworked SNMP library configuration to check
	for the include files first, then the libraries.

	* README: Improved quite a bit.

	* lib/oem_motorola_mxp.c: Modified the power supply sensor to only
	set the power feed failure bits on DC power supplies.

	* doc/OpenIPMI.texi: Revised the Motorola MXP documentation.

	* lib/oem_motorola_mxp.c: Discovered that the "power good" bit in
	the power supply status event is really a "power fail" bit.

	* configure.in: Move to version 1.2.12.

	* lib/oem_motorola_mxp.c: Renumbered the sensors so that five
	power supplies and fans could fit.  Also split out the fan info
	from the power supply info to allow different counts of fans and
	power supplies.  Fixed the fan IPMB for half-pint to be 0x30-0x34.

	* lib/entity.c, include/OpenIPMI/ipmiif.h: Added the ability to
	get the channel and address for a device-relative entity.

	* configure.in: Move to version 1.2.13.

	* lib/oem_motorola_mxp.c: Add fan speed raw/cooked conversion
	function.

	* lib/domain.c: Fixed a problem with handling old messages
	on a failover.  Changed so that old messages will certainly
	be ignored.

2004-02-17 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_conn.h: Added a "broadcast broken" flag
	to the interface data.

	* include/OpenIPMI/ipmi_domain.h, lib/domain.c: Removed the ability
	to set broadcast broken directly for the domain, instead we get
	it from the interface data.

	* lib/oem_motorola_mxp.c: Add setting broadcast broken on the
	interface to an MXP, removed the domain setting of the same.

	* configure.in: Move to version 1.2.11.

2004-02-12 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h, lib/entity.c: Added entity-id based
	versions of some hot-swap functions and the function to get the
	current entity presence.

	* include/OpenIPMI/ipmiif.h, doc/OpenIMPI.texi: Added some text
	about how the object pointer callbacks are always called
	immediately.

	* lib/sel.c: Initialize the return value in
	ipmi_sel_add_event_to_sel().

	* lib/sel.c, ui/ui.c: Fix some problem with adding events to the
	SEL.

	* configure.in: Move to version 1.2.10.

	* lib/OpenIPMI/ipmi_addr.h, lib/ipmi_utils.c: Added a privilege
	field to the IPMI LAN address.
	
2004-02-11 Corey Minyard <cminyard@mvista.com> 

	* lib/sensor.c: Reworked sensor naming to include the entity
	id and instance.

	* lib/oem_atca_conn.c: Made ATCA connections always active.

	* lib/entity.c, include/OpenIPMI/ipmi_entity.h: Revised the
	entity addition function to take the mc channel and address, not
	an MC pointer, since the MC pointer is not always available.
	* lib/oem_motorola_mxp.c: adjusted for the previous change
	* lib/chassis.c: adjusted for the previous change
	* lib/sensor.c: adjusted for the previous change

	* lib/control.c, lib/sensor.c: Fixed some problems dealing with
	non-standard device-relative entities that are actually not on the
	device we are dealing with.

	* lib/oem_motorola_mxp.c: Added a CPCI board healthy sensor.

	* ui/basic_ui: Added a '-drawmsg' parameter to start raw message
	tracing at startup.

	* include/OpenIPMI/ipmi_addr.h: Added updates to the lan address
	stuff.
	* ui/ipmicmd.c: ditto

	* lib/ipmi_utils.c: Added handling of the LAN address type.

	* lib/oem_motorola_mxp.c: Removed the ability to set the chassis
	type control, as it is really not settable.

	* configure.in: Move to version 1.2.9.

2004-02-10 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_mc.h, lib/mc.c: Added a way to send events
	to the SEL of an MC.
	* include/OpenIPMI/ipmi_sel.h, lib/sel.c: ditto

	* ui/ui.c: Added a way to add events using the above calls.

	* lib/oem_motorola_mxp.c: Make the entities for boards on the MXP
	V2 chassis device-relative.

2004-02-09 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Move to version 1.2.7.

	* lib/oem_motorola_mxp.c: Add support for MXP half-pint chassis.

	* include/OpenIPMI/ipmiif.h: removed
	* include/OpenIPMI/ipmiif.h.in: added, with version info
	* configure.in: Added setting the version info of ipmiif.h

	* include/OpenIPMI/ipmiif.h.in, lib/ipmi.c: Added a version
	function.

	* include/OpenIPMI/ipmi_addr.h: Added a LAN address type.

	* lib/domain.c: Modified the bus scanning to put a second delay
	between attempts when checking for an MC that has been removed,
	just in case of a transitional failure.

	* sample/ipmicmd.c: Added support for LAN addresses.

	* configure.in: Move to version 1.2.8.

2004-02-08 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Don't subtract 0x60 from device-relative entity
	instances in the id, just leave it.

	* lib/entity.c: Fix some bugs extracting DLRs from the SDRs.

	* ui/ui.c: Subtract 0x60 from device-relative entity instances on
	display/input.

2004-02-02 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Move to version 1.2.6.

	* everything: Massive rework of the logging to get more
	information in there so the logs can be correlated to specific
	domains, sensors, MCs, etc.

2004-01-31 Corey Minyard <cminyard@mvista.com> 

	* domain.c: Cleaned up logs, made them include the file and
	function name.
	* ipmi_lan.c: Ditto

	* ipmi_lan.c: Modified message logging to separate the raw
	and normla message logging.

2004-01-29 Corey Minyard <cminyard@mvista.com> 

	* lib/oem_motorola_mxp.c: Move the AMC chassis id and temp cool
	LED to the main chassis entity, since only the active AMC handles
	it.

2004-01-28 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Move to version 1.2.5.

	* lib/oem_motorola_mxp.c: Removed the hot-swap status from the
	blue leds and ejector switches, until I figure out a good way to
	handle the power.

	* lib/entity.c: Fixed an extraneous unlock in the hot swap code.

	* lib/domain.c: Only scan the IPMB on an address change if not in
	startup mode to avoid scanning an MC before the user is informed
	of the domain being up.

2004-01-27 Corey Minyard <cminyard@mvista.com> 

	* lib/entity.c: Finished implementing the hot-swap state machine.

2004-01-26 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h, lib/sensor.c, lib/control.c,
	lib/entity.c: Added some routines for dealing more directly with
	ids.

	* configure.in: Move to version 1.2.4.

	* lib/domain.c, lib/sensor.c, lib/mc.c: Fixed some domain shutdown
	problems.

	* lib/oem_motorola_mxp.c: Reworked the control and sensor creation
	so the object is fully correct and available when reported.

2004-01-25 Corey Minyard <cminyard@mvista.com> 

	* lib/sensor.c: Lots of cleanups and error handling consolidation.

2004-01-24 Corey Minyard <cminyard@mvista.com> 

	* lib/sensor.c, include/OpenIPMI/ipmi_sensor.c: Reworked the
	default threshold handling, I misread the spec on this.  These are
	only valid for setting the threshold at init time.

	* lib/oem_motorola_mxp.c: Removed all the SDR hacks, since it is
	now all correct in the SDRs.

	* configure.in: Move to version 1.2.3.

2004-01-23 Corey Minyard <cminyard@mvista.com> 

	* lib/ilist.c, include/OpenIPMI/ilist.h: Added a
	ilist_twoitem_destroy() call.

	* include/OpenIPMI/ipmi_control.h, lib/control.c: Allow controls
	to generate update events.

	* lib/conn.c: Fixed some memory leaks.

	* include/OpenIPMI/ipmi_bits.h: Added a return value for the event
	handlers to tell if the handler will manage the event or if it
	should be passed on.
	* include/OpenIPMI/ipmi_control.h, lib/control.c: ditto
	* include/OpenIPMI/ipmi_sensor.h, lib/sensor.c: ditto

	* include/OpenIPMI/ipmi_control.h, lib/control.c: Added lots of
	info to the hot-swap indicator.

	* include/OpenIPMI/entity.h: Added lots of info to the hot-swap
	state machine description.

	* include/OpenIPMI/ipmiif.h, lib/entity.c: Started work on the
	hot-swap state machine.

	* lib/oem_motorola_mxp.c: Went back to the old presence state
	machine, except the healthy and reset events cause a presence
	check, they don't directly drive the state machine, since then are
	not 100% dependable.

	* lib/oem_motorola_mxp.c: Modified the code to register all
	product ids from 0x01 to 0x40 as MXP products.

2004-01-22 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_control.h:
	Added a way for standard value controls to generate events.
	* lib/control.c: ditto

2004-01-21 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h, lib/sensor.c: Added a way to register
	multiple handlers on a sensor event.

2004-01-20 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmiif.h: Added hot-swap state machine and
	function definitions.

	* include/OpenIPMI/ipmi_entity.h, lib/entity.c: Added hot-swap
	polymorphic routines.

	* include/OpenIPMI/ilist.h, lib/ilist.c: Added two item list code,
	primarily for handling callback lists.

	* lib/conn.c: Converted OEM connection callback list to the
	two item list, and call all the OEM connection callbacks at once.

2004-01-19 Corey Minyard <cminyard@mvista.com> 

	* lib/conn.c, include/OpenIPMI/ipmi_conn.h: Added a connection
	handler for testing new connections types (primiarily for ATCA).

	* lib/oem_atca_conn.c, lib/ipmi.c: Added, new code for ATCA
	connection handler, for getting the IPMB address.

	* lib/domain.c: Fixed a problem in domain OEM callbacks; the
	iterator used may become invalid during the process of handling
	the OEM callbacks.

	* lib/ipmi_lan.c: Return NULL for the IPMI in a handler when the
	connection is shut down.

	* lib/ipmi_lan.c, lib/ipmi_smi.c: Added calls to the OEM
	connection handler code.

	* lib/ipmi_smi.c: Have the shutdown code call the handler on all
	outstanding messages.

2004-01-14 Corey Minyard <cminyard@mvista.com> 

	* configure.in, ui/basic_ui.c: Added support for net snmp.

	* configure.in: Move to version 1.2.2

	* ui/ui.c: Added handling for controls going away when displayed.

	* README.MotorolaMXP: Added.

	* lib/oem_motorola_mxp.c: Modified the handling for custom AMC
	sensors to only be created if it's an old AMC.  Also added support
	for handling the sensors from the AMC properly, setting the entity
	ID properly.

	* lib/domain.c: Have the domain code call the OEM handler for the
	SI MC.

	* lib/mc.c: Added a way to have an MC's main device repository
	treated as a device SDR repository.

	* lib/oem_motorola_mxp.c, doc/OpenIPMI.texi: Removed the fan speed
	control (it no longer works) and added the fan speed reading.

2004-01-14 Corey Minyard <cminyard@mvista.com> 

	* doc/OpenIPMI.texi: Added some MXP-specific information.

	* lib/oem_motorola_mxp.c: Fixed a few problems, the Chassis ID
	sensor was on the wrong entity, some boards were missing, and a
	few other little glitches.

	* lib/domain.c: Added scanning the system interface when a
	connection goes up or down.

2004-01-13 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Move to version 1.2.1

	* configure.in, ui/Makefile.am, ui/basic_ui.c: Make the SNMP stack
	optional.

	* man/ipmi_ui.1: Add docs for the -snmp option

	* doc/OpenIPMI.texi: Added docs for the SNMP trap handling.

	* include/OpenIPMI/ipmi_conn.h, lib/ipmi.c: Added an external SNMP
	trap handler.

	* include/OpenIPMI/ipmi_lan.h, lib/ipmi_lan.c: Added an external
	trap handler.

	* include/OpenIPMI/ipmi_mc.h, lib/mc.c: Added a return code from
	adding an event to know if the event was a duplicate.
	* include/OpenIPMI/ipmi_sel.h, lib/sel.c: Ditto

	* lib/domain.c: Modified the incoming event handler so that if it
	gets a NUL event message, to rescan the SEL from the source MC.

	* lib/ipmi_lan.c: Modified the sequence number handling to not use
	a zero sequence number, and to ignore zero sequence numbers.  This
	allows things to send messages with ignored responses by setting
	the sequence to zero.

	* ui/basic_ui.c: Added support for SNMP traps.

2004-01-12 Corey Minyard <cminyard@mvista.com> 

	* lib/pet.c, include/OpenIPMI/ipmi_pet.h: Modified the PET code to
	only handle a single channel, and to specify the channel and
	connection explicitly.  It's really impossible for this code to
	know automatically what channels to configure and what IP
	addresses to use for each.

	* configure.in: Update version to 1.2.0.

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h, include/OpenIPMI/ipm_oem.h:
	Added a mechanisms to fixup a sensor before anything is done with
	it (to fix broken values).

	* lib/oem_motorola_mxp.c: Added a fixup handler for AMC sensors to
	set the entity instance properly.

	* lib/oem_motorola_mxp.c: Converted over handling of semi-standard
	sensors to use the standard sensor fetch mechanism, if possible.
	Also added the AMC temperature sensor.

	* doc/OpenIPMI.texi - Added a bunch of info on the new MXP
	version.

	* lib/oem_motorola_mxp_intf.c: Modified to startup up a standard
	LAN connection if on a newer AMC.

	* lib/sensor.c, include/OpenIPMI/ipmi_sensor.c: Added a send_lun
	to the OEM sensors so they can use the normal sensor code for
	things that are standard.

2004-01-09 Corey Minyard <cminyard@mvista.com> 
	* include/OpenIPMI/ipmi_bits.h, ui/ui.c, lib/strings.c: Added
	one-shot reset, general output, and one-shot ouput controls.

	* lib/oem_motorola_mxp.c: Added a bunch of controls for various
	things in the chassis and boards.

	* lib/ipmi_lan.c: Fixed a problem when receiving messages, need to
	compare the netfn as well as the command when looking for sendmsg
	and event msg buffer commands.

	* lib/oem_motorola_mxp.c: Modified the presence sensor for normal
	boards to use the CPCI healthy signal instead of the wierd thing
	it was doing.

	* lib/mc.c: Don't delete the MC removed handlers unless the MC is
	really deleted.

2004-01-08 Corey Minyard <cminyard@mvista.com> 

	* lib/fru.c: Added error info logs to tell why a FRU was bad.

	* doc/OpenIPMI.texi: Added documenataion for the new PEF, PET, and
	LAN configuration items.

	* lib/domain.c, include/OpenIPMI/ipmi_domain.h: Added code to
	check if a specific connection is active and to activate a
	connection explicitly.
	
	* ui/ui.c: Added support for the connection activation.

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: Added a mc reset command
	for sending MC cold and warm resets.

	* lib/chassis.c: Added a one-shot reset control.

	* lib/oem_motorola_mxp.c: Added controls for the version AMC
	version.

2003-01-08 Jeff Zheng <jeff.zheng@intel.com>

	* lib/pef.c: Various fixes for PEF handling.

2004-01-07 Corey Minyard <cminyard@mvista.com> 

	* ui/ui.c: Added LAN and PEF lock clearing.

	* lib/pet.c, include/OpenIPMI/ipmi_pet.h: Reworked the PET to
	support proper locking and to support the proper setup of the
	policy number.

	* ui/ui.c: Added support for the PET.

	* lib/domain.c, include/OpenIPMI/ipmi_domain.h: Added a "broadcast
	broken" field so systems that have non-working broadcasting can
	set this.  Then bus scanning wll use normal messages, not
	broadcasts.

	* lib/oem_motorola_mxp.c: Set the broadcast broken flag.

2004-01-06 Corey Minyard <cminyard@mvista.com> 

	* lib/pef.c, include/OpenIPMI/ipmi_pef.h: Reworked this to handle
	locking properly, the lock is claimed on a PEF config read and the
	lock is cleared on a write.  Also added a specific clear lock
	operation.

	* lib/lanparm.c, include/OpenIPMI/ipmi_lanparm.h: Reworked this to
	handle locking properly, the lock is claimed on a LAN config read
	and the lock is cleared on a write.  Also added a specific clear
	lock operation.

2004-01-05 Corey Minyard <cminyard@mvista.com> 

	* ui/ui.c, ui/basic_ui.c: Added a way to free things allocated in
	the main routine.

	* lib/ipmi.c, include/OpenIPMI/ipmi_int.h: Added an IPMI rwlock.

	* lib/pet.c: Converted the main pet lock to a rwlock.

	* ui/ui.c: Consolidate MC reading.

	* lib/domain.c: Fixed the system interface address handling to be
	correct for the individual interfaces.

	* lib/ipmi_lan.c: Removed the bind code, as if you don't bind an
	address one will be auto-assigned.

	* ui/ui.c: Added the ability to set the LAN and PEF parameters.

2004-01-05 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_int.h, lib/ipmi.c: Added a way for
	internal code to fetch the global OS handler.

	* lib/pef.c, include/OpenIPMI/ipmi_pef.h: Added a way to get the
	MC for a PEF.

	* lib/impi_lan.c: Added system address scanning for all LAN
	connections.

	* lib/ipmi.c: Added PET init and shutdown functions.

	* lib/ipmi.c, include/OpenIPMI/ipmi_int.h: Added a method to get
	the main OS handler.

	* include/OpenIPMI/ipmi_addr.h: Added a define for the "self"
	channel.

	* lib/pet.c, include/OpenIPMI/ipmi_pet.c, lib/Makefile.am: Added a
	way to easily set up the platform event trap stuff for just
	getting all events.

	* ui/ui.c: Added support for the LAN parameter display.

2004-01-02 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_int.h: Added ipmi_strdup for use by
	everyone.

	* include/OpenIPMI/ipmi_pef.h, lib/pef.c: Added and mostly rewrote
	some PEF code from Jeff Zheng.  Still not quite done.

	* include/OpenIPMI/ipmi_lanparm.h, lib/lanparm.h: Added code for
	handling LAN configuration parameters.

	* ui/ui.c: Added some code for fetching and writing PEFs.
	
2003-12-26 Corey Minyard <cminyard@mvista.com> 

	* configure.in: Move to version 1.1.8

2003-12-26 Corey Minyard <cminyard@mvista.com> 

	* include/OpenIPMI/ipmi_domain.h, lib/domain.c: Added a domain OEM
	handler for detecting and setting up special types of domains,
	mainly in preparation for ATCA.

	* lib/ipmi_lan.c: IPMIv1_5_rev1_1_0926 markup, section 6.12.4,
	didn't clear things up at all.  Some manufacturers have
	interpreted a certain way that this added code handles, but IMHO
	it is incorrect.
	
2003-12-09  Louis Zhuang  <louis.zhuang@linux.intel.com>

	* lib/ilist.c: Fix a bug in the routine to go to the previous
	item.

2003-12-05 Corey Minyard <cminyard@mvista.com> 

	* lanserv/emu.c: Work on SDR emulation.

2003-12-04  Louis Zhuang  <louis.zhuang@linux.intel.com>

	* include/OpenIPMI/ipmi_mc.h, lib/mc.h: Add a new function
	'ipmi_mc_sel_get_last_addition_timestamp' for OpenHPI to use.

	* include/OpenIPMI/ipmi_sel.h, lib/sel.h: Add a new function
	'ipmi_sel_get_last_addition_timestamp'.

2003-12-04 Jeff Zheng <jeff.zheng@intel.com>, Corey Minyard <cminyard@mvista.com>

	* sample/ipmicmd.c: Actually close the IPMI connection at quit.

2003-12-04 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmiif.h: Use "const" properly to get rid of
	warnings.
	* lib/ipmi.c: ditto
	* sample/ipmicmd.c: ditto
	* sample/sample.c: ditto
	* ui/basic_ui.c: ditto

2003-12-03 Corey Minyard <cminyard@mvista.com>

	* lib/sensor.c: Allow settable hysteresis values to be read, too.

	* include/OpenIPMI/ipmi_bits.h: Added some docs on the confusing
	names of the hysteresis values.

2003-12-03 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.1.7

	* lib/ipmi_lan.c: Updated the response format where the send
	message is include with the response to include the destination
	IPMB as part of the header.

	* lanserv/emu.c lanserv/lanserv.c lanserv/lanserv_emu.c: Adjustments
	for the previous change.

	* utils/md5.c: Fixed this to work on big and little endian without
	special defines.

2003-12-02 Corey Minyard <cminyard@mvista.com>

	* lanserv/emu_cmd.c, lanserv/Makefile.am, lanserv/lanserv_emu.c:
	Added a command processor for handling control commands to the
	emulator.

	* lanserv/emu.c, lanserv/emu.h, lanserv/lanser_emu.c: Massive
	restructure to clean this up and support various commands and get
	IPMB working.

	* lanserv/lanserv.c: Check for proper message length in broadcasts.

2003-12-02  Louis Zhuang  <louis.zhuang@linux.intel.com>

	* include/OpenIPMI/ipmi_mc.h, lib/mc.h: Add a new function
	'ipmi_mc_event_by_recid' for OpenHPI to use.

	* include/OpenIPMI/ipmi_sel.h, lib/sel.h: Add a new function
	'ipmi_sel_get_event_by_recid'.

2003-12-01 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_mc.h, lib/mc.c: Renamed some functions to
	remove the leading "_".  This opens them up for OpenHPI to use.

	* lib/domain.c: Updates for the above changes.
	* lib/sel.c: ditto
	* lib/sdr.c: ditto
	* lib/sensor.c: ditto
	* lib/control.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* ui/ui.c: ditto
	
2003-11-30 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_control.h, lib/control.c: Added a way to
	get the source MC for the control.
	
	* include/OpenIPMI/ipmi_sensor.h, lib/sensor.c: Added a way to
	get the source MC for the sensor.

	* lib/chassis.c, lib/mxp_oem_motorola_mxp.c: Side effects from the
	above changes.

	* include/ipmi_domain.h, lib/domain.c: Reworked the MC update
	handler to be more standard.

	* ui/ui.c, ui/basic_ui.c: Fix problems with the reconnect code.

	* ui/ui.c: Added MC update handler registration so new MCs are
	reported.
	
2003-11-28 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmiif.h, lib/ipmi.h: Added parameter parsing
	code for parsing the various types of connections from argv-type
	strings (really taken from ui/basic_ui.c).

	* ui/basic_ui.c, sample/sample.c, sample/ipmicmd.c: Converted over
	to use the new parameter parsing code.

2003-11-21  Louis Zhuang  <louis.zhuang@linux.intel.com>

	* lib/domain.c, include/OpenIPMI/ipmi_domain.h: Add function
	'ipmi_domain_set_bus_scan_handler' to indicate bus scan
	is done
	* sample/sample.c: Add some code to demostrate usage of
	'ipmi_domain_set_bus_scan_handler'

2003-11-21  Louis Zhuang  <louis.zhuang@linux.intel.com>

	* lib/domain.c: Fix a bug in ipmi_domain_reread_sels

2003-11-17 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c, lib/domain.c: Added support for detection old and
	newer IPMI versions and issuing appropriate logs.

2003-11-11 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.1.6.

2003-11-11 Jeff Zheng <jeff.zheng@intel.com>

	* configure.in: Add checking for getaddrinfo().

	* include/OpenIPMI/ipmi_lan.h, lib/ipmi_lan.c: Added support for a
	IPv6 capable interface.

	* lanserv/lanserv.c, lanserv/lanserv_config.c, lanserv.h: Add
	support for IPv6 addresses.

	* sample/sample.c, ui/basic_ui.c, sample/ipmicmd.c: Reworked to
	use the new IPv6 capable interfaces.
	
2003-11-10 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: Fixed MC scanning to handle a single address
	properly and fixed some error handling cases.
	
2003-10-30 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: Fixed MC scanning to skip addresses properly at
	the beginning of a scan.

	* lib/domain.c, include/OpenIPMI/ipmi_domain.h: Modified the MC
	scanning ignoring to use ranges.

	* lib/domain.c: The previous fix to handle an MC-less case by just
	allowing scanning the BMC at 0x20, not scanning the sysaddr.  The
	sysaddr stuff was just too tied to the redundant BMC case.

	* lib/ipmi_smi.c: Send messages with the proper size.

2003-10-31  Louis Zhuang  <louis.zhuang@linux.intel.com>

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: Add const qualifier into function

2003-10-30 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_smi.c: Handle data portion of a socket message correctly.

	* sample/ipmicmd.c: Fix error handling.

2003-10-30 Louis Zhuang <louis.zhuang@intel.com>, Corey Minyard <cminyard@mvista.com>

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: Add a function to set the
	SEL time for an MC.

2003-10-30 Corey Minyard <cminyard@mvista.com>

	* lib/selector.c: Allow a NULL send_sig handler.

2003-10-30 Jarrod Johnson <jbj-taway@ura.dnsalias.org>

	* sample/ipmicmd.c: Close the connection when done.

2003-10-29 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c, include/OpenIPMI/ipmi_mc.h: Added a way to force
	rereading the SEL.

	* lib/domain.c, include/OpenIPMI/ipmiif.h: Added a way to force
	rereading all the SELs in a domain.

2003-10-23 Corey Minyard <cminyard@mvista.com>

	* lib/sdr.c: Fixed a bug in the random backof of SDR reading.  On
	a random backoff, it would also start one immediately, too.  This
	was bad because it didn't avoid the contention and it was possible
	to have two SDR readings going on at the same time in the same SDR
	structure.
	
2003-10-23 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c: If a BMC reports through its channels that is does
	not have an IPMB bus, then force scanning the system address so we
	will find something useful.

2003-10-20 Corey Minyard <cminyard@mvista.com>

	* ui/ui.c: Added some code to print the number of SEL entries on
	an mc (when dumping the MC) and the total number of SEL entries
	when listing the SEL.

	* lanserv/lanserv.c, lanserv/lanserv_config.c: Restructured the
	LAN code to make it more flexible and split out more generic
	functions.
	* lanserver/lanserv_emu.c, lanserv/emu.c, lanserv/emu.h: Ditto
	* include/OpenIPMI/lanserv.h: Ditto
	
2003-10-17 Tony Griffiths <tonyg@agile.tv>

	* lib/ipmi_smi.c: Added some enhanced debugging info.

2003-10-17 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.1.5.
	
2003-10-16 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_mc.h, lib/mc.c: Added a way to get the
	current SEL time.

2003-10-16 Louis Zhuang <louis.zhuang@intel.com>
	
	* include/OpenIPMI/ipmi_mc.h, lib/mc.c: add a bundle of mc wapper 
	functions for SEL operation 

2003-10-15 Corey Minyard <cminyard@mvista.com>

	* ipmi_lan: Fix the send to the system address to be correct,
	and handle incoming messages properly.

	* lib/sdr.c: Null a message data (to keep valgrind happy).

	* ui/ui_os.c: Fixed a problem valgrind found, timer data may be
	freed in the user's handler, but we still used it in the timer
	handler after the call to the user's handler.

2003-10-15 Jeff Zheng <jeff.zheng@intel.com>

	* lib/mc.c: Null out some values on removal.

	* lib/fru.c: Calculate the end of the FRU data correctly.

2003-10-09 Thomas Kanngieser <Thomas.Kanngieser@fci.com>

	* lanserv/lanserv_asf.c: Send the right data for an RMCP ping.

2003-10-09 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.1.4.

	* lanserv/priv_table.c: Fixed the permissions checking code, ADMIN
	privilege was specified incorrectly for unknown messages and magic
	numbers were replaced with defined names.

2003-10-08 Livio Pugliese <lpugliese@uxcomm.com>

	* lib/sensor.c: Added the missing log2() conversion function to
	the array of conversion values.

2003-10-07 Tony Griffiths <tonyg@agile.tv>

	* lib/domain.c: Fix getting the vendor id from the channel info
	response.

2003-10-02 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c: Changed the max outstanding message default
	to two.

	* lib/mc.c: Removed setting the event receiver for SEL devices
	that are not event generators.

	* ui/ui.c: Fixed problems printing entities.

2003-10-07 Tony Griffiths <tonyg@agile.tv>

	* lib/domain.c: Fixed channel scanning to go on if it gets an
	error from the channel.  That way if channels are not present, it
	will still find channels beyond the errored channel.

	* lib/strings.c, include/OpenIPMI/ipmi_msgbits.h: Add strings for
	the netfns, commands, and errors.
	* include/OpenIPMI/ipmi_err.h: ditto

	* lib/ipmi_lan.c: Convert debugging to clean up the formatting and
	use the new strings.

2003-10-05 Thomas Kanngieser <Thomas.Kanngieser@fci.com>

	* lib/sensor.c: The binary search converting from float to raw
	values had the compare backwards.

2003-10-02 Corey Minyard <cminyard@mvista.com>

	* ui/entity.c: Fixed the custom info get function names.

	* ui/ui.c: Fixed a few FRU output problems.

	* sample/sample.c: Fixed the FRU output.

	* ui/entity.c, ui/fru.c: Added board manufacture time function.
	* include/OpenIPMI/ipmi_fru.h: ditto
	* include/OpenIPMI/ipmiif.h: ditto

	* ui/ui.c: Converted over all display of entities to do the
	relative and absolute entity names.

	* lib/sdr.c: The Get Device SDR command stupidly only returns the
	number of sensors, not the number of SDR entries.  For device
	SDRs, the SDR array will expand up to 512 entries if it runs
	out of SDR entries.  256 is the max number of sensors, so this
	should be safe.

2003-10-02 Thomas Kanngieser <Thomas.Kanngieser@fci.com>

	* lib/sensor.c: The bit shifts for getting the hysteresis and
	threshold support from the SDR were incorrect.

2003-10-01 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.1.3

	* lib/ui.c: Added support for device-relative entities.

	* include/OpenIPMI/ipmi_types.h: The bit assigns for
	entity_instance and channel were switched in the entity id type.
	
	* include/OpenIPMI/ipmi_control.h: Added an include for
	ipmi_addr.h since it is used in this include file.

	* include/OpenIPMI/ipmi_oem.h, lib/mc.c: Allow multiple OEM removal
	handlers to be registered against an MC.
	
	* include/OpenIPMI/ipmi_mc.h, lib/Makefile.am, lib/mc.c, lib/chassis.c:
	Added converting chassis control commands to a power control.

2003-09-30 Corey Minyard <cminyard@mvista.com>

	* lib/sdr.c: Don't refetch SDRs if the population is not dynamic.

	* lib/mc.c, lib/domain.c, include/OpenIPMI/ipmi_mc.h: Added an
	audit to check the SDRs for an MC and for the main SDR repository.

	* lib/mc.c: Was reading the device SDRs twice.  That's why it was
	so slow at startup.

	* lib/domain.c: Call the connection change function as soon
	as the connection is up, don't wait to read the SDRs, etc.

	* ui/ui.c, include/OpenIPMI/ipmi_ui.h: Add a function to set
	the domain at startup.

	* lib/entity.c: Make sure to free the entity SDR info when it is
	destroyed.

	* lib/domain.c: Initialize the running field of the
	activate_timer_info data.

	* ui/ui.c: Added TCSADRAIN to the tcsetattr() calls so that the
	output wouldn't get chopped off on shutdown of the program.  Also
	properly restored the flags for the output terminal.

	* ui/ui.c: Fixed a possible overrun in normal_char, it was using
	strcpy but the string wasn't necessarily nil terminated.  Change
	to use memcpy with a length.

2003-09-29 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi.c: The length bits of an IPMI string are the bottom 6
	bits, no the bottom 5 bits.

2003-09-28 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.1.2.

	* lib/domain.c: Added handling of system ids in events.

	* lib/domain.c: Don't allow messages to be sent on a shutdown
	domain.  This avoids an infinite loop in some cases.

	* lib/domain.c: In cleanup_domain(), pass the error response in
	as the response, not the original message.

	* lib/entity.c, include/OpenIPMI/ipmiif.h: Added entity functions
	to get FRU information so the user doesn't have to deal directly
	with the FRU type.

	* include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_fru.h:
	Moved all the FRU functions and types into ipmi_fru.h.

	* include/OpenIPMI/ipmi_fru.h, include/OpenIPMI/ipmi_bits.h: Moved
	the chassis types into the public bits.

2003-09-26 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.1.1.

	* Lib/ipmi_malloc.c: Fill debug malloced memory with junk to help
	catch usage before initialization.  Also cleaned up some error
	messages.

	* lib/entity.c: Fixed a problem where some data was being used
	before initialization.

2003-09-25 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.1.0.

	* doc/OpenIPMI.texi: Added a little information about FRUs.

	* include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_entity: Moved
	entity type definitions to the public part and renamed them, and
	allow getting and setting the type
	* lib/entity.c: ditto

	* include/OpenIPMI/entity.h, lib/entity.c: Reworked the FRU
	handling to be more flexible.

	* include/OpenIPMI/ipmiif.h: Reworked the entity information to
	make it more understandable.

	* lib/entity.c: Lots of little cleanups for FRU handling and
	handling of SDR records.

	* lib/fru.c: Fixed handling of some data type to find some types
	of errors.

	* lib/ipmi_lan.c: Modified the handling of tunnelling IPMB over
	LAN to work with Intel boxes.  It seems their interpretation of
	the spec is different than mine, but the code should now work with
	both interpretations.

	* lib/ipmi_malloc.c: Don't print some data that we don't have.

	* lib/oem_motorola_mxp.c: Updated for FRU handling.

	* ui/ui.c: Added better entity output and FRU change handling.
	
2003-09-24 Corey Minyard <cminyard@mvista.com>

	* ui/ui.c: Added some FRU handling commands.

	* lib/mc.c: Added entity scanning to device SDRs.
	
	* lib/entity.c: Reworked the entity SDR handling code so that it
	tracks the old values, detects when values change, and does the
	appropriate thing.
	
	* lib/fru.c, include/OpenIPMI/ipmi_fru.h: Added FRU handling code.
	* include/OpenIPMI/ipmiif.h: ditto
	* lib/Makefile.am, include/OpenIPMI/Makefile.am: ditto
	* lib/entity.c: ditto

	* lib/mc.c, include/OpenIPMI/ipmi_mc.c: Allow the entity code to
	store MC-specific SDR information in the MC.

	* lib/domain.c, include/OpenIPMI/ipmi_domain.c: ditto, but for the
	main SDR repository.

	* include/OpenIPMI/ipmi_bits.h: Added unicode support.
	* include/OpenIPMI/ipmi_control.h: ditto
	* include/OpenIPMI/ipmi_entity.h: ditto
	* include/OpenIPMI/ipmi_int.h: ditto
	* include/OpenIPMI/ipmi_sensor.h: ditto
	* include/OpenIPMI/ipmiif.h: ditto
	* lib/control.c: ditto
	* lib/entity.c: ditto
	* lib/ipmi.c: ditto
	* lib/oem_motorola_mxp.c: ditto
	* lib/sensor.c: ditto

	* include/OpenIPMI/ipmi_sensor.h, include/OpenIPMI/ipmi_mc.h:
	Moved the sdr fetching code to the MC code where it belonged, but
	had to export the sensors waitq to do this.
	* lib/mc.c, lib/sensor.c: ditto

	* include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_int.h: Moved
	the string decoding and data decoding functions into the internal
	functions.
	

2003-09-24 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.0.4.

	* lib/selector.c: Allow the selector code to be called from
	multiple threads, and fix a race condition on waking up waiting
	selectors.

2003-09-23 Corey Minyard <cminyard@mvista.com>

	* lib/sel.c, lib/sdr.c: Fixed setting the minor version, thanks
	Livio Pugliese for pointing this out.

2003-09-19 Corey Minyard <cminyard@mvista.com>

	* lib/selector.c, include/OpenIPMI/selector.h: Change
	sel_select_loop() to return an error if select fails(), instead of
	calling exit().

2003-09-02 Corey Minyard <cminyard@mvista.com>

	* lib/oem_motorola_mxp_intf.c: Changed the timer for MXP messages
	to 20ms and added a 20ms delay between checking for the message
	lock.  Added a 20ms delay after sending 8 messages to let other
	boxes have access.

	* lib/oem_motorola_mxp.c: Fixed the -12V voltage sensor on the
	5365 card to be 10% tolerance.

	* lib/mc.c: Fixed process to continue when the SDR fetch
	fails.

	* lib/entity.c, include/OpenIPMI/ipmiif.h: Added a way to force
	entity presence detection.

2003-08-27 Corey Minyard <cminyard@mvista.com>

	* lib/ipmi_lan.c: Fixed reconnection problems. 

	* lib/oem_motorola_mxp_intf: Removed connection loss detection from
	the MXP-specific queue fetch, because it is unreliable.  Just use
	the main LAN connection for failure detection.

	* lib/mc.c: Don't cleanup the MC if the SDR read fails.

2003-08-13 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.0.3.

	* doc/OpenIPMI.texi: Minor doc updates.

	* lib/domain.c, include/OpenIPIM/ipmiif.h: Added a way for the
	user to know when all the main SDRs have been read.

2003-08-13  Louis Zhuang  <louis.zhuang@linux.intel.com>

	* lib/selector.c: Fixed a trivial bug in process_timers

2003-08-12 Corey Minyard <cminyard@mvista.com>

	* lib/sdr.c: Added code to the SDR so that it will wait until
	everything outstanding is clear before restarting the fetch
	operation.  Also added a random timer to restart SDR operations
	when the reservation was lost.

	* lib/domain.c: Reworked the code to not start the connection up
	process on an inactive connection.

2003-08-11 Corey Minyard <cminyard@mvista.com>

	* lib/sdr.c: Fixed a locking bug in the SDR code.

	* lib/domain.c: Modified the set timer code that processes a new
	working connection to wait a while until activating the
	connection.  This allows other connections that may already be
	active to come up.

2003-08-01 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 1.0.2.

	* lib/sensor.c, lib/control.c: Handle NULL controls and sensors in
	opq done.  If a sensor is destroyed during an operation, this can
	be called with NULL.

	* lib/oem_motorola_mxp.c: Removed some debugging cruft.

	* lib/oem_motorola_mxp_intf.c: Cleaned up the debug dump output.

2003-07-31 Corey Minyard <cminyard@mvista.com>

	* lib/domain.c, include/OpenIPMI/ipmi_domain.h: Added a way to
	monitor management controllers as they are added and deleted.

	* lib/domain.c: Minor cleanups for handling the new MXP style of
	addressing.

	* lib/oem_motorola_mxp.c: Added monitoring for the AMC card.

	* lib/oem_motorola_mxp.c: Split the AMC card handling up to
	completely rework the way the AMCs are handled.  The 0x20 address
	points to the current AMC.  Addresses (f 0) and (f 1) point to the
	individual AMCs.
	* lib/oem_motorola_mxp_intf.c: ditto

	* lib/oem_motorola_mxp.c: Made the board entity instances
	one-based instead of zero based.

2003-07-30 Corey Minyard <cminyard@mvista.com>

	* lib/oem_motorola_mxp.c: Made entity instances start at one
	for all entities instead of the random smattering that was there.

	* lib/oem_motorola_mxp.c: Fixed power supply events to not use the
	slave address of the power supply when translating events.

	* lib/ipmi_lan.c, lib/oem_motorola_mxp_intf.c: Modified the lan
	connections to make a connection for each IP address instead of
	sharing a connection between IP addresses.  Not all boxes support
	sharing a connection between IP addresses.

	* lib/domain.c: Fixed a problem handling 
	
	* lib/ipmi_lan.c, lib/oem_motorola_mxp_intf.c: Fixed a problem
	where the connection state wouldn't change if only the active
	value changed and not the IPMB address.

2003-07-29 Corey Minyard <cminyard@mvista.com>

	* lib/oem_motorola_mxp.c: Fixed a few little things required
	for the new firmware.

	* lib/oem_motorola_mxp_intf.c: Modified messages directly to the
	system interface to use the sequence number queue from the
	standard IPMI LAN code.  You couldn't use the standard message
	queue because those are one-at-a-time and the messages get gummed
	up in there.

2003-07-25 Corey Minyard <cminyard@mvista.com>

	* doc/OpenIPMI.texi: Minor doc updates about authentication.

2003-07-24 Corey Minyard <cminyard@mvista.com>

	* lib/mc.c: Delayed the start of fetching events for an MC's SEL
	until the domain connection is up.

2003-07-23 Corey Minyard <cminyard@mvista.com>

	* lib/entity.c: Fixed searching for the next presence sensor when
	one is deleted.

	* lib/entity.c: Don't set the device num for an entity if the
	instance is not device-relative.  Also, don't add an mcdlr if no
	entity id is specified.

	* lib/entity.c: Fix removal of controls from entities to compare
	properly.

	* lib/ipmi_oem_force_conn.c, lib/oem_force_conn.c: Renamed this
	file to make it more consistent.
	* lib/Makefile.am: ditto

	* lib/oem_motorola_mxp.c, lib.oem_motorola_mxp_intf.c:  Added
	support for the Motorola MXP chassis.
	* include/OpenIPMI/mxp.h: ditto
	* lib/Makefile.am: ditto
	* lib/ipmi.c: ditto
	* ui/basic_ui.c: ditto

2003-07-22 Corey Minyard <cminyard@mvista.com>

	* configure.in: Moved to version 1.0.1.

	* utils/test_md5.c, utils/test_md2.c: Make the tests run
	standalone.
	
	* lanserv/Makefile.am: Make dependencies for libraries be in
	the build directory, not the source directory.  This way it will
	build in a separate object directory.
	* lib/Makefile.am: ditto
	* sample/Makefile.am: ditto
	* ui/Makefile.am: ditto

	* configure.in: Moved to version 1.0.0.

	* everything: Restructured the entire tree and split up everyting
	into subdirectories.  Hopefully the code is much better structured
	now.

2003-07-21 Corey Minyard <cminyard@mvista.com>

	* ipmi_smi.c: Added socket interface handling for the SMI
	connection.

2003-07-16 Corey Minyard <cminyard@mvista.com>

	* OpenIPMI.texi, sensors.c, include/OpenIPMI/ipmiif.h: Added
	support for just enabling or disabling sensor event (instead of
	directly setting them), added a bunch of error checking to the
	enabling and disabling of sensors to make sure the sensor supports
	the requested capability.
	* include/OpenIPMI/ipmi_sensor.c: ditto

	* entity.c: Reworked the presence sensor code to take into account
	the sensor capabilities.

2003-07-11 Louis Zhuang <louis.zhuang@linux.co.intel.com>

	* ipmi_lan.c, lanserv_asf.c, lanserv_ipmi.c: Cleanups to
	remove some warnings.

2003-07-03 Corey Minyard <cminyard@mvista.com>

	* sdr.c: When handling SDR data, be sure to check that the MC is
	valid in responses, so that this properly handles MCs going away.

2003-06-11 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.4.3

	* include/net/af_ipmi.h: Added include file for IPMI socket.
	* Makefile.am: ditto
	* configure.in: ditto
	* include/net/Makefile.am: ditto

	* lanserv.c: Modified to use IPMI socket if available.

2003-06-07 Corey Minyard <cminyard@mvista.com>

	* Makefile.am: Clean up so that every '.c' is only listed once.
	When used in multiple programs, create a '.o' in all but one
	instance.  Still need to figure out how to correctly refer to
	.a libraries created by a '.la'.

	* all: License updates.

2003-06-06 Corey Minyard <cminyard@mvista.com>

	* sel.c: Modified to not use the state to tell if something is
	going on, but to use the opq.  Deletes don't modify the state, but
	they may still be in process at deletion.

	* mc.c: Fixed a memory leak.

2003-06-05 Corey Minyard <cminyard@mvista.com>

	* sel.c: Fixed a SEL destruction race condition.

2003-06-04 Corey Minyard <cminyard@mvista.com>

	* OpenIPMI.tex, README.Force: Minor updates to make some things
	clearer.

	* basic_ui.c: Fixed a problem with SMI connections.

	* ilist.c, ilist.h: Added some helper functions.

	* ui_os.c: Switch from /dev/random to /dev/urandom to avoid
	blocking for lack of entropy.

	* ui.c: Added a total bytes in SDR count.

	* sdr.c: Added a pipeline to the SDR fetch, to speed it up for
	high-latency links.

2003-06-03 Corey Minyard <cminyard@mvista.com>

	* ipmicmd.c: Added the latency testing code back in.

2003-06-02 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.4.2.

	* sensor.c: Moved the removal of the sensor from the entity to the
	place of its final destruction, so the entity will exist during
	callbacks related to destruction of the sensor.

	* ipmi_lan.c: Send a close session command when the connection is
	closed.

2003-05-30 Corey Minyard <cminyard@mvista.com>

	* OpenIPMI.texi: Updated docs for handling multiple MCs.

	* domain.c: Add a timer to wait for a while after detecting that
	everyone is inactive before acting.  This should solve race
	conditions where something deactivates one and activates another,
	to avoid an activation war between software devices.

	* domain.c: Reworked some timers so that the handle shutdowns
	correctly.

	* ipmi_lan.c: Changed the failure timeout to 3 seconds.

	* lanserv.c: Send all output to stdout in non-daemon mode.

2003-05-29 Corey Minyard <cminyard@mvista.com>

	* domain.c: More fixes for supporting multiple connections.

	* entity.c: Fixed the presence handling to use an entity id
	instead of an entity pointer since the entity can go away.

	* ipmi_lan.c: Modified broadcasts to not retry.

	* ipmi_lan.c: Added timer frees in a few places that needed them.

	* ipmi_oem_force_conn.c: Changed the broadcast of the deactivate
	to a normal message so it gets retried.

	* include/linux/ipmi.h: Added changes for setting the timing
	parameters.

	* lanserv.c: Added changes for setting the timing parameters.

	* sdr.c: Fetch sdr 0 to verify the reservation, not the current
	record.  Also fixed some completion stuff.

	* sensor.c: Fixed a shutdown case.

2003-05-28 Corey Minyard <cminyard@mvista.com>

	* sel.c: Fixed a shutdown double-free.

	* sdr.c: Fixed some shutdown free problems.

	* mc.c: Fixed some MC shutdown problems.

	* ilist.c, ilist.h: Set the malloced variable for the supplied
	entry automatically.

	* sdr.c: Removed some bogus frees.

	* mc.c: Set the MC active when it is handled as a new MC.

	* ipmiif.h: Removed ipmi_domain_get_user_data, since it doesn't
	make sense any more.

	* domain.c: Added support for multiple connections to a single
	IPMB box.

	* ipmi_oem_force_conn.c: Added handling for active and inactive
	connections.

2003-05-26 Corey Minyard <cminyard@mvista.com>

	* lanserv.c: Fixed the address reading code to increment the
	address count when it sees an address in the configuration file.

2003-05-19 Corey Minyard <cminyard@mvista.com>

	* mc.c: Modified the event receiver setting code to not modify the
	event receiver unless it is pointing to a nonexistant MC or an MC
	that does not have an event receiver.

2003-05-16 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.4.1
	
	* lanserv_oem_force.c, ipmi_oem_force.c: The permission from
	Force Computers(tm) came much faster than I expected.  This
	included some OEM handling for the various Force cards, for
	switching the cards to/from BMC mode and for fetching the IPMB
	address.  Thanks to Force for their help.
	
	* ipmi.c, lanserv.c, ipmicmd.c: Added calls to initialize the
	Force OEM code.

2003-05-15 Corey Minyard <cminyard@mvista.com>

	* lanserv.h: Moved to include/OpenIPMI
	
	* lanserv.c: Handled move of lanserv.h
	* lanserv_asf.c: ditto
	* lanserv_ipmi.c: ditto
	* lanserv_emu.c: ditto

	* configure.in: Move to version 0.4.0
	
	* ipmicmd.c: Changed the order of the lun and netfn to make it
	consistent with ipmi_ui.

	* ipmicmd.1: Wrote some docs for ipmicmd.

	* include/OpenIPMI/ipmi_conn.h: Reworked the connection reporting,
	changed "fail" to "change" everywhere to make it more accurate,
	and report all connection changes through the same interface.
	* domain.c: ditto
	* ipmi_lan.c: ditto
	* ipmi_smi.c: ditto
	* ipmicmd.c: ditto
	* sample.c: ditto
	* ui.c: ditto
	* include/OpenIPMI/ipmi_lan.h: ditto
	* include/OpenIPMI/ipmi_ui.h: ditto
	* include/OpenIPMI/ipmiif.h: ditto

	* include/OpenIPMI/ipmiif.h, domain.c: Modified the domain
	interface to support more than one connection (although the code
	still only supports one).

2003-05-14 Corey Minyard <cminyard@mvista.com>

	* ipmi.c, conn.c: Moved some connection handling stuff into a
	new file.
	* include/OpenIPMI/ipmi_int.h: ditto
	* include/OpenIPMI/ipmi_conn.h: ditto

	* include/OpenIPMI/ipmi_conn.h: Added a lot of connection handling
	changes for handling different and dynamic IPMB addresses, and for
	supporting the concept of a connection being "active".
	* ipmi.c: ditto
	* ipmi_lan.c: ditto
	* ipmicmd.c: ditto
	* ipmi_smi.c: ditto
	* domain.c: ditto
	* ipmi.c: ditto
	* ipmi.c: ditto

	* lanserv.h, lanserv.c, lanserv_ipmi.c: Added a lot of OEM
	handling.

	* sensor.c: Fixed a missing return.

2003-05-13 Corey Minyard <cminyard@mvista.com>

	* ipmi.c, ipmi_lan.c, ipmi_smi.c: Added infrastructure so that
	OEMs can see connections by device id when the connection is
	first established.
	* include/OpenIPMI/ipmi_oem.h: ditto
	* include/OpenIPMI/ipmi_int.h: ditto
	
	* ipmicmd.c: Reworked this so it sits on top of an IPMI
	connection.  This means you can make LAN connection now.

	* ipmi_utils.c: Split out some generic IPMI things that don't
	depend on anything else.
	
	* everything: Added the concept of an IPMI domain, and replaced
	the "BMC" with the "domain".  This was not a huge change from a
	usage point of view, but was a big restructure internally.  This
	way, we can support multiple BMC connections into a domain.

2003-05-05 Corey Minyard <cminyard@mvista.com>

	* ui.c: Added connection retrying.

2003-05-04 Corey Minyard <cminyard@mvista.com>

	* ipmi_lan.c: Got IPMI LAN stuff working again.

	* ui.c: Updates for the new id handling.

2003-05-02 Corey Minyard <cminyard@mvista.com>

	* lanserv_emu.c: Added an emulator for testing.

	* include/OpenIPMI/ipmi_conn.h: Added a way for the interface code
	to provide the IPMB address.
	* mc.c, ipmi_lan.c, ipmi_smi.c: ditto

	* mc.c: Added a valid field to the MC, right now just for BMCs, to
	handle shutdown races.

2003-05-01 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmi_types.h: A restructure of the id's was
	done to remove the MC validation calls from the rest of the code
	and use the standard MC callbacks.  It also added sequence
	numbers to MCs and MC ids so that if an MC is freed and the same
	memory is re-allocated, the MC still won't compare with an old
	id.
	* include/OpenIPMI/ipmi_mc.h: ditto
	* include/OpenIPMI/ipmi_sensor.h: ditto
	* control.c: ditto
	* entity.c: ditto
	* sensor.c: ditto
	* mc.c: ditto
	* sdr.c: ditto
	* sel.c: ditto

	* include/OpenIPMI/ipmi_int.h, ipmi.c: Added a sequence number
	allocator.

2003-04-30 Corey Minyard <cminyard@mvista.com>

	* lanserv.c: Modified the server to support two LAN connections
	specified in the config file, and modified it to always return the
	message from the file descriptor that received the message.

	* mc.c: Modified the SEL time code to set the time on the SEL,
	not get the time, so the SEL time will be correct.

2003-04-29 Corey Minyard <cminyard@mvista.com>

	* ipmi_lan.c, include/OpenIPMI/ipmi_lan.h: Added multiple IP
	addresses for a BMC.

	* include/OpenIPMI/ipmi_conn.h: Started restructuring the
	connection code so that the user allocates the connection and
	passed it into the main IPMI code.  This decouples the main IPMI
	code from the connection code, and readies support for having more
	than one BMC connection into a box.
	* include/OpenIPMI/ipmi_lan.h: ditto
	* include/OpenIPMI/ipmi_smi.h: ditto
	* include/OpenIPMI/ipmi_ui.h: ditto
	* include/OpenIPMI/ipmiif.h: ditto
	* mc.c: ditto
	* ipmi_lan.c: ditto
	* ipmi_smi.c: ditto
	* basic_ui.c: ditto
	* sample.c: ditto
	* ui.c: ditto

	* include/OpenIPMI/ipmi_types.h: Moved ipmi_con_t as an opaque
	type into here, so the user can access it.
	
2003-04-28 Corey Minyard <cminyard@mvista.com>

	* lanserv.c, lanserv.h, lanserv_ipmi.c: Added logs for error and
	notification handling.

	* lanserv.c, lanserv.h, lanserv_ipmi.c: Added an OEM message
	handler.

2003-04-27 Corey Minyard <cminyard@mvista.com>

	* lanserv.c, lanserv.h, lanserv_ipmi.c: Added timeout handling
	for sessions.

2003-04-26 Corey Minyard <cminyard@mvista.com>

	* lanserv_ipmi.c: Added incoming session sequence number
	checking.

2003-04-25 Corey Minyard <cminyard@mvista.com>

	* lanserv.c, lanserv_ipmi.c, lanserv_asf.c, lanserv.h: Added a LAN
	to SI interface.

	* include/OpenIPMI/ipmi_auth.h: Abstracted the memory allocation
	so the auth routines don't depend on OpenIPMI.
	* ipmi_lan.c: ditto
	* ipmi_auth.c: ditto
	* md2.c, md2.h: ditto
	* md5.c, md5.h: ditto
	* ipmi_lan.c: ditto

	* ipmi_malloc.c, include/OpenIPMI/ipmi_int.h: Made ipmi_mem_alloc
	take an int size, not a size_t size.

2003-04-24 Corey Minyard <cminyard@mvista.com>

	* strings.c: Fixed a bug in getting the sensor reading name.

	* priv_table.c, include/OpenIPMI/ipmi_auth.h: Added a table and
	handling for figuring out if a message is permitted for a certain
	priviledge level.
	
	* include/OpenIPMI/ipmi_msgbits.h: Added all the message ids from
	table G-1 from the IPMI 1.5 spec.

2003-04-23 Corey Minyard <cminyard@mvista.com>

	* ipmi.c, ipmi_auth.c: Created ipmi_auth.c from some stuff in
	ipmi.c

	* include/OpenIPMI/ipmi_msgbits.h: Added a bunch of message ids.

2003-04-22 Corey Minyard <cminyard@mvista.com>

	* ipmicmd.c, include/linux/ipmi.h: Added a debug interface to
	ipmicmd.

	* ui.c: Added a way to dump all an mc's information.

2003-04-17 Corey Minyard <cminyard@mvista.com>

	* ui.c: Fixed a double free on set_control error conditions.

	* mc.c: Added set functions for all the specific MC capabilities.

	* configure.in: Move to version 0.3.1.

	* mc.c: Added a mechanism to ignore IPMB addresses.

	* configure.in: Move to version 0.3.0b.

	* ui.c: Ignore control values when an error is reported from
	reading a control.

2003-04-16 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.3.0.

	* mc.c: During shutdown, delete entities after sensors and
	controls because sensors and controls may refer to entities.

2003-04-15 Corey Minyard <cminyard@mvista.com>

	* ipmi_lan.c: Implemented a max outstanding message count to
	avoid killing a LAN BMC, and implemented a queue to hold extra
	messages.

2003-04-15 Duncan Laurie <duncan@sun.com>

	* ipmi_lan.c: Fix a couple of bits when the Send Message variant
	in lan_send is used.  Fix a double-unlock condition that
	happens with LAN response timeouts.

	* ipmi_lan.c: add a Set Session Privilege Level command to the end
	of the session setup sequence.  It is required because despite
	what you use the in the "privilege level" field in Activate
	Session command it opens in User level.

2003-04-15 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.2.7.

	* include/OpenIPMI/ipmi_mc.h, OpenIPMI.texi:  Change the name
	of ipmi_bmc_get_startup_SEL_time() to ipmi_mc_get_startup_SEL_time(),
	in the docs and includes, since it had already changed in the code.

2003-04-14 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.2.6.

2003-04-10 Louis Zhuang <louis.zhuang@linux.co.intel.com>, Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/selector.h: Added sel_select() to the include
	file.

	* sample.c: Added an example of using sel_select().

	* selector.c: Some cleanups.

2003-04-03 Duncan Laurie <duncan@sun.com>

	* ipmi_lan.c: Fixups trying to the the lan code working.

2003-04-01 Corey Minyard <cminyard@mvista.com>

	* mc.c: Changed the event receiver setting so that it is always
	done for new MCs, and it is done after the SDRs are read.  That
	way, any pending conditions for a new MC will be generated
	immediately with a valid sensor to handle it.

	* mc.c: Modified event handling so that events from the BMC get
	delivered properly.  It was not converting events from the system
	interface properly.

2003-03-31 Corey Minyard <cminyard@mvista.com>

	* all: Really release verion 0.2.5.

	* ui.c: Reset the termios on an error exit, too.

	* sdr.c: Fixed the SDR fetch to only fetch the exact amount of
	data left, instead of trying to get as much as possible, when at
	the end of the SDR.  Apparently some hardware doesn't handle this
	properly.

2003-03-27 Corey Minyard <cminyard@mvista.com>

	* ipmi_smi.c: Removed the timing of commands, because the
	low-level driver does it, and it introduced some race conditions.
	Specifically, if OpenIPMI timed out the command and the memory
	address got reused before the message came back in, then the
	message would be delivered to the wrong place.  It generally only
	happened when sitting for a long time in the debugger (so a whole
	slew of things happened at once).

	* example_oem.c, Makefile.am, OpenIPMI.texi: Added an example OEM
	plugin file for others to use to build their plugins.

2003-03-26 Corey Minyard <cminyard@mvista.com>

	* mc.c: Fixed some problems with non-BMC SELs.

	* ui.c: Added a log at startup to tell you to wait until startup
	is complete.

	* ui.c: Added a quit command.

2003-03-25 Corey Minyard <cminyard@mvista.com>

	* ui.c: The UI will no longer attempt to read unreadable
	controls.

2003-03-19 Corey Minyard <cminyard@mvista.com>

	* sdr.c: Modified the reservation support handling for device
	SDRs.  Start out assuming that it is supported, and if it returns
	an invalid command then assume it is not supported.  There is no
	clear way to determine if reservation is supported on device SDRs.

	* sdr.c: Check the proper MC flag if it is a sensor SDR to see if
	it supports device SDRs.

	* configure.in: Updated version to 0.2.5.

2003-03-14 Corey Minyard <cminyard@mvista.com>

	* sensor.c: Yet one more cleanup for compact sensor records,
	increment the source index properly.

	* sensor.c: Removed handle_deleted_sensor() and always use
	ipmi_sensor_destroy() to clean up a sensor.

	* control.c, include/OpenIPMI/ipmi_control.h: Added a count
	for the number of controls in a control repository.

	* sensor.c, include/OpenIPMI/ipmi_sensor.h: Added a count
	for the number of sensors in a sensor repository.

	* mc.c, include/OpenIPMI/ipmi_mc.h: Added the concept of an
	MC being active or inactive.  Active MCs are present in the
	system.  Inactive MCs are not present but referenced by SDRs, so
	they cannot be deleted.

2003-03-13 Jeff Zheng <Jeff.Zheng@Intel.com>

	* sample.c: Added a simple sample application.

2003-03-12 Corey Minyard <cminyard@mvista.com>

	* mc.c: Fixed a cleanup case in the routine that finds or creates
	an MC.

	* sensor.c: Minor sensor cleanup additions.

	* sensor.c: Fixed compact sensor records to copy the data contents
	instead of the pointer.

2003-03-06 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.2.4.

	* mc.c: Cleaned up some naming (use bmc when it is a bmc).

	* ui.c, basic_ui.c: Added a "reconnect" command to disconnect and
	reconnect to the BMC.

	* configure.in: Move to version 0.2.3.

	* mc.c: Added rescanning the entities when a connection comes
	back.

2003-03-05 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/ipmiif.h: Fixed the description of the
	ipmi_bmc_add_con_fail_handler() call to be accurate and complete.

	* mc.c: Added starting a rescan of the IPMB bus when a connection
	comes back.

2003-02-27 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.2.2.

	* entity.c: Cleaned up entity presence detection so it works
	properly with an entity presence sensor.

	* sdr.c: Fixed a bug where the SDR fetch would go into an infinite
	loop if the last SDR was not a sensor.

	* ui.c: Fixed things so the "-c" option (not full screen) works
	ok.

2003-02-26 Corey Minyard <cminyard@mvista.com>

	* include/OpenIPMI/os_handler.h: Added thread functions and moved
	all the function OpenIPMI does not use to the end.

2003-02-25 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.2.1.

2003-02-25 Todd David <todd.c.davis@intel.com>

	* ipmi.c: Added a check for the lock actually being allocated in
	ipmi_check_lock().

2003-02-24 Corey Minyard <cminyard@mvista.com>

	* test1.c, Makefile.am: Removed this bogus file.

	* sensor.c: Handle the same sensor received multiple times from
	the same SDR.  This actually moves the sdr_sensors source array
	into the sensor itself so it can be deleted regardless of where it
	came from.

	* sdr.c: The Get Device SDR Info command is optional (even if the
	device has device SDRs, for some strange reason), so default the
	information if it's not implemented but the device supports device
	SDRs.

	* mc.c: Ignore device SDRs if we get an error back from querying
	them.

2003-02-21 Corey Minyard <cminyard@mvista.com>

	* configure.in: Moved to version 0.2.0.

	* include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_sensor.h
	Added rearm support for sensors.
	* sensor.c: ditto
	* ui.c: ditto

	* include/OpenIPMI/ipmiif.h: The spec was very confusing in
	section 29.11 and 29.14 (1.5 spec) about the event messages and
	scanning enable/disable.  After studying the spec more, I'm pretty
	sure that 1 means enabled and 0 means disabled.  I think the spec
	is saying that 0 means disabled in the way it presents this.
	* include/OpenIPMI/ipmi_int.h: ditto
	* sensor.c: ditto
	* entity.c: ditto
	* ipmi.c: ditto
	* mc.c: ditto
	* ui.c: ditto

	* mc.c: Changed setting the event receiver for an MC to only do it
	if the event receiver was set incorrectly.

	* sel.c: Fixed a missing unlock.

	* sel.c: Modified the way individual record deletes occur and
	fetches occur to use an opq.  This way, reservations won't get
	mixed up.  Also modified individual deletes to check the value of
	the event before they actually delete it, to make 100% sure they
	are deleting the right event.

	* include/linux/ipmi.h, include/linux/ipmi_msgdefs.h: Converted to
	the new versions of the kernel headers.
	* include/OpenIPMI/ipmi_addr.h: ditto
	* include/OpenIPMI/ipmi_types.h: ditto
	* ipmi_smi.c: ditto

	* ipmicmd.c, Makefile.am: Added ipmicmd to this code.

2003-02-20 Corey Minyard <cminyard@mvista.com>

	* ui.c: Fixed a memory leak with controls.

	* sel.c: Make sure to report that a sel delete completed, even if
	we can only clear the whole SEL when all are done.

	* include/OpenIPMI/ipmi_msgbits.h: Added event receiver commands.

	* mc.c: Fixed a memory leak deleting logs.

	* ui.c: Added a command to scan an IPMB address.

	* mc.c: Added code to set the event receiver for MCs to whatever
	the current event receiver device is.

	* ipmi.c, include/OpenIPMI/ipmi_addr.h: Added a way to get the
	slave address for an address.

	* mc.c: Since the OEM code can change the values from get device
	id, the comparison code (to tell if an MC has changed) was changed
	to used a real copy of the values from the get device id, instead
	of the used values.

	* Makefile.am, ipmi.c, ipmi_malloc.c: Split off the memory
	debugging stuff into a separate file.

	* Makefile.am: Added heap.h to the file.

	* mc.c, include/OpenIPMI/ipmi_oem.h: Changed the name of the
	MC removal callback to reflect it's function better (since it's
	not BMC-related).

	* entity.c: Fixed a memory leak with presence sensors.

2003-02-19 Corey Minyard <cminyard@mvista.com>

	* mc.c, include/OpenIPMI/ipmi_conn.h: Modified the ipmi_init_con()
	call to take the slave address.
	
	* ipmi_lan.c, ipmi_smi.c: Now pass in the slave address to
	ipmi_init_con().

	* OpenIPMI.texi: Updated docs for changes.

	* ui.c: Various cleanups for the SMI address and the new SEL
	setup.
	
	* ilist.c, ilist.h: Added a way to traverse the list backwards.

	* ipmi_smi.c: Converted the BMC to use an SMI address.

	* mc.c, include/OpenIPMI/ipmi_mc.h: Added a way for the OEM code
	to add a way to fetch the SMI slave address.

	* mc.c, include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_mc.h, sel.c:
	Changed SEL support to be per-MC (as it should be) and not on the
	BMC.  This will allow support for SELs not on the MC, and for
	multiple SEL devices in a system.  It required the removal of
	ipmi_bmc_del_event_by_recid(), and a modification to the event
	structure, since the system now has to know what MC the event came
	from.

	* include/OpenIPMI/ipmi_types.h: Added an MC to the event so we
	know which MC it came from.

2003-02-18 Corey Minyard <cminyard@mvista.com>

	* ui.c: Added a way to set the event enables.

	* sdr.c: Made some of the err info logs unique.

	* mc.c, entity.c: memory leak removals
	
	* ilist.c, ilist.h, ipmi.c: Added separate allocation routines
	for the ilist code.
	
	* mc.c, include/OpenIPMI/ipmi_oem.h: Added a shutdown callback to
	the OEM registeration.

	* mc.c, include/OpenIPMI/ipmi_mc.h: Added global shutdown code for
	the mc.

	* ipmi.c, include/OpenIPMI/ipmiif.h: Added global shutdown code.
	
	* ipmi.c, include/OpenIPMI/ipmi_int.h: Added memory debugging
	code.
	
	* basic_ui.c: Converted over to the new memory debugging code.
	* control.c: ditto
	* entity.c: ditto
	* ipmi.c: ditto
	* ipmi_lan.c: ditto
	* ipmi_smi.c: ditto
	* mc.c: ditto
	* md2.c: ditto
	* md5.c: ditto
	* opq.c: ditto
	* sdr.c: ditto
	* sel.c: ditto
	* selector.c: ditto
	* sensor.c: ditto
	* ui.c: ditto
	* ui_command.c: ditto
	* ui_keypad.c: ditto
	* ui_os.c: ditto

	* selector.c, heap.h: Split out the heap code into a generic.

	* test_btree.c: Added a test for the heap code.

2003-02-13 Corey Minyard <cminyard@mvista.com>

	* configure.in: Moved to version 0.1.4.

2003-02-12 Corey Minyard <cminyard@mvista.com>

	* mc.c, sdr.c, sel.c: Changed all 1-bit integers to unsigned so
	that comparisons work properly.
	
2003-02-09 Corey Minyard <cminyard@mvista.com>

	* configure.in: Moved to version 0.1.3.

	* Makefile.am: Fixed include of "include" dir to be based on
	srcdir, removed -Werror.

	* src.c, selector.c, sel.c, ui.c: Fixed some deprecated
	operations to avoid warnings in gcc3.x.

2003-02-03 Corey Minyard <cminyard@mvista.com>

	* mc.c, include/OpenIPMI/ipmiif.h, sel.c, include/OpenIPMI/ipmi_sel.h:
	Modified the previous change to report the number of entries in
	the SEL, since the number of total entries available in the SEL
	may not be available.
	
	* mc.c, include/OpenIPMI/ipmiif.h, sel.c, include/OpenIPMI/ipmi_sel.h:
	Added a way to get the estimated number of entries left for new
	events in the SEL.

2003-01-30 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move to version 0.1.2.

	* include/OpenIPMI/ipmi_msgbits.h: Added the master read/write
	command.

2003-01-29 Corey Minyard <cminyard@mvista.com>

	* mc.c, include/OpenIPMI/ipmiif.h: Added a mechanism for changing
	the SEL rescan timers and the bus rescan timers.

2003-01-28 Corey Minyard <cminyard@mvista.com>

	* ui.c: Fixed problems with the previous va_arg problem.

2003-01-27 Corey Minyard <cminyard@mvista.com>

	* entity.c: Lots of little cleanup for parent-child relationships
	and shutdown.

	* sensor.c: Lots of little cleanups for handling new SDRs.

	* ui.c: Fixed some problems with threshold display, and added
	the current value of the threshold (out of range).
	
	* ui.c: Fixes some va_arg problems.

	* sensor.c: Fixed problems with sensor allocation.

2003-01-24 Corey Minyard <cminyard@mvista.com>

	* ui.c: Changed shutdown code to close the connection first.
	
	* mc.c: Modified the close connection code to avoid locking
	problems.

	* include/OpenIPMI/ipmiif.h: Changed the format of the close done
	callback to remove the BMC (since it will be gone).
	
	* selector.c, include/OpenIPMI/selector.h: Modified the selector
	code to be reentrant
	
	* ipmi.c, include/OpenIPMI/ipmi_int.h: Added a way to allocate a
	lock using the global IPMI selector.

	* basic_ui.c, test1.c: Changed to account for the selector
	changes.

2003-01-22 Corey Minyard <cminyard@mvista.com>

	* basic_ui.c, ui.c, include/OpenIPMI/ipmi_ui.h: Start working on a
	command-line only version of the ui.

	* ui.c: Rework to abstract the output, getting ready for doing
	command-line only.

	* mc.c, include/OpenIPMI/ipmi_mc.h: Added support for setting more
	device support bits.

	* ui.c: Added a command to dump the SDRs.
	
	* sdr.c: Reworked the fetching of SDRs to get the SDR info first,
	then to do the reservation if it is required.

	* sensor.c: Fixed the sensor calculation values to be the right
	signedness.
	
	* mc.c: Modified SEL fetch to restart the timer after the previous
	SEL fetch completes.

2003-01-21 Corey Minyard <cminyard@mvista.com>

	* configure.in: Went to version 0.1.1

2003-01-20 Corey Minyard <cminyard@mvista.com>

	* ui.c: Added a list_sel command.

	* ui.c: Modified the clear sel command to go through all the
	events and delete them, instead of clearing the SEL with a
	command.

	* sel.c: Fixed the next, previous, first, last, and get all
	operations to take into account deleted events.  Also fixed a bug
	where re-adding an event that was deleted would cause the count to
	be wrong.

2003-01-17 Corey Minyard <cminyard@mvista.com>

	* ui.c, include/OpenIPMI/ipmi_int.h: Added a debug flag to disable
	LAN connections.

2003-01-16 Corey Minyard <cminyard@mvista.com>

	* mc.c, include/OpenIPMI/ipmiif.h, include/OpenIPMI/ipmi_conn.h:
	Added a mechanism to report failures of the lower-level
	connection, and added code to ignore periodic events (bus scan,
	SEL scan) while the connection is down.
	* ipmi_lan.c: ditto
	* ipmi_smi.c: ditto
	
	* OpenIPMI.texi: Documented the changes to the SEL code.
	
	* mc.c, include/OpenIPMI/ipmi_oem.h: Added an OEM callback for MC
	removal.

	* mc.c: Added detection of when an MC goes away or changes.

	* mc.c: Cleaned up the MC cleanup code to consolidate it.

	* entity.c: Modified entity sensor/control deletion so that if all
	the entities and sensors are gone, and the entity was
	auto-created, that the entity itself would be destroyed.

	* sel.c: Reworked the event deletion code so that it works even
	without the ability to delete individual entries.  If all the
	entries in the local database are deleted, it will clear out the
	database (if the reservation hasn't been lost).

2003-01-15 Corey Minyard <cminyard@mvista.com>

	* sel.c: Fixed a locking problem with SEL operations.
	
	* mc.c, include/OpenIPMI/ipmi_mc.h: Added a hook for event
	deletion handling, so OEM code can do its own event deletion.

	* mc.c, include/OpenIPMI/ipmi_mc.h: Added handling for ignoring
	events (only sending to the unhandled interface) for events that
	were already in the SEL at startup.

2003-01-14 Corey Minyard <cminyard@mvista.com>

	* ui.c: Added a fix for handling local interface BMCs.

2003-01-13 Corey Minyard <cminyard@mvista.com>

	* configure.in: Move version to 0.1.0.

	* OpenIPMI.texi: More work on docs.
	
	* sel.c, mc.c: Minor cleanups.

	* ipmi_smi.c: Modified the timeout to be a much larger value.
	The device drivers have their own timers, we just need to make
	sure something doesn't go wrong here.

2003-01-09 Corey Minyard <cminyard@mvista.com>

	* mc.c: Added a periodic rescan of the presence sensors
	periodically (with the bus scan).
	
	* ui.c: Added rescanning of entities when displaying them.
	
	* mc.c, include/OpenIPMI/mc.h, entity.c: Added support for
	handling unhandled (not delivered to the user) events, so the user
	can delete them if they like.

	* ui.c: The info wasn't being passed into the id-to-pointer
	converted for the mccmd command.
	
	* OpenIPMI.texi: More work on docs.

	* control.c: Fixed the calculation size for the non-standard entry
	array size.

2003-01-09 Corey Minyard <cminyard@mvista.com>

	* OpenIPMI.texi: More work on docs.
	* include/OpenIPMI/ipmi_control.h: ditto
	* include/OpenIPMI/ipmi_sensor.h: ditto

	* include/OpenIPMI/ipmi_control.h, control.c: Added a missing
	ipmi_control_send_command_addr() function.

	* include/OpenIPMI/ipmi_control.h, control.c: Added a cleanup
	handler for the OEM info.
	* include/OpenIPMI/ipmi_sensor.h, sensor.c: ditto

	* entity.c, mc.c: Added an entity-specific lock, and used it where
	entities were specifically being locked.

	* ipmi_sensor.c, sensor.c: Made the sensor callbacks const.
	

2003-01-08 Corey Minyard <cminyard@mvista.com>

	* OpenIPMI.texi: More work on docs.

	* include/OpenIPMI/ipmi_int.h, mc.c, ui.c: Added an event debug
	level.
	
2003-01-07 Corey Minyard <cminyard@mvista.com>

	* OpenIPMI.texi: More work on docs.

	* Makefile.am: Turned on lock checking code generation.
	
	* include/OpenIPMI/ipmi_int.h: Cleaned up the debugging flags.

	* include/OpenIPMI/ipmi_sel.h: Changed the name "log" to "event".
	* include/OpenIPMI/ipmi_oem.h: ditto
	* include/OpenIPMI/ipmi_sensor.h: ditto
	* include/OpenIPMI/ipmi_types.h: ditto
	* include/OpenIPMI/ipmiif.h: ditto
	* entity.c: ditto
	* ipmi.c: ditto
	* mc.c: ditto
	* sel.c: ditto
	* sensor.c: ditto
	* test1.c: ditto
	* ui.c: ditto
	
	* sel.c: Cleaned up the rather broken locking.
	
	* sdr.c, include/OpenIPMI/ipmi_sdr.h: Cleaned up the names and
	cleaned up the rather broken locking.
	
	* control.c: Added IPMI logging information.
	* sdr.c: ditto
	* sel.c: ditto
	* sensor.c: ditto
	
	* configure.in: Changed to version 0.0.3.
	
	* include/OpenIPMI/log.h: Reworked log handling to add a log type.
	* include/OpenIPMI/os_handler.h: ditto
	* ipmi.c: ditto
	* ipmi_lan.c: ditto
	* ipmi_smi.c: ditto
	* mc.c: ditto
	* sel.c: ditto
	* ui.c: ditto
	* ui_os.c: ditto

	* include/OpenIPMI/log.h, include/OpenIPMI/ipmiif.h: moved log
	information from ipmiif.h to log.h.

2003-01-06 Corey Minyard <cminyard@mvista.com>

	* ui.c: Converted the bmc pointer to a bmc id.
	
	* ipmi_smi.c: Fixed a double unlock.
	
	* ipmi.c, include/OpenIPMI/ipmi_int.h, ui_os.c: Added code for
	checking for locking errors, fixed locking errors
	* control.c: ditto
	* entity.c: ditto
	* mc.c: ditto
	* sensor.c: ditto

	* include/OpenIPMI/os_handler.h: Added callbacks for telling
	if a lock is held.
	* entity.c, include/OpenIPMI/ipmiif.h, ui.c:  Added IPMI_ in front
	of some enumeration values.

2003-01-03 Corey Minyard <cminyard@mvista.com>

	* sensor.c: Modified the way the reporting of the hot-swap sensor
	is done, so it can support being a single offset in a sensor (like
	a slot sensor).
	* include/OpenIPMI/ipmi_sensor.h: ditto
	* include/OpenIPMI/ipmiif.h: ditto
	
	* ipmi_lan.c: Modified the timers to be alloc/free/start/stop, so
	they can be allocated and reused at will.
	* ipmi_smi.c: ditto
	* mc.c: ditto
	* test1.c: ditto
	* ui_os.c: ditto
	* include/OpenIPMI/os_handler.h: ditto

2002-12-18 Corey Minyard <cminyard@mvista.com>

	* Release of the 0.0.2 version
