From 4b28a392fa890390755f58e0755ab56e8edaa295 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= <debian@jff-webhosting.net>
Date: Tue, 26 Sep 2017 05:07:36 +0200
Subject: New upstream version 3.0.7

---
 ChangeLog             | 19 +++++++++++++++++--
 buildmin.cmd          | 31 +++++++++++++++++++++++++++++++
 buildwin.cmd          |  7 ++++---
 buildwin2.cmd         | 31 -------------------------------
 buildwin32.cmd        | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 buildwin64.cmd        | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 configure             | 20 ++++++++++----------
 configure.ac          |  2 +-
 debpkg/changelog      |  6 ++++++
 doc/Makefile          | 28 ++++++++++++++--------------
 doc/UserGuide         | 29 +++++++++++++++++++++--------
 doc/ipmiutil.spec     |  2 +-
 lib/Makefile          | 28 ++++++++++++++--------------
 lib/libipmiutil.pc    |  2 +-
 scripts/Makefile      | 28 ++++++++++++++--------------
 setver                |  2 +-
 util/ialarms.c        |  2 +-
 util/icmd.c           |  4 ++--
 util/iconfig.c        |  2 +-
 util/idcmi.c          |  2 +-
 util/ievents.c        |  8 +++++---
 util/ifirewall.c      |  2 +-
 util/ifru.c           |  2 +-
 util/ifruset.c        |  2 +-
 util/igetevent.c      |  2 +-
 util/ihealth.c        | 46 ++++++++++++++++++++++++----------------------
 util/ilan.c           |  2 +-
 util/ipicmg.c         |  2 +-
 util/ipmiutil.c       |  2 +-
 util/ipmiutil2-64.mak | 12 +++++++++++-
 util/ipmiutil2.mak    | 12 +++++++++++-
 util/ireset.c         |  2 +-
 util/isel.c           |  2 +-
 util/iseltime.c       |  2 +-
 util/isensor.c        |  2 +-
 util/iserial.c        |  2 +-
 util/isol.c           |  2 +-
 util/itsol.c          |  2 +-
 util/iuser.c          |  2 +-
 util/iwdt.c           |  2 +-
 util/oem_asus.c       |  2 +-
 util/oem_dell.c       |  2 +-
 util/oem_fujitsu.c    |  2 +-
 util/oem_hp.c         |  2 +-
 util/oem_intel.c      |  2 +-
 util/oem_kontron.c    |  2 +-
 util/oem_lenovo.c     |  2 +-
 util/oem_newisys.c    |  2 +-
 util/oem_quanta.c     |  2 +-
 util/oem_sun.c        |  2 +-
 util/oem_supermicro.c | 42 ++++++++++++++++++++++++++++--------------
 vcvars32.bat          | 28 ++++++++++++++++++++++++++++
 vcvars64.bat          | 28 ++++++++++++++++++++++++++++
 53 files changed, 401 insertions(+), 172 deletions(-)
 create mode 100644 buildmin.cmd
 delete mode 100644 buildwin2.cmd
 create mode 100644 buildwin32.cmd
 create mode 100644 buildwin64.cmd
 create mode 100755 vcvars32.bat
 create mode 100755 vcvars64.bat

diff --git a/ChangeLog b/ChangeLog
index 9e73aa2..44de16f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4278,7 +4278,22 @@ wdt.8          iwdt.8       (ipmiutil wdt)
 08/08/2017 ARCress ipmiutil-3.0.6  changes (iver 3.06)
   configure.ac          - AM_CONFIG_HEADER -> AC_CONFIG_HEADERS (automake 1.13)
   util/oem_supermicro.c - factory defaults detect if X11 (mode 3?),
-  						  handle inert VBAT sensor for X11DRi,
-  						  OEM C8 = AC Power On asserted
+  		                  handle inert VBAT sensor for X11DRi w units=0xC0,
+  		                  OEM C8 = AC Power On asserted
   util/isensor.c        - show unit=0xC0 sensors as NotAvailable
 
+09/18/2017 ARCress ipmiutil-3.0.7  changes (iver 3.07)
+  util/oem_supermicro.c - set typestr for some OEM events
+  util/ievents.c        - added undefined OS Boot types 7, 8 for SuperMicro
+  vcvars32.bat          - run vcvars from VCINSTALLDIR or VSINSTALLDIR
+  vcvars64.bat          - run vcvars from VCINSTALLDIR or VSINSTALLDIR
+  buildwin.cmd          - detect any 64 in LIBPATH, not just amd64
+  buildwin32.cmd        - new, only build 32bit
+  buildwin64.cmd        - new, only build 64bit
+  buildmin.cmd          - renamed from buildwin2.cmd (minimal), detect any 64
+  util/ipmiutil2.mak    - add oem_lenovo, oem_asus, iuser for minimal
+  util/ipmiutil2-64.mak - add oem_lenovo, oem_asus, iuser for minimal
+  doc/UserGuide         - document buildmin.cmd, separate section for WinPE
+  util/icmd.c           - auto-request admin priv always if remote
+  util/ihealth.c        - set do_powerstate=0 for Sun, continue if error
+
diff --git a/buildmin.cmd b/buildmin.cmd
new file mode 100644
index 0000000..bf40503
--- /dev/null
+++ b/buildmin.cmd
@@ -0,0 +1,31 @@
+@echo off
+REM # buildmin32.cmd
+REM #   build ipmiutil for windows in standalone mode (minimal, 32bit)
+REM #   without IPMI LAN 2.0 libraries, so no SOL.  Use for bootables.
+REM #
+REM # First download a copy of getopt.c getopt.h.
+REM #   copy getopt.*   util
+REM #
+
+REM TODO, prebuild checking:
+REM check for getopt.c,h
+
+set | findstr VCINSTALLDIR
+if %errorlevel% EQU 1 goto vcerror
+
+set UTMAKE=ipmiutil2.mak
+echo %LIBPATH% |findstr /C:64 >NUL
+if %errorlevel% EQU 0  set UTMAKE=ipmiutil2-64.mak
+
+cd util
+nmake /nologo -f %UTMAKE% all
+cd ..
+
+echo buildmin %UTMAKE% done
+goto done
+
+:vcerror
+echo Need to first run vcvars.bat
+
+:done
+
diff --git a/buildwin.cmd b/buildwin.cmd
index 2057935..4a6eb8d 100644
--- a/buildwin.cmd
+++ b/buildwin.cmd
@@ -22,7 +22,7 @@ REM check for ssl includes
 REM call mkssl
 
 set UTMAKE=ipmiutil.mak
-echo %LIBPATH% |findstr /C:amd64 >NUL
+echo %LIBPATH% |findstr /C:64 >NUL
 if %errorlevel% EQU 0  set UTMAKE=ipmiutil64.mak
 
 cd lib
@@ -35,11 +35,12 @@ nmake /nologo -f %UTMAKE% all
 cd ..
 REM # echo make util done
 
-echo buildwin ipmiutil done
+echo buildwin %UTMAKE% done
 goto done
 
 :vcerror
-echo First need to run vcvars.bat
+echo First need to run vcvars.bat 
+echo Check that VCINSTALLDIR and LIBPATH are correct
 
 :done
 
diff --git a/buildwin2.cmd b/buildwin2.cmd
deleted file mode 100644
index c4fff81..0000000
--- a/buildwin2.cmd
+++ /dev/null
@@ -1,31 +0,0 @@
-@echo off
-REM # buildwin2.cmd
-REM #   build ipmiutil for windows in standalone mode
-REM #   without IPMI LAN 2.0 libraries, so no SOL.  Use for bootables.
-REM #
-REM # First download a copy of getopt.c getopt.h.
-REM #   copy getopt.*   util
-REM #
-
-REM TODO, prebuild checking:
-REM check for getopt.c,h
-
-set | findstr VCINSTALLDIR
-if %errorlevel% EQU 1 goto vcerror
-
-set UTMAKE=ipmiutil2.mak
-echo %LIBPATH% |findstr /C:amd64 >NUL
-if %errorlevel% EQU 0  set UTMAKE=ipmiutil2-64.mak
-
-cd util
-nmake /nologo -f %UTMAKE% all
-cd ..
-
-echo buildwin2 ipmiutil done
-goto done
-
-:vcerror
-echo Need to first run vcvars.bat
-
-:done
-
diff --git a/buildwin32.cmd b/buildwin32.cmd
new file mode 100644
index 0000000..adc427b
--- /dev/null
+++ b/buildwin32.cmd
@@ -0,0 +1,50 @@
+@echo off
+REM # buildwin32.cmd
+REM #   build ipmiutil for windows
+REM #
+REM # First download a copy of getopt.c getopt.h.
+REM #   copy getopt.*   util
+REM # Then download and build a copy of openssl for Windows,
+REM # and copy the built openssl files needed to lib & inc.
+REM #   copy libeay32.lib ssleay32.lib  lib
+REM #   copy libeay32.dll ssleay32.dll  util
+REM #   copy include\openssl\*.h   lib\lanplus\inc\openssl
+REM #
+REM # You should either run this from the Visual Studio Command Line, 
+REM # or first run the appropriate vcvars.bat script.
+set | findstr VCINSTALLDIR
+if %errorlevel% EQU 1 goto vcerror
+
+call vcvars32.bat 
+
+REM TODO, prebuild checking:
+REM check for getopt.c,h
+REM check for ssl libs
+REM check for ssl includes
+REM call mkssl
+
+set UTMAKE=ipmiutil.mak
+echo %LIBPATH% |findstr /C:64 >NUL
+if %errorlevel% EQU 0 goto vcerror
+
+call cleanwin.cmd 
+
+cd lib
+nmake /nologo -f ipmilib.mak all
+cd ..
+REM # echo make lib done
+
+cd util
+nmake /nologo -f %UTMAKE% all
+cd ..
+REM # echo make util done
+
+echo buildwin32 ipmiutil done
+goto done
+
+:vcerror
+echo Either VCINSTALLDIR is missing or LIBPATH includes 64bit
+echo Need to run vcvars32.bat for 32bit from a fresh session
+
+:done
+
diff --git a/buildwin64.cmd b/buildwin64.cmd
new file mode 100644
index 0000000..ae61fbf
--- /dev/null
+++ b/buildwin64.cmd
@@ -0,0 +1,50 @@
+@echo off
+REM # buildwin.cmd
+REM #   build ipmiutil for windows
+REM #
+REM # First download a copy of getopt.c getopt.h.
+REM #   copy getopt.*   util
+REM # Then download and build a copy of openssl for Windows,
+REM # and copy the built openssl files needed to lib & inc.
+REM #   copy libeay32.lib ssleay32.lib  lib
+REM #   copy libeay32.dll ssleay32.dll  util
+REM #   copy include\openssl\*.h   lib\lanplus\inc\openssl
+REM #
+REM # You should either run this from the Visual Studio Command Line, 
+REM # or first run the appropriate vcvars.bat script.
+set | findstr VCINSTALLDIR
+if %errorlevel% EQU 1 goto vcerror
+
+call vcvars64.bat 
+
+REM TODO, prebuild checking:
+REM check for getopt.c,h
+REM check for ssl libs
+REM check for ssl includes
+REM call mkssl
+
+set UTMAKE=ipmiutil64.mak
+echo %LIBPATH% |findstr /C:64 >NUL
+if %errorlevel% EQU 1 goto vcerror
+
+call cleanwin.cmd 
+
+cd lib
+nmake /nologo -f ipmilib.mak all
+cd ..
+REM # echo make lib done
+
+cd util
+nmake /nologo -f %UTMAKE% all
+cd ..
+REM # echo make util done
+
+echo buildwin64 ipmiutil done
+goto done
+
+:vcerror
+echo Either VCINSTALLDIR is missing or LIBPATH does not include 64bit
+echo Need to run vcvars64.bat for 64bit from a fresh session
+
+:done
+
diff --git a/configure b/configure
index d5dd5e0..f2a9eca 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for ipmiutil 3.0.6.
+# Generated by GNU Autoconf 2.63 for ipmiutil 3.0.7.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -743,8 +743,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='ipmiutil'
 PACKAGE_TARNAME='ipmiutil'
-PACKAGE_VERSION='3.0.6'
-PACKAGE_STRING='ipmiutil 3.0.6'
+PACKAGE_VERSION='3.0.7'
+PACKAGE_STRING='ipmiutil 3.0.7'
 PACKAGE_BUGREPORT=''
 
 ac_unique_file="util/ipmiutil.c"
@@ -1503,7 +1503,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ipmiutil 3.0.6 to adapt to many kinds of systems.
+\`configure' configures ipmiutil 3.0.7 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1573,7 +1573,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ipmiutil 3.0.6:";;
+     short | recursive ) echo "Configuration of ipmiutil 3.0.7:";;
    esac
   cat <<\_ACEOF
 
@@ -1683,7 +1683,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ipmiutil configure 3.0.6
+ipmiutil configure 3.0.7
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1697,7 +1697,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ipmiutil $as_me 3.0.6, which was
+It was created by ipmiutil $as_me 3.0.7, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2551,7 +2551,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='ipmiutil'
- VERSION='3.0.6'
+ VERSION='3.0.7'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13943,7 +13943,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ipmiutil $as_me 3.0.6, which was
+This file was extended by ipmiutil $as_me 3.0.7, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14006,7 +14006,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-ipmiutil config.status 3.0.6
+ipmiutil config.status 3.0.7
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/configure.ac b/configure.ac
index 9433f9f..edbf6f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(ipmiutil,3.0.6)
+AC_INIT(ipmiutil,3.0.7)
 AC_CONFIG_SRCDIR(util/ipmiutil.c)
 echo "ipmiutil version ${PACKAGE_VERSION}"
 AC_CONFIG_HEADERS(config.h)
diff --git a/debpkg/changelog b/debpkg/changelog
index 19e239c..728dcf0 100644
--- a/debpkg/changelog
+++ b/debpkg/changelog
@@ -1,3 +1,9 @@
+ipmiutil (3.0.7-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Andy Cress <arcress@users.sourceforge.net>  Wed, 20 Sep 2017 10:37:47 -0400
+
 ipmiutil (3.0.6-1) unstable; urgency=low
 
   * New upstream version.
diff --git a/doc/Makefile b/doc/Makefile
index 3358a36..381c0dc 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -46,12 +46,12 @@ CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run aclocal-1.11
-AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run tar
+ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run aclocal-1.11
+AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run tar
 AR = ar
-AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run autoconf
-AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run autoheader
-AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run automake-1.11
+AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoconf
+AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoheader
+AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run automake-1.11
 AWK = gawk
 CC = gcc
 CCDEPMODE = depmode=gcc3
@@ -99,7 +99,7 @@ LIB_DIR = /usr/lib64
 LIPO = 
 LN_S = ln -s
 LTLIBOBJS = 
-MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run makeinfo
+MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run makeinfo
 MKDIR_P = /bin/mkdir -p
 NM = /usr/bin/nm -B
 NMEDIT = 
@@ -113,9 +113,9 @@ OTOOL64 =
 PACKAGE = ipmiutil
 PACKAGE_BUGREPORT = 
 PACKAGE_NAME = ipmiutil
-PACKAGE_STRING = ipmiutil 3.0.6
+PACKAGE_STRING = ipmiutil 3.0.7
 PACKAGE_TARNAME = ipmiutil
-PACKAGE_VERSION = 3.0.6
+PACKAGE_VERSION = 3.0.7
 PATH_SEPARATOR = :
 PKG_DIR = /root/rpmbuild
 RANLIB = ranlib
@@ -127,11 +127,11 @@ SHR_LINK = libipmiutil.so.1
 STRIP = strip
 SUBDIR_S = doc scripts lib util
 SYSTEMD_DIR = /usr/share/ipmiutil
-VERSION = 3.0.6
-abs_builddir = /usr/dev/ipmiutil-3.0.6/doc
-abs_srcdir = /usr/dev/ipmiutil-3.0.6/doc
-abs_top_builddir = /usr/dev/ipmiutil-3.0.6
-abs_top_srcdir = /usr/dev/ipmiutil-3.0.6
+VERSION = 3.0.7
+abs_builddir = /usr/dev/ipmiutil-3.0.7/doc
+abs_srcdir = /usr/dev/ipmiutil-3.0.7/doc
+abs_top_builddir = /usr/dev/ipmiutil-3.0.7
+abs_top_srcdir = /usr/dev/ipmiutil-3.0.7
 ac_ct_CC = gcc
 ac_ct_DUMPBIN = 
 am__include = include
@@ -159,7 +159,7 @@ host_vendor = redhat
 htmldir = ${docdir}
 includedir = ${prefix}/include
 infodir = ${datarootdir}/info
-install_sh = ${SHELL} /usr/dev/ipmiutil-3.0.6/install-sh
+install_sh = ${SHELL} /usr/dev/ipmiutil-3.0.7/install-sh
 libdir = ${exec_prefix}/lib
 libexecdir = ${exec_prefix}/libexec
 localedir = ${datarootdir}/locale
diff --git a/doc/UserGuide b/doc/UserGuide
index fb4ce49..e5681f1 100644
--- a/doc/UserGuide
+++ b/doc/UserGuide
@@ -1,6 +1,6 @@
 
                   IPMIUTIL USER GUIDE 
-                     VERSION 3.0.6
+                     VERSION 3.0.7
          An easy-to-use IPMI server management utility
 
 
@@ -5496,14 +5496,27 @@ or
 C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat
 
 
-5.2.7  Run buildwin.cmd
-buildwin.cmd will build all of the Windows EXE and DLL files.
+5.2.7  For Windows builds, run buildwin.cmd
 
-If you are using ipmiutil for a bootable WinPE environment, and do not need
-Serial-Over-LAN functionality, the buildwin2.cmd will build the Windows EXE 
-files without using the openssl libraries, to simplify the process.  The 
-openssl libraries are required for the IPMI LAN 2.0 crypto functions that
-Serial-Over-LAN requires.  
+buildwin.cmd will build all of the Windows EXE and DLL files. It will detect 
+whether the vcvars has been run with 32bit or 64bit.
+
+buildwin32.cmd will build only the 32-bit Windows EXE and DLL files. 
+
+buildwin64.cmd will build only the 64-bit Windows EXE and DLL files. 
+
+5.2.8  For WinPE builds, run buildmin.cmd
+
+If you are using ipmiutil for a bootable WinPE environment, you will not need
+Serial-Over-LAN functionality, the buildmin.cmd will build the Windows ipmiutil
+EXE files without using the openssl libraries, to simplify the process.  
+The openssl libraries are required for the IPMI LANplus 2.0 crypto functions 
+that Serial-Over-LAN uses.  
+
+buildmin.cmd will build the ipmiutil.exe in a minimal standalone configuration.
+
+For WinPE 64-bit, if you do want openssl for some reason, see 
+http://www.indyproject.org/Sockets/fpc/OpenSSLforWin64.en.aspx
 
 ----------------------------------
 5.3  WINDOWS COMMAND USAGE
diff --git a/doc/ipmiutil.spec b/doc/ipmiutil.spec
index 1aa796a..c6c39c2 100644
--- a/doc/ipmiutil.spec
+++ b/doc/ipmiutil.spec
@@ -3,7 +3,7 @@
 # Copyright (c) 2012 Andy Cress
 #
 Name:      ipmiutil
-Version: 3.0.6
+Version: 3.0.7
 Release: 1%{?dist}
 Summary:   Easy-to-use IPMI server management utilities
 License:   BSD
diff --git a/lib/Makefile b/lib/Makefile
index 45d1c98..93b57de 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -47,12 +47,12 @@ CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run aclocal-1.11
-AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run tar
+ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run aclocal-1.11
+AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run tar
 AR = ar
-AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run autoconf
-AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run autoheader
-AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run automake-1.11
+AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoconf
+AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoheader
+AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run automake-1.11
 AWK = gawk
 CC = gcc
 CCDEPMODE = depmode=gcc3
@@ -101,7 +101,7 @@ LIB_DIR = /usr/lib64
 LIPO = 
 LN_S = ln -s
 LTLIBOBJS = 
-MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run makeinfo
+MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run makeinfo
 MKDIR_P = /bin/mkdir -p
 NM = /usr/bin/nm -B
 NMEDIT = 
@@ -115,9 +115,9 @@ OTOOL64 =
 PACKAGE = ipmiutil
 PACKAGE_BUGREPORT = 
 PACKAGE_NAME = ipmiutil
-PACKAGE_STRING = ipmiutil 3.0.6
+PACKAGE_STRING = ipmiutil 3.0.7
 PACKAGE_TARNAME = ipmiutil
-PACKAGE_VERSION = 3.0.6
+PACKAGE_VERSION = 3.0.7
 PATH_SEPARATOR = :
 PKG_DIR = /root/rpmbuild
 RANLIB = ranlib
@@ -129,11 +129,11 @@ SHR_LINK = libipmiutil.so.1
 STRIP = strip
 SUBDIR_S = doc scripts lib util
 SYSTEMD_DIR = /usr/share/ipmiutil
-VERSION = 3.0.6
-abs_builddir = /usr/dev/ipmiutil-3.0.6/lib
-abs_srcdir = /usr/dev/ipmiutil-3.0.6/lib
-abs_top_builddir = /usr/dev/ipmiutil-3.0.6
-abs_top_srcdir = /usr/dev/ipmiutil-3.0.6
+VERSION = 3.0.7
+abs_builddir = /usr/dev/ipmiutil-3.0.7/lib
+abs_srcdir = /usr/dev/ipmiutil-3.0.7/lib
+abs_top_builddir = /usr/dev/ipmiutil-3.0.7
+abs_top_srcdir = /usr/dev/ipmiutil-3.0.7
 ac_ct_CC = gcc
 ac_ct_DUMPBIN = 
 am__include = include
@@ -161,7 +161,7 @@ host_vendor = redhat
 htmldir = ${docdir}
 includedir = ${prefix}/include
 infodir = ${datarootdir}/info
-install_sh = ${SHELL} /usr/dev/ipmiutil-3.0.6/install-sh
+install_sh = ${SHELL} /usr/dev/ipmiutil-3.0.7/install-sh
 libdir = $(iprefix)/lib
 libexecdir = ${exec_prefix}/libexec
 localedir = ${datarootdir}/locale
diff --git a/lib/libipmiutil.pc b/lib/libipmiutil.pc
index eded658..53f78b8 100644
--- a/lib/libipmiutil.pc
+++ b/lib/libipmiutil.pc
@@ -8,6 +8,6 @@ nutuser=@RUN_AS_USER@
 
 Name: libipmiutil
 Description: Library for ipmiutil
-Version: 3.0.6
+Version: 3.0.7
 Libs: -L${libdir} -lipmi_lanplus
 Cflags: -I${includedir}
diff --git a/scripts/Makefile b/scripts/Makefile
index 32bdba0..f0a4171 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -46,12 +46,12 @@ CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run aclocal-1.11
-AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run tar
+ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run aclocal-1.11
+AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run tar
 AR = ar
-AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run autoconf
-AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run autoheader
-AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run automake-1.11
+AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoconf
+AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoheader
+AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run automake-1.11
 AWK = gawk
 CC = gcc
 CCDEPMODE = depmode=gcc3
@@ -99,7 +99,7 @@ LIB_DIR = /usr/lib64
 LIPO = 
 LN_S = ln -s
 LTLIBOBJS = 
-MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.0.6/missing --run makeinfo
+MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run makeinfo
 MKDIR_P = /bin/mkdir -p
 NM = /usr/bin/nm -B
 NMEDIT = 
@@ -113,9 +113,9 @@ OTOOL64 =
 PACKAGE = ipmiutil
 PACKAGE_BUGREPORT = 
 PACKAGE_NAME = ipmiutil
-PACKAGE_STRING = ipmiutil 3.0.6
+PACKAGE_STRING = ipmiutil 3.0.7
 PACKAGE_TARNAME = ipmiutil
-PACKAGE_VERSION = 3.0.6
+PACKAGE_VERSION = 3.0.7
 PATH_SEPARATOR = :
 PKG_DIR = /root/rpmbuild
 RANLIB = ranlib
@@ -127,11 +127,11 @@ SHR_LINK = libipmiutil.so.1
 STRIP = strip
 SUBDIR_S = doc scripts lib util
 SYSTEMD_DIR = /usr/share/ipmiutil
-VERSION = 3.0.6
-abs_builddir = /usr/dev/ipmiutil-3.0.6/scripts
-abs_srcdir = /usr/dev/ipmiutil-3.0.6/scripts
-abs_top_builddir = /usr/dev/ipmiutil-3.0.6
-abs_top_srcdir = /usr/dev/ipmiutil-3.0.6
+VERSION = 3.0.7
+abs_builddir = /usr/dev/ipmiutil-3.0.7/scripts
+abs_srcdir = /usr/dev/ipmiutil-3.0.7/scripts
+abs_top_builddir = /usr/dev/ipmiutil-3.0.7
+abs_top_srcdir = /usr/dev/ipmiutil-3.0.7
 ac_ct_CC = gcc
 ac_ct_DUMPBIN = 
 am__include = include
@@ -159,7 +159,7 @@ host_vendor = redhat
 htmldir = ${docdir}
 includedir = ${prefix}/include
 infodir = ${datarootdir}/info
-install_sh = ${SHELL} /usr/dev/ipmiutil-3.0.6/install-sh
+install_sh = ${SHELL} /usr/dev/ipmiutil-3.0.7/install-sh
 libdir = ${exec_prefix}/lib
 libexecdir = ${exec_prefix}/libexec
 localedir = ${datarootdir}/locale
diff --git a/setver b/setver
index 13325cd..656235d 100755
--- a/setver
+++ b/setver
@@ -6,7 +6,7 @@
 #    [doinc?] is 'n'.
 #    if [doinc?] is 'r', reverse increment (decrement).
 #
-ver=3.0.6
+ver=3.0.7
 rel=1
 tmped=/tmp/edver.tmp
 tmpspec=/tmp/edspec.tmp
diff --git a/util/ialarms.c b/util/ialarms.c
index 782667f..836ec8c 100644
--- a/util/ialarms.c
+++ b/util/ialarms.c
@@ -75,7 +75,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 /*
  * Global variables 
  */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "ialarms";
 static char   fdebug    = 0;
 static char   fbmctam   = 0;
diff --git a/util/icmd.c b/util/icmd.c
index d90bb02..789c69d 100644
--- a/util/icmd.c
+++ b/util/icmd.c
@@ -78,7 +78,7 @@ extern void ipmi_lan_set_timeout(int ipmito, int tries, int pingto);
 /*
  * Global variables 
  */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "icmd";
 static char   fdebug    = 0;
 static char   fquiet    = 0;
@@ -297,7 +297,7 @@ main(int argc, char **argv)
 
    if (is_remote() && fprivset == 0) { /*IPMI LAN, privilege not set by user*/
        /* commands to other MCs require admin privilege */
-       if ((g_sa != BMC_SA) || (cmdbuf[1] != BMC_SA))
+       // if ((g_sa != BMC_SA) || (cmdbuf[1] != BMC_SA))
 	   parse_lan_options('V',"4",0);
    }
 
diff --git a/util/iconfig.c b/util/iconfig.c
index 195d6cb..db70075 100644
--- a/util/iconfig.c
+++ b/util/iconfig.c
@@ -172,7 +172,7 @@ typedef struct
 /*
  * Global variables 
  */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "iconfig";
 static char   fdebug    = 0;
 static char   fipmilan  = 0;
diff --git a/util/idcmi.c b/util/idcmi.c
index 63c5268..8bf2000 100644
--- a/util/idcmi.c
+++ b/util/idcmi.c
@@ -62,7 +62,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "idcmi.h"
 
 static char * progname  = "idcmi";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 extern char   fdebug;  /*from ipmicmd.c*/
 static uchar  g_bus  = PUBLIC_BUS;
 static uchar  g_sa   = BMC_SA;
diff --git a/util/ievents.c b/util/ievents.c
index 67e6b70..d07a35f 100644
--- a/util/ievents.c
+++ b/util/ievents.c
@@ -76,7 +76,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #define  SELprintf  printf  
 #define  SMS_SA   0x41
 #define  SMI_SA   0x21
-static char *progver   = "3.06";
+static char *progver   = "3.07";
 static char *progname  = "ievents";
 static char fsensdesc = 0;   /* 1= get extended sensor descriptions*/
 static char fcanonical = 0;  /* 1= show canonical, delimited output*/
@@ -290,7 +290,7 @@ char * boot_init_str[NBOOTI] = {  /* System Boot Initiated */
  /*06*/ "SW Warm Reset",  
  /*07*/ "RestartCause" };
 
-#define NOSBOOT  8
+#define NOSBOOT  10
 char * osboot_str[NOSBOOT] = {  /* OS Boot */
  /*00*/ "A: boot completed",  
  /*01*/ "C: boot completed",  
@@ -298,7 +298,9 @@ char * osboot_str[NOSBOOT] = {  /* OS Boot */
  /*03*/ "Diag boot completed",  
  /*04*/ "CDROM boot completed",  
  /*05*/ "ROM boot completed",  
- /*06*/ "Other boot completed" };
+ /*06*/ "Other boot completed",
+ /*07*/ "USB7 boot completed",
+ /*08*/ "USB8 boot completed" };
 
 #define NSLOTC  9
 char * slot_str[NSLOTC] = {  /* Slot/Connector descriptions */
diff --git a/util/ifirewall.c b/util/ifirewall.c
index cdf8531..3f81b3b 100644
--- a/util/ifirewall.c
+++ b/util/ifirewall.c
@@ -64,7 +64,7 @@
 
 /* global variables */
 static char * progname  = "ifirewall";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char   fdebug    = 0;
 static uchar  g_bus  = PUBLIC_BUS;
 static uchar  g_sa   = BMC_SA;
diff --git a/util/ifru.c b/util/ifru.c
index 08389be..9775d7d 100644
--- a/util/ifru.c
+++ b/util/ifru.c
@@ -116,7 +116,7 @@ extern int ipmi_kontronoem_main(void * intf, int  argc, char ** argv);
 #endif
 
 static char *progname  = "ifru";
-static char *progver   = "3.06";
+static char *progver   = "3.07";
 static int  vend_id = 0; 
 static int  prod_id = 0; 
 static char fdebug = 0;
diff --git a/util/ifruset.c b/util/ifruset.c
index 8f94345..8b77489 100644
--- a/util/ifruset.c
+++ b/util/ifruset.c
@@ -106,7 +106,7 @@ extern void fmt_time(time_t etime, char *buf, int bufsz); /*see ievents.c*/
 #define IPROD_OEM    7
 
 static char *progname  = "ifruset";
-static char *progver   = "3.06";
+static char *progver   = "3.07";
 static char fdebug = 0;
 static char fpicmg = 0;
 static char fonlybase = 0;
diff --git a/util/igetevent.c b/util/igetevent.c
index bbcbd40..61abc96 100644
--- a/util/igetevent.c
+++ b/util/igetevent.c
@@ -169,7 +169,7 @@ extern void free_sdr_cache(uchar *pret); /*see isensor.c*/
  * Global variables 
  */
 static char * progname  = "igetevent";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char   fdebug    = 0;
 static char   fipmilan  = 0;
 static char   frunonce  = 0;
diff --git a/util/ihealth.c b/util/ihealth.c
index fcef947..087fcdf 100644
--- a/util/ihealth.c
+++ b/util/ihealth.c
@@ -12,6 +12,7 @@
  * 10/20/06 Andy Cress 1.1 - added -g for guid
  * 01/10/07 Andy Cress 1.4 - added product strings
  * 02/25/07 Andy Cress 2.8 - added more Chassis Status decoding
+ * 09/18/17 Andy Cress 3.07 - Set do_powerstate=0 for Sun, continue if failure
  */
 /*M*
 Copyright (c) 2006, Intel Corporation
@@ -82,7 +83,7 @@ extern int oem_supermicro_get_firmware_str(char *pstr, int sz); /*oem_supermicro
  * Global variables 
  */
 static char * progname  = "ihealth";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char   fdebug    = 0;
 static char   fipmilan  = 0;
 static char   fcanonical = 0;
@@ -616,12 +617,13 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec)
 	/* The product ids below only apply to BMCs */
 	switch(mfg) {
          case VENDOR_NSC:      /*=0x000322*/
-	     fmBMC = 1;
+             fmBMC = 1;
              if (dtype == BMC) tag="mBMC";
              if (prod == 0x4311) prodstr = "(TIGPT1U)"; /*Intel*/
              break;
          case VENDOR_SUN:      /*=0x00002a*/
-	     if (prod == 0x4701) prodstr = "(X4140)"; 
+             if (prod == 0x4701) prodstr = "(X4140)"; 
+             do_powerstate = 0;
              break;
          case VENDOR_TYAN:      /*=0x0019fd*/
              switch(prod) {     /* show product names for some */
@@ -634,12 +636,12 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec)
              }
              break;
          case VENDOR_FUJITSU:      /*=0x002880*/
-	     if (prod >= 0x200) prodstr = "(iRMC S2)"; 
-	     else prodstr = "";
+             if (prod >= 0x200) prodstr = "(iRMC S2)"; 
+             else prodstr = "";
              break;
          case VENDOR_CISCO:      /*=0x00168b, 5771.*/
-	     if (prod == 0x0005) prodstr = "(UCS C200)"; 
-	     else prodstr = "";
+             if (prod == 0x0005) prodstr = "(UCS C200)"; 
+             else prodstr = "";
              if (fipmilan) lan_ch_restrict = 1; /*fw bug, gets 0xC1 on ipmilan*/
              break;
          case 0x003C0A:        /*=15370, Giga-Byte*/
@@ -647,9 +649,9 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec)
              lan_ch_restrict = 1; /*fw bug, gets 0xC1*/
              break;
          case VENDOR_INTEL:     /*=0x000157*/
-	     if (do_hsc && (dtype == BMC)) /*if HSC option, also show extra*/
+	         if (do_hsc && (dtype == BMC)) /*if HSC option, also show extra*/
 	         sprintf(extraver," (Boot %x.%x PIA %x.%x)", /*BMC extra*/
-			  devrec[11],devrec[12],devrec[13],devrec[14]);
+			     devrec[11],devrec[12],devrec[13],devrec[14]);
              switch(prod) {     /* show product names for some */
                  case 0x000C:   prodstr = "(TSRLT2)";    /*SCB2*/
                                 bChan = 7;  break;
@@ -662,24 +664,24 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec)
                  case 0x002B:   prodstr = "(S5000VSA)"; break; 
                  case 0x002D:   prodstr = "(MFSYS25)"; break; /*ClearBay*/
                  case 0x003E:   prodstr = "(S5520UR)";   /*CG2100 or NSN2U*/
-				do_me = 1; kcs_loops = URNLOOPS;
+                                do_me = 1; kcs_loops = URNLOOPS;
                                 bChan = 1;  break;
                  case 0x0040:   prodstr = "(QSSC-S4R)";  /*Stoutland*/
-				do_me = 1; kcs_loops = URNLOOPS;
+                                do_me = 1; kcs_loops = URNLOOPS;
                                 bChan = 1;  break;
                  case 0x0100:   prodstr = "(Tiger4)"; break;
                  case 0x0103:   prodstr = "(McCarran)";  /*BladeCenter*/
-			do_powerstate = 0;   break; 
+                                do_powerstate = 0;   break; 
                  case 0x0800:   prodstr = "(ZT5504)";    /*ZiaTech*/
-			do_powerstate = 0;   break; 
+                                do_powerstate = 0;   break; 
                  case 0x0808:   prodstr = "(MPCBL0001)";   /*ATCA Blade*/
-			do_powerstate = 0;   break; 
+                                do_powerstate = 0;   break; 
                  case 0x0841:   prodstr = "(MPCMM0001)";   /*ATCA CMM*/
-			do_powerstate = 0;   break; 
+                                do_powerstate = 0;   break; 
                  case 0x0811:   prodstr = "(TIGW1U)";  break; /*S5000PHB*/
                  case 0x4311:   prodstr = "(NSI2U)";     /*SE7520JR23*/
-				if (dtype == BMC) tag="mBMC";
-				fmBMC = 1; break;
+                                if (dtype == BMC) tag="mBMC";
+                                fmBMC = 1; break;
                  default:       prodstr = ""; break;
              }
              if (is_romley(mfg,prod)) {
@@ -1025,12 +1027,12 @@ main(int argc, char **argv)
    {  /* Some BMCs dont support get_power_state*/
      ret = get_power_state(selfbuf,4);
      if (ret != 0) {
-	printf("ipmi_getpowerstate error, ret = %d\n",ret);
-	goto health_end;
+        printf("ipmi_getpowerstate error, ret = %d\n",ret);
+        pwr_state = 0;
      } else {
         pwr_state = selfbuf[0] & 0x7f;
-	printf("Power State       %c %02x       (%s)\n",
-		bdelim,pwr_state,pwr_string(pwr_state));
+        printf("Power State       %c %02x       (%s)\n",
+        	bdelim,pwr_state,pwr_string(pwr_state));
      }
    }
 
@@ -1040,7 +1042,7 @@ main(int argc, char **argv)
 	goto health_end;
    } else {
         selfstatus = selfbuf[0] + (selfbuf[1] << 8);
-	s = decode_selftest(selfstatus);
+        s = decode_selftest(selfstatus);
         if (fmBMC) {
            sprintf(selfstr,"%s",s);
 	} else {
diff --git a/util/ilan.c b/util/ilan.c
index 1638381..e54233f 100644
--- a/util/ilan.c
+++ b/util/ilan.c
@@ -306,7 +306,7 @@ extern char *get_sensor_type_desc (uchar stype);	/*from ievents.c */
  * Global variables 
  */
 static char * progname  = "ilan";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char fdebug = 0;
 static char fipmilan = 0;
 static char fIPMI10 = 0;	/* =1 if IPMI v1.0 or less */
diff --git a/util/ipicmg.c b/util/ipicmg.c
index 46cdac7..af10750 100644
--- a/util/ipicmg.c
+++ b/util/ipicmg.c
@@ -81,7 +81,7 @@
 
 /* Global data */
 static char * progname  = "ipicmg";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char   fdebug    = 0;
 static char   fset_mc   = 0;
 static uint8_t g_bus  = PUBLIC_BUS;
diff --git a/util/ipmiutil.c b/util/ipmiutil.c
index b924449..9e5bc1f 100644
--- a/util/ipmiutil.c
+++ b/util/ipmiutil.c
@@ -57,7 +57,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "ipmiutil.h"
 
 static char *progname  = "ipmiutil";
-static char *progver   = "3.06";
+static char *progver   = "3.07";
 // static char fdebug = 0;
 /*int ipmiutil(int argc, char **argv); */
 
diff --git a/util/ipmiutil2-64.mak b/util/ipmiutil2-64.mak
index 6289e06..32124fa 100644
--- a/util/ipmiutil2-64.mak
+++ b/util/ipmiutil2-64.mak
@@ -87,7 +87,8 @@ E_OBJ=$(TMP_D)\ipmiutil.obj \
       $(TMP_D)\ipicmg.obj   $(TMP_D)\ifirewall.obj \
       $(TMP_D)\iekanalyzer.obj   $(TMP_D)\ifru_picmg.obj \
       $(TMP_D)\oem_kontron.obj   $(TMP_D)\ihpm.obj $(TMP_D)\ifwum.obj \
-      $(TMP_D)\oem_fujitsu.obj   $(TMP_D)\oem_intel.obj   \
+      $(TMP_D)\oem_fujitsu.obj $(TMP_D)\oem_intel.obj $(TMP_D)\oem_lenovo.obj \
+      $(TMP_D)\oem_asus.obj $(TMP_D)\iuser.obj  \
       $(TMP_D)\oem_sun.obj       $(TMP_D)\oem_dell.obj $(TMP_D)\oem_hp.obj \
       $(TMP_D)\oem_supermicro.obj   $(TMP_D)\itsol.obj $(TMP_D)\idcmi.obj \
       $(TMP_D)\oem_quanta.obj  $(TMP_D)\oem_newisys.obj  $(CMD_OBJ) mem_if.obj
@@ -311,6 +312,9 @@ $(TMP_D)\ihpm.obj:    ihpm.c
 $(TMP_D)\idcmi.obj:    idcmi.c
     $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\idcmi.obj idcmi.c
 
+$(TMP_D)\iuser.obj:    iuser.c
+    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\iuser.obj iuser.c
+
 $(TMP_D)\oem_fujitsu.obj:    oem_fujitsu.c
     $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_fujitsu.obj oem_fujitsu.c
 
@@ -332,6 +336,12 @@ $(TMP_D)\oem_hp.obj:    oem_hp.c
 $(TMP_D)\oem_supermicro.obj:    oem_supermicro.c
     $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_supermicro.obj oem_supermicro.c
 
+$(TMP_D)\oem_lenovo.obj:    oem_lenovo.c
+    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_lenovo.obj oem_lenovo.c
+
+$(TMP_D)\oem_asus.obj:    oem_asus.c
+    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_asus.obj oem_asus.c
+
 $(TMP_D)\oem_quanta.obj:    oem_quanta.c
     $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_quanta.obj oem_quanta.c
 
diff --git a/util/ipmiutil2.mak b/util/ipmiutil2.mak
index 8d41f50..f176720 100644
--- a/util/ipmiutil2.mak
+++ b/util/ipmiutil2.mak
@@ -87,7 +87,8 @@ E_OBJ=$(TMP_D)\ipmiutil.obj \
       $(TMP_D)\ipicmg.obj   $(TMP_D)\ifirewall.obj \
       $(TMP_D)\iekanalyzer.obj   $(TMP_D)\ifru_picmg.obj \
       $(TMP_D)\oem_kontron.obj   $(TMP_D)\ihpm.obj $(TMP_D)\ifwum.obj \
-      $(TMP_D)\oem_fujitsu.obj   $(TMP_D)\oem_intel.obj   \
+      $(TMP_D)\oem_fujitsu.obj $(TMP_D)\oem_intel.obj $(TMP_D)\oem_lenovo.obj \
+      $(TMP_D)\oem_asus.obj $(TMP_D)\iuser.obj  \
       $(TMP_D)\oem_sun.obj       $(TMP_D)\oem_dell.obj $(TMP_D)\oem_hp.obj \
       $(TMP_D)\oem_supermicro.obj   $(TMP_D)\itsol.obj $(TMP_D)\idcmi.obj \
       $(TMP_D)\oem_quanta.obj  $(TMP_D)\oem_newisys.obj  $(CMD_OBJ) mem_if.obj
@@ -312,6 +313,9 @@ $(TMP_D)\ihpm.obj:    ihpm.c
 $(TMP_D)\idcmi.obj:    idcmi.c
     $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\idcmi.obj idcmi.c
 
+$(TMP_D)\iuser.obj:    iuser.c
+    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\iuser.obj iuser.c
+
 $(TMP_D)\oem_fujitsu.obj:    oem_fujitsu.c
     $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_fujitsu.obj oem_fujitsu.c
 
@@ -333,6 +337,12 @@ $(TMP_D)\oem_hp.obj:    oem_hp.c
 $(TMP_D)\oem_supermicro.obj:    oem_supermicro.c
     $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_supermicro.obj oem_supermicro.c
 
+$(TMP_D)\oem_lenovo.obj:    oem_lenovo.c
+    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_lenovo.obj oem_lenovo.c
+
+$(TMP_D)\oem_asus.obj:    oem_asus.c
+    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_asus.obj oem_asus.c
+
 $(TMP_D)\oem_quanta.obj:    oem_quanta.c
     $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_quanta.obj oem_quanta.c
 
diff --git a/util/ireset.c b/util/ireset.c
index e2c1930..36134bc 100644
--- a/util/ireset.c
+++ b/util/ireset.c
@@ -108,7 +108,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 /*
  * Global variables 
  */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "ireset";
 static uchar  ipmi_maj;
 static uchar  ipmi_min;
diff --git a/util/isel.c b/util/isel.c
index 8b35d11..925a689 100644
--- a/util/isel.c
+++ b/util/isel.c
@@ -162,7 +162,7 @@ typedef struct
 #define RDATA_OFFSET    13    //byte offset to the record event data  
 
 static char *progname  = "isel";
-static char *progver   = "3.06";
+static char *progver   = "3.07";
 #ifdef WIN32
 #define IDXFILE   "sel.idx"
 static char idxfile[80] = IDXFILE;
diff --git a/util/iseltime.c b/util/iseltime.c
index eb3ce8b..0900c31 100644
--- a/util/iseltime.c
+++ b/util/iseltime.c
@@ -78,7 +78,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 /*
  * Global variables 
  */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "iseltime";
 static char   fdebug    = 0;
 static char   fset      = 0;
diff --git a/util/isensor.c b/util/isensor.c
index a204990..7418ae9 100644
--- a/util/isensor.c
+++ b/util/isensor.c
@@ -255,7 +255,7 @@ char *decode_entity_id(int id) {
  *  Global Data
  ************************/
 static char *progname  = "isensor";
-static char *progver   = "3.06";
+static char *progver   = "3.07";
 #ifdef WIN32
 static char savefile[] = "%ipmiutildir%\\thresholds.cmd";
 #else
diff --git a/util/iserial.c b/util/iserial.c
index 42ada0a..f8377c7 100644
--- a/util/iserial.c
+++ b/util/iserial.c
@@ -155,7 +155,7 @@ typedef struct
 /*
  * Global variables 
  */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "iserial";
 static int    vend_id = 0;
 static int    prod_id = 0;
diff --git a/util/isol.c b/util/isol.c
index 1fd3eb0..1713ede 100644
--- a/util/isol.c
+++ b/util/isol.c
@@ -165,7 +165,7 @@ void dbglog( char *pattn, ... ); /*local prototype*/
 /*
  * Global variables 
  */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "isol";
 static char  fdebug        = 0;
 static char  fpicmg        = 0;
diff --git a/util/itsol.c b/util/itsol.c
index fe6a78d..57bb1eb 100644
--- a/util/itsol.c
+++ b/util/itsol.c
@@ -98,7 +98,7 @@ int   gettimeofday(struct timeval *tv, struct timezone *tz);
 extern int verbose;
 extern char   fdebug;  /*from ipmicmd.c*/
 static char * progname  = "itsol";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static uchar  g_bus  = PUBLIC_BUS;
 static uchar  g_sa   = BMC_SA;
 static uchar  g_lun  = BMC_LUN;
diff --git a/util/iuser.c b/util/iuser.c
index 0bf29b7..fa8297c 100644
--- a/util/iuser.c
+++ b/util/iuser.c
@@ -57,7 +57,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 /* global variables */
 static char * progname  = "iuser";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char   fdebug    = 0;
 static char   fcanonical = 0;
 static char   bdelim = '|';
diff --git a/util/iwdt.c b/util/iwdt.c
index 898fbf3..d8c3c84 100644
--- a/util/iwdt.c
+++ b/util/iwdt.c
@@ -100,7 +100,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 /*
  * Global variables 
  */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "iwdt";
 static char   fdebug    = 0;
 static char   fdontlog  = 0;
diff --git a/util/oem_asus.c b/util/oem_asus.c
index 38cf89d..d5861d4 100644
--- a/util/oem_asus.c
+++ b/util/oem_asus.c
@@ -61,7 +61,7 @@ extern char fdebug;  /*ipmicmd.c*/
 void set_loglevel(int level);  /*prototype */
 
 static char * progname  = "iasusoem";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static int verbose = 0;
 static uchar  g_bus  = PUBLIC_BUS;
 static uchar  g_sa   = BMC_SA;
diff --git a/util/oem_dell.c b/util/oem_dell.c
index b226a95..dcfe52a 100644
--- a/util/oem_dell.c
+++ b/util/oem_dell.c
@@ -132,7 +132,7 @@ char NIC_Selection_Mode_String_12g[] [50] =	{
 						"shared with failover all loms"
 						};
 
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "idelloem";
 static int verbose = 0;
 static char fdebug = 0;
diff --git a/util/oem_fujitsu.c b/util/oem_fujitsu.c
index 13f6ee6..9f11b19 100644
--- a/util/oem_fujitsu.c
+++ b/util/oem_fujitsu.c
@@ -52,7 +52,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 /* extern void get_mfgid(int *vend, int *prod);  * from ipmicmd.h*/
 /* extern int get_lan_options();  * from ipmicmd.h */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "ifujitsuoem";
 static char fdebug = 0;
 static char freadok = 1;
diff --git a/util/oem_hp.c b/util/oem_hp.c
index afb0762..862456a 100644
--- a/util/oem_hp.c
+++ b/util/oem_hp.c
@@ -44,7 +44,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "ievents.h"
 #include "isensor.h"
 
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "ihpoem";
 
 static char *redund_str(uchar b)
diff --git a/util/oem_intel.c b/util/oem_intel.c
index 1575983..b8d9454 100644
--- a/util/oem_intel.c
+++ b/util/oem_intel.c
@@ -83,7 +83,7 @@ extern char  fdebug;   /*ipmicmd.c*/
 /*
  * Global variables 
  */
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "iinteloem";
 static char  fRelayBits = 0;
 static uchar g_bus = PUBLIC_BUS;
diff --git a/util/oem_kontron.c b/util/oem_kontron.c
index 23ece0e..6a3964f 100644
--- a/util/oem_kontron.c
+++ b/util/oem_kontron.c
@@ -73,7 +73,7 @@ typedef uint32_t   socklen_t;
 #define FRU_TYPE_COMPONENT  0x01
 #define FRU_TYPE_BASEBOARD  0x07
 
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "ikontronoem";
 const struct valstr ktc5520_post[] = {  /*from EAS*/
  { 0x0003, "Start POST Init" },
diff --git a/util/oem_lenovo.c b/util/oem_lenovo.c
index 2ce67d6..f37388f 100644
--- a/util/oem_lenovo.c
+++ b/util/oem_lenovo.c
@@ -61,7 +61,7 @@ extern uchar bitnum(ushort value);  /*isensor.c*/
 extern char fdebug;  /*ipmicmd.c*/
 void set_loglevel(int level);  /*prototype */
 
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "ilenovooem";
 static int verbose = 0;
 static uchar  g_bus  = PUBLIC_BUS;
diff --git a/util/oem_newisys.c b/util/oem_newisys.c
index f44b82d..9ae794b 100644
--- a/util/oem_newisys.c
+++ b/util/oem_newisys.c
@@ -43,7 +43,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "ipmicmd.h"
 #include "ievents.h"
 
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "inewisysoem";
 static char  fdebug = 0;
 static uchar g_bus = PUBLIC_BUS;
diff --git a/util/oem_quanta.c b/util/oem_quanta.c
index c808c2a..ab9b105 100644
--- a/util/oem_quanta.c
+++ b/util/oem_quanta.c
@@ -45,7 +45,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 extern int decode_sensor_intel_nm(uchar *sdr,uchar *reading,
 				  char *pstring,int slen);  /*oem_intel.c*/
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "iquantaoem";
 static char fdbg = 0;
 
diff --git a/util/oem_sun.c b/util/oem_sun.c
index e225a77..9ccc905 100644
--- a/util/oem_sun.c
+++ b/util/oem_sun.c
@@ -109,7 +109,7 @@ static const struct valstr sunoem_led_mode_optvals[] = {
 
 /* global variables */
 static char * progname  = "isunoem";
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char   fdebug    = 0;
 static uchar  g_bus  = PUBLIC_BUS;
 static uchar  g_sa   = BMC_SA;
diff --git a/util/oem_supermicro.c b/util/oem_supermicro.c
index 94024b2..1924345 100644
--- a/util/oem_supermicro.c
+++ b/util/oem_supermicro.c
@@ -68,7 +68,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 void set_loglevel(int level);  /*prototype */
 extern char fsm_debug;  /*mem_if.c*/
 
-static char * progver   = "3.06";
+static char * progver   = "3.07";
 static char * progname  = "ismcoem";
 static int verbose = 0;
 static char fdebug = 0;
@@ -604,12 +604,14 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,
    uchar rectype;
    ulong timestamp;
    char mybuf[64]; 
+   char mytype[64]; 
    char *type_str = "";
    char *pstr = NULL;
-   int sevid;
+   int sevid, d1;
    ushort genid;
    uchar snum;
    uchar data1, data2, data3;
+   char *psens = NULL;
          
    fdebug = fdbg;
    sevid = SEV_INFO;
@@ -627,17 +629,22 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,
      switch(evt[10]) {  /*sensor type*/
      case 0xC0:      /* CPU Temp Sensor */
 	   type_str = "OEM_CpuTemp";
-	   switch((evt[13] & 0x0f)) {  /*offset/data1 l.o. nibble*/
+	   d1 = (evt[13] & 0x0f);  /*offset/data1 l.o. nibble*/
+	   switch(d1) {  
            case 0x02:   /* CPU Temp Sensor Overheat event offset */
 		if (evt[12] & 0x80) {  /*EvTyp==0xF0 if deassert*/
 		   pstr = "CpuTemp Overheat OK"; sevid = SEV_INFO; 
 		} else {  /* EvTyp=0x70 assert */
 		   pstr = "CpuTemp Overheat   "; sevid = SEV_MAJ; 
 		}
-		rv = 0;
 		break;
-	   default: pstr = "CpuTemp Event"; rv = 0; break;
+	   default: pstr = "CpuTemp Event";
+		sprintf(mytype,"CpuTemp_%02x", d1);
+		type_str = mytype;
+		sevid = SEV_MIN; 
+		break;
 	   }
+	   rv = 0; 
 	   break;
      case 0xC2:      /* CPLD Event */
 	   type_str = "OEM_CPLD";
@@ -646,10 +653,10 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,
 		if (evt[14] == 0x1c) 
 		     { pstr = "CPLD CATERR Asserted"; sevid = SEV_CRIT; }
 		else { pstr = "CPLD Event Asserted";  sevid = SEV_MIN;  }
-		rv = 0;
 		break;
-	   default: pstr = "CPLD Event"; rv = 0; break;
+	   default: pstr = "CPLD Event"; sevid = SEV_MIN; break;
 	   }
+	   rv = 0;
 	   break;
      case 0xD0:      /* BMC Event */
 	   type_str = "OEM_BMC";
@@ -666,13 +673,15 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,
 	   break;
      case 0xC5:      /* Observed Event: Storage, drive slot */
 	   /* usually OEM(c5) #52 - 6f [01 00 00]  */
-	   pstr = "OEMC5: Storage/DriveSlot fault";
+	   type_str = "OEM_C5";
+	   pstr = "Storage/DriveSlot fault";
 	   sevid = SEV_MAJ; 
 	   rv = 0;
 	   break;
      case 0xC8:      /* Observed Event: AC Power on event */
 	   /* usually OEM(c8) #ff - 6f [a0 ff ff] */
-	   pstr = "OEMC8: AC Power On";
+	   type_str = "OEM_C8";
+	   pstr = "AC Power On";
 	   sevid = SEV_MAJ; 
 	   rv = 0;
 	   break;
@@ -682,11 +691,16 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,
    }
    if (rv == 0) {
 	 format_event(id,timestamp, sevid, genid, type_str,
-			snum,NULL,pstr,mybuf,outbuf,outsz);
+			snum,psens,pstr,mybuf,outbuf,outsz);
    }
    return(rv);
 }
 
+/* factory_defaults: set SMC factory defaults 
+ * mode: 0 = detect, default is c0 41 method
+ *       2 = use c0 41 method, also get guid
+ *       3 = use f0 40 method (usu X11)
+ */
 static int factory_defaults(int mode)
 {
    int rv = -1;
@@ -705,10 +719,10 @@ static int factory_defaults(int mode)
    start_kcs_transaction - c0 41    (reset_factory_defaults, -fde)
   */
    if ((prod_id > 2200) && (prod_id < 2300) && (mode == 0)) {
-      /* use netfn 3c, cmd 40 for X11?  */
-      /* similar to ipmitool raw 0x3c 0x40 */
-	  if (fdebug) printf("may also need ipmiutil cmd 00 20 f0 40\n");
-      // mode = 3;
+      /* Looks like X11 board, may use netfn 3c, cmd 40 ? */
+      /* do not auto-set this if mode param is not 3 */
+      // mode = 3; /* cmd=0x40 netfn=0x3c (netfn/lun=0xF0) */
+      if (fdebug) printf("may also need ipmiutil cmd 00 20 f0 40\n");
    }
 
    /* b0 00 00: cmd=00 netfn=2C */
diff --git a/vcvars32.bat b/vcvars32.bat
new file mode 100755
index 0000000..3a2b316
--- /dev/null
+++ b/vcvars32.bat
@@ -0,0 +1,28 @@
+@echo off
+REM Copy saved 32bit libraries into place, if present
+REM iphlpapi.lib libeay32.dll libeay32.lib ssleay32.dll ssleay32.lib
+REM Modify SAVLIB32 to a directory where these libs are saved.
+set SAVLIB32=lib\x32
+IF NOT EXIST %SAVLIB32% GOTO NOSAVLIB
+copy /Y %SAVLIB32%\*.lib lib
+copy /Y %SAVLIB32%\*.dll util
+REM (do not copy mak) copy /Y util\x32\ipmiutil.mak util
+:NOSAVLIB
+REM sample VCINSTALLDIR from VS 2008
+set VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC
+IF DEFINED VCINSTALLDIR GOTO HAVEVC
+IF DEFINED VSINSTALLDIR GOTO HAVEVS
+GOTO HAVEDEF
+:HAVEVS
+set VCDIR=%VSINSTALLDIR%\VC
+:HAVEVC
+set VCDIR=%VCINSTALLDIR%
+:HAVEDEF
+REM Run MS 32bit vcvars
+set VCBAT="%VCDIR%\bin\vcvars32.bat"
+IF EXIST %VCBAT% GOTO RUNVC
+echo "Cannot locate vcvars32.bat, please run it manually."
+GOTO DONE
+:RUNVC
+%VCBAT%
+:DONE
diff --git a/vcvars64.bat b/vcvars64.bat
new file mode 100755
index 0000000..1e5f125
--- /dev/null
+++ b/vcvars64.bat
@@ -0,0 +1,28 @@
+@echo off
+REM Copy saved 64bit libraries into place, if present
+REM iphlpapi.lib libeay32.dll libeay32.lib ssleay32.dll ssleay32.lib
+REM Modify SAVLIB64 to a directory where these libs are saved.
+set SAVLIB64=lib\x64
+IF NOT EXIST %SAVLIB64% GOTO NOSAVLIB
+copy /Y %SAVLIB64%\*.lib lib
+copy /Y %SAVLIB64%\*.dll util
+REM (do not copy mak) copy /Y util\x64\ipmiutil.mak util
+:NOSAVLIB
+REM sample VCINSTALLDIR from VS 2008
+set VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC
+IF DEFINED VCINSTALLDIR GOTO HAVEVC
+IF DEFINED VSINSTALLDIR GOTO HAVEVS
+GOTO HAVEDEF
+:HAVEVS
+set VCDIR=%VSINSTALLDIR%\VC
+:HAVEVC
+set VCDIR=%VCINSTALLDIR%
+:HAVEDEF
+REM Run MS 64bit vcvars
+set VCBAT="%VCDIR%\bin\x86_amd64\vcvarsx86_amd64.bat"
+IF EXIST %VCBAT% GOTO RUNVC
+echo "Cannot locate vcvars for amd64, please run it manually."
+GOTO DONE
+:RUNVC
+%VCBAT%
+:DONE
-- 
cgit v1.2.3