0c025a
From dfca464e5fe4c9107f08bff7e6e2730a504945b7 Mon Sep 17 00:00:00 2001
0c025a
From: Boris Ranto <branto@redhat.com>
0c025a
Date: Thu, 2 Jun 2016 12:47:22 +0200
0c025a
Subject: [PATCH] Apply './OpenIPMI-2.0.19-man.patch'
0c025a
0c025a
Signed-off-by: Boris Ranto <branto@redhat.com>
0c025a
---
0c025a
 lanserv/ipmilan.8       | 13 ++++++++++---
0c025a
 man/ipmi_cmdlang.7      | 36 ++++++++++++++++++------------------
0c025a
 man/ipmi_ui.1           | 10 +++++-----
0c025a
 man/openipmi_conparms.7 |  4 ++--
0c025a
 man/openipmicmd.1       |  6 +++---
0c025a
 man/openipmigui.1       | 12 ++++++------
0c025a
 man/openipmish.1        | 12 +++++++++++-
0c025a
 man/rmcp_ping.1         |  2 +-
0c025a
 man/solterm.1           |  6 +++---
0c025a
 sample/ipmicmd.c        |  1 +
0c025a
 sample/rmcp_ping.c      |  5 +++++
0c025a
 sample/solterm.c        |  7 ++++++-
0c025a
 ui/basic_ui.c           | 25 +++++++++++++++++++++++++
0c025a
 13 files changed, 96 insertions(+), 43 deletions(-)
0c025a
0c025a
diff --git a/lanserv/ipmilan.8 b/lanserv/ipmilan.8
0c025a
index ff43d5c..9360507 100644
0c025a
--- a/lanserv/ipmilan.8
0c025a
+++ b/lanserv/ipmilan.8
0c025a
@@ -29,18 +29,25 @@ address they came in.
0c025a
 
0c025a
 .SH OPTIONS
0c025a
 .TP
0c025a
-.BI \-c\  config-file
0c025a
+\fB\-c\fR file,\ \fB\-\-config\-file\fR file
0c025a
 Set the configuration file to one other than the default of
0c025a
 .I "/etc/ipmi_lan.conf"
0c025a
 .TP
0c025a
-.B \-n
0c025a
+\fB\-i\fR device,\ \fB\-\-ipmi-dev\fR device
0c025a
+Sets the desired device
0c025a
+.TP
0c025a
+\fB\-n\fR,\ \fB\-\-daemonize\fR
0c025a
 Stops  the  daemon  from  forking  and  detaching  from the controlling
0c025a
 terminal. This is useful for running from init.
0c025a
 .TP
0c025a
-.B \-d
0c025a
+\fB\-d\fR,\ \fB\-\-debug\fR
0c025a
 Turns on debugging to standard output.  You generally have to use
0c025a
 .B \-n
0c025a
 with this.
0c025a
+.TP
0c025a
+\fB\-?\fR,\ \fB\-\-help\fR,\ \fB\-\-usage\fR
0c025a
+Prints brief usage hints message.
0c025a
+
0c025a
 
0c025a
 
0c025a
 .SH CONFIGURATION
0c025a
diff --git a/man/ipmi_cmdlang.7 b/man/ipmi_cmdlang.7
0c025a
index 4d18e76..a6d73b9 100644
0c025a
--- a/man/ipmi_cmdlang.7
0c025a
+++ b/man/ipmi_cmdlang.7
0c025a
@@ -246,7 +246,7 @@ instance, the command to create a domain is
0c025a
 The command to list all sensors in a domain named domain1 is
0c025a
 .B sensor list domain1.
0c025a
 
0c025a
-Each command has a reponse for each object operated on, which is
0c025a
+Each command has a response for each object operated on, which is
0c025a
 listed after the command description.  In those responses, anything
0c025a
 that begins with a
0c025a
 .B %
0c025a
@@ -316,7 +316,7 @@ BMC.  For that, notice that the LAN connection has an options extra IP
0c025a
 and port for the second IP address.  OpenIPMI supports these IP
0c025a
 addresses and connection, detecting failures, switching between
0c025a
 addresses, and other fault-tolerant things.  It does this
0c025a
-transparently to the user.  Mutiple connections may require special
0c025a
+transparently to the user.  Multiple connections may require special
0c025a
 OEM support, read the documentation about your specific system if you
0c025a
 need this.
0c025a
 
0c025a
@@ -336,7 +336,7 @@ or
0c025a
 \fI<name>\fP and \fI<password>\fP are the user name and password of
0c025a
 the IPMI user to use for the connection.
0c025a
 The <smi num> is the driver number, generally 0.
0c025a
-Options enable and disable various automitic processing and are:
0c025a
+Options enable and disable various automatic processing and are:
0c025a
 .PD 0
0c025a
 .HP
0c025a
 .B -[no]all
0c025a
@@ -356,7 +356,7 @@ is false by default.
0c025a
 is false by default.
0c025a
 .HP
0c025a
 .B -[no]ipmbscan
0c025a
-- IPMB bus scanning.  This turns on scanning IPMB busses when they are found.
0c025a
+- IPMB bus scanning.  This turns on scanning IPMB buses when they are found.
0c025a
 This is false by default.
0c025a
 .HP
0c025a
 .B -[no]oeminit
0c025a
@@ -461,7 +461,7 @@ available hacks are:
0c025a
 The -M option sets the maximum outstanding messages.  The default is
0c025a
 2, ranges 1-63.
0c025a
 
0c025a
-Options enable and disable various automitic processing and are:
0c025a
+Options enable and disable various automatic processing and are:
0c025a
 .PD 0
0c025a
 .HP
0c025a
 .B -[no]all
0c025a
@@ -519,7 +519,7 @@ Domain Created: <domain>
0c025a
 .RE
0c025a
 
0c025a
 .B fru <domain> <is_logical> <device_address> <device_id> <lun> <private_bus> <channel>
0c025a
-- dump a fru given all it's insundry information.
0c025a
+- dump a fru given all it's sundry information.
0c025a
 .TP
0c025a
 Response:
0c025a
 .RS
0c025a
@@ -533,7 +533,7 @@ Domain
0c025a
 
0c025a
 .B msg <domain> <channel> <ipmb> <LUN> <NetFN> <Cmd> [data...]
0c025a
 - Send a command to the given IPMB address on the given channel and
0c025a
-display the response.  Note that this does not require the existance
0c025a
+display the response.  Note that this does not require the existence
0c025a
 of an MC in OpenIPMI.
0c025a
 .TP
0c025a
 Response:
0c025a
@@ -571,7 +571,7 @@ SEL Rescan done: <domain>
0c025a
 .RE
0c025a
 
0c025a
 .B presence <domain>
0c025a
-- Audit the presence of all enities in the domain.  Note that this just
0c025a
+- Audit the presence of all entities in the domain.  Note that this just
0c025a
 starts the process; it will run in the background.
0c025a
 .TP
0c025a
 Response is:
0c025a
@@ -689,7 +689,7 @@ FRU deleted: <fru>
0c025a
 - Set the value of a FRU element.  The
0c025a
 name is the record name, or multi-record.  The number is required
0c025a
 for fields that need it (custom and multi-record).  The value is
0c025a
-an a single value for integers.  For strings it is a string
0c025a
+a single value for integers.  For strings it is a string
0c025a
 type (either binary, ascii, or unicode) and the info.  Binary and
0c025a
 unicode data is specified as numbers.  ascii data is specified in
0c025a
 a string.  Note that setting a ascii value with no string will
0c025a
@@ -770,7 +770,7 @@ Domain
0c025a
 .B info <entity>
0c025a
 - Dump information about an entity.
0c025a
 .TP
0c025a
-Reponse:
0c025a
+Response:
0c025a
 .RS
0c025a
 .nf
0c025a
 Entity
0c025a
@@ -784,7 +784,7 @@ Entity
0c025a
 .B fru <entity>
0c025a
 - Dump the FRU information about the given entity.
0c025a
 .TP
0c025a
-Reponse:
0c025a
+Response:
0c025a
 .RS
0c025a
 .nf
0c025a
 Entity
0c025a
@@ -813,7 +813,7 @@ Entity
0c025a
 .B set_act_time <entity>
0c025a
 - Set the hot-swap auto-activate time.
0c025a
 .TP
0c025a
-Reponse:
0c025a
+Response:
0c025a
 .RS
0c025a
 .nf
0c025a
 Set act time: <entity>
0c025a
@@ -981,7 +981,7 @@ Response:
0c025a
 .nf
0c025a
 Sensor
0c025a
   Name: <sensor>
0c025a
-  Positivie Hysteresis: <integer>
0c025a
+  Positive Hysteresis: <integer>
0c025a
   Negative Hysteresis: <integer>
0c025a
 .fi
0c025a
 .RE
0c025a
@@ -1101,7 +1101,7 @@ Set done: <control>
0c025a
 .RE
0c025a
 
0c025a
 .B get <control>
0c025a
-- Get the value of a control.  The reponse depends
0c025a
+- Get the value of a control.  The response depends
0c025a
 on the control type.
0c025a
 .TP
0c025a
 Response:
0c025a
@@ -1128,7 +1128,7 @@ multiple lights.  The options values (marked with
0c025a
 ) will not be
0c025a
 present if local control is set to true.  Local control means that
0c025a
 the LED takes whatever default function it does on the device
0c025a
-(like disk activity, ethernet activity, hot-swap LED, etc.).
0c025a
+(like disk activity, Ethernet activity, hot-swap LED, etc.).
0c025a
 Response for id control:
0c025a
 .RS
0c025a
 .nf
0c025a
@@ -1325,7 +1325,7 @@ Channel Access
0c025a
 - Set information about the MC's channel access.  There are two different
0c025a
 places where this is stored, the present in-use values (volatile) and the
0c025a
 non-volatile storage that is loaded at startup.  Note if you specify
0c025a
-channel 0xe, the modified channel will be the current channel.  Parms
0c025a
+channel 0xe, the modified channel will be the current channel.  Parameters
0c025a
 are:
0c025a
 .RS
0c025a
 .nf
0c025a
@@ -1547,7 +1547,7 @@ PET destroyed: <pet>
0c025a
 .SS pef
0c025a
 commands dealing with platform even filters.  These are basically
0c025a
 connections to the PEF configuration parameters in an MC.  You use a
0c025a
-pef to fetch a pef config, which you can then modify and write back to
0c025a
+pef to fetch a pef configuration, which you can then modify and write back to
0c025a
 the MC.  Note that when you get a pef config, you claim a lock on the
0c025a
 MC that must be unlocked.
0c025a
 
0c025a
@@ -1780,7 +1780,7 @@ operational and finished all it SDR, FRU, and bus scans:
0c025a
 .fi
0c025a
 .RE
0c025a
 
0c025a
-The following comes out when domain connection infomration changes:
0c025a
+The following comes out when domain connection information changes:
0c025a
 .RS
0c025a
 .nf
0c025a
   EVENT
0c025a
diff --git a/man/ipmi_ui.1 b/man/ipmi_ui.1
0c025a
index 9c5d9b6..011255f 100644
0c025a
--- a/man/ipmi_ui.1
0c025a
+++ b/man/ipmi_ui.1
0c025a
@@ -4,7 +4,7 @@
0c025a
 ipmi_ui \- Crude interface to an IPMI system
0c025a
 
0c025a
 .SH SYNOPSIS
0c025a
-.B ipmiui
0c025a
+.B ipmi_ui
0c025a
 .RB [\| \-dmsg \|]
0c025a
 .RB [\| \-dmem \|]
0c025a
 .RB [\| \-c \|]
0c025a
@@ -34,7 +34,7 @@ Normally,
0c025a
 starts up in a full-screen format.  The left window shows the output
0c025a
 of commands, the right window shows the logs from OpenIPMI.  Both
0c025a
 windows are scrollable with page up and page down keys, press the "\fBF1\fP"
0c025a
-key to choose the the left window to scroll, the "\fBF2\fP" key to choose
0c025a
+key to choose the left window to scroll, the "\fBF2\fP" key to choose
0c025a
 the right window to scroll.
0c025a
 
0c025a
 Note that you must set your environment \fBTERM\fP variable properly for
0c025a
@@ -48,7 +48,7 @@ the connections are to the same IPMI domain through different
0c025a
 management controllers.  Also, each LAN connection may have two IP
0c025a
 addresses.  These are two different addresses to the same management
0c025a
 controller.  So you may have a total of 4 IP addresses to an IPMI
0c025a
-domain, two management controllers and two IP adresses to each
0c025a
+domain, two management controllers and two IP addresses to each
0c025a
 management controller.
0c025a
 
0c025a
 .SH OPTIONS
0c025a
@@ -174,12 +174,12 @@ turns events on or off from the sensor (\fB0\fP or \fB1\fP).
0c025a
 turns scanning on or off for the sensor (\fB0\fP or \fB1\fP).
0c025a
 .I "assertion-bitmask"
0c025a
 specifies the bitmask of thresholds or states
0c025a
-that should be enabled or disabled when a thrshold or state is
0c025a
+that should be enabled or disabled when a threshold or state is
0c025a
 asserted.  It is a bunch of 0's and 1's, where the first one is for
0c025a
 threshold/state 0, the second for threshold/state 1, etc.
0c025a
 .I "deassertion-bitmask"
0c025a
 specifies the bitmask of thresholds or states
0c025a
-that should be enabled or disabled when a thrshold or state is
0c025a
+that should be enabled or disabled when a threshold or state is
0c025a
 deasserted.
0c025a
 
0c025a
 .SH CONTROLS
0c025a
diff --git a/man/openipmi_conparms.7 b/man/openipmi_conparms.7
0c025a
index 587da2a..9dc6404 100644
0c025a
--- a/man/openipmi_conparms.7
0c025a
+++ b/man/openipmi_conparms.7
0c025a
@@ -1,7 +1,7 @@
0c025a
 .TH openipmi_conparms 7 05/13/03 OpenIPMI "Connection Parameters for OpenIPMI"
0c025a
 
0c025a
 .SH NAME
0c025a
-openipmi_cmdparms \- Connection parmeters for OpenIPMI
0c025a
+openipmi_cmdparms \- Connection parameters for OpenIPMI
0c025a
 
0c025a
 .SH SYNOPSIS
0c025a
 
0c025a
@@ -97,7 +97,7 @@ use.
0c025a
 .TP
0c025a
 .BI \-Rc\  confidentiality\ algorithm
0c025a
 The \fIRMCP+ confidentiality (encryption) algorithm\fP to use.  This keeps
0c025a
-evesdroppers from seeing the data.  Valid values are: \fBbmcpick\fP,
0c025a
+eavesdroppers from seeing the data.  Valid values are: \fBbmcpick\fP,
0c025a
 \fBaes_cbc_128\fP, \fBxrc4_128\fP, and \fBxrc_40\fP.  The \fBbmcpick\fP option is used by
0c025a
 default, which means the BMC picks the algorithm it wants to use.
0c025a
 
0c025a
diff --git a/man/openipmicmd.1 b/man/openipmicmd.1
0c025a
index 6bd2401..5d206d1 100644
0c025a
--- a/man/openipmicmd.1
0c025a
+++ b/man/openipmicmd.1
0c025a
@@ -22,7 +22,7 @@ interfaces.
0c025a
 Execute a single command an exit.
0c025a
 
0c025a
 .TP
0c025a
-.BI <connection parms>
0c025a
+.BI <connection\ parms>
0c025a
 The parameters for the connection depend on the connection type.
0c025a
 These are all described in openipmi_conparms (7)
0c025a
 
0c025a
@@ -32,7 +32,7 @@ Once up, you can execute commands in the user interface.  Note that
0c025a
 commands and responses are asynchronous, you issue a command and the
0c025a
 interface returns immediately.  When the response comes back, it will
0c025a
 be dumped on your console.  That's a little strange looking, but IPMI
0c025a
-is ansychronous underneath.  Note that the \fB\-k\fP option is synchronous,
0c025a
+is asynchronous underneath.  Note that the \fB\-k\fP option is synchronous,
0c025a
 it will wait for the response or a timeout before returning.
0c025a
 
0c025a
 .TP
0c025a
@@ -82,7 +82,7 @@ Remove a command registration.
0c025a
 .BR openipmi_conparms (7)
0c025a
 
0c025a
 .SH "KNOWN PROBLEMS"
0c025a
-The asychronous nature of the program can be annoying.
0c025a
+The asynchronous nature of the program can be annoying.
0c025a
 
0c025a
 .SH AUTHOR
0c025a
 .PP
0c025a
diff --git a/man/openipmigui.1 b/man/openipmigui.1
0c025a
index 04f880b..0c8c10f 100644
0c025a
--- a/man/openipmigui.1
0c025a
+++ b/man/openipmigui.1
0c025a
@@ -38,7 +38,7 @@ Turn on message debugging, this will dump all messages to debug log output.
0c025a
 .TP
0c025a
 .B \-\-drawmsg
0c025a
 Turn on raw message debugging, this will dump all low-level messages to
0c025a
-debug log output.  This differes from normal message debugging in that all
0c025a
+debug log output.  This differs from normal message debugging in that all
0c025a
 protocol messages are also dumped, not just IPMI messages.
0c025a
 .TP
0c025a
 .B \-\-dmem
0c025a
@@ -81,7 +81,7 @@ tree.
0c025a
 
0c025a
 The tree window has a top-level list of all the domains for which
0c025a
 OpenIPMI has connections (or pending connection).  Each domain
0c025a
-exapands into domain-specific information and a list of entities and
0c025a
+expands into domain-specific information and a list of entities and
0c025a
 Management Controllers (MCs) for that domain.
0c025a
 
0c025a
 Right click drives most of the operations in the tree window.  Many
0c025a
@@ -92,7 +92,7 @@ Color is used in the GUI to denote error status, and shading is used
0c025a
 to denote availability.  If a sensor has an error, the tree entry for
0c025a
 that sensor will change colors.  Black means no error, yellow means
0c025a
 warning, red means critical, and blue means non-recoverable.  These
0c025a
-errors propigate up, so the entity containing that sensor will be the
0c025a
+errors propagate up, so the entity containing that sensor will be the
0c025a
 same color as the most critical error for the sensors underneath it.
0c025a
 The same goes for domain, it will be the same color as the most
0c025a
 critical error for the entities underneath it.  This way, if you watch
0c025a
@@ -146,7 +146,7 @@ that sensor.
0c025a
 
0c025a
 .SH CONTROLS
0c025a
 
0c025a
-Controls are available under the entity they belong to.  control
0c025a
+Controls are available under the entity they belong to.  Control
0c025a
 information is beyond the scope of this document, as IPMI controls are
0c025a
 very complex.  See the IPMI document from OpenIPMI for information
0c025a
 about controls.
0c025a
@@ -214,7 +214,7 @@ channel listing.  Note that some user setting (the name and password)
0c025a
 are global to all channels on the MC.
0c025a
 
0c025a
 Due to the IPMI spec and some unfortunate implementation bugs, some
0c025a
-wierd issues exist with this information.  The user has an Enabled
0c025a
+weird issues exist with this information.  The user has an Enabled
0c025a
 value that tells whether the user is enabled or not.  When initially
0c025a
 displayed, this field shows as a "?" because this field is not
0c025a
 readable. It will displayed as the actual value when it is modified,
0c025a
@@ -247,7 +247,7 @@ changed.
0c025a
 .SH SOLPARMS
0c025a
 
0c025a
 In the channel display on a 8023_LAN channel, a LANPARM configuration
0c025a
-command is available if the MC supporte SOL (Serial Over LAN).  This
0c025a
+command is available if the MC supports SOL (Serial Over LAN).  This
0c025a
 pulls up all the parameters for the LAN and allows them to be set.
0c025a
 Right-clicking on an item allows it to be changed.
0c025a
 
0c025a
diff --git a/man/openipmish.1 b/man/openipmish.1
0c025a
index 36b1e43..2c902e4 100644
0c025a
--- a/man/openipmish.1
0c025a
+++ b/man/openipmish.1
0c025a
@@ -26,7 +26,7 @@ Turn on message debugging, this will dump all messages to debug log output.
0c025a
 .TP
0c025a
 .B \-\-drawmsg
0c025a
 Turn on raw message debugging, this will dump all low-level messages to
0c025a
-debug log output.  This differes from normal message debugging in that all
0c025a
+debug log output.  This differs from normal message debugging in that all
0c025a
 protocol messages are also dumped, not just IPMI messages.
0c025a
 .TP
0c025a
 .B \-\-dmem
0c025a
@@ -34,11 +34,21 @@ Turn on memory debugging, this will cause memory allocation and
0c025a
 deallocations to be checked.  When the program terminates, it will
0c025a
 dump all memory that was not properly freed (leaked).
0c025a
 .TP
0c025a
+.B \-\-dmsgerr
0c025a
+Turn on printing out low-level message errors.
0c025a
+.TP
0c025a
 .B \-\-dlock
0c025a
 Turn on lock debugging, this will check lock operations to make sure
0c025a
 that locks are help in all the proper places and make sure that locks
0c025a
 are properly nested.
0c025a
 .TP
0c025a
+\fB-x\fR\ <string>,\ \fB\-\-execute\fR\ <string>
0c025a
+Execute the given string at startup.  This may be entered multiple times
0c025a
+for multiple commands.
0c025a
+.TP
0c025a
+.B \-\-glib
0c025a
+Use glib for the OS handler.
0c025a
+.TP
0c025a
 .B \-\-snmp
0c025a
 Enable the SNMP trap handler.
0c025a
 .B openipmish
0c025a
diff --git a/man/rmcp_ping.1 b/man/rmcp_ping.1
0c025a
index d60019a..ce5cab0 100644
0c025a
--- a/man/rmcp_ping.1
0c025a
+++ b/man/rmcp_ping.1
0c025a
@@ -38,7 +38,7 @@ starttag.  This is zero by default
0c025a
 Turns on debugging to standard output.
0c025a
 .TP
0c025a
 .I destination
0c025a
-The target address, default is the boradcast address (default 255.255.255.255)
0c025a
+The target address, default is the broadcast address (default 255.255.255.255)
0c025a
 
0c025a
 .SH AUTHOR
0c025a
 .PP
0c025a
diff --git a/man/solterm.1 b/man/solterm.1
0c025a
index 1479a1b..ada15d8 100644
0c025a
--- a/man/solterm.1
0c025a
+++ b/man/solterm.1
0c025a
@@ -37,9 +37,9 @@ These are all described in openipmi_conparms (7)
0c025a
 .TP
0c025a
 .BI \-e\  escape_char
0c025a
 The character to use to escape, or exit, the program.  Entering this
0c025a
-chatacter right after a newline is entered causes the program to go
0c025a
+character right after a newline is entered causes the program to go
0c025a
 into command mode.  A single character after this performs a command.
0c025a
-The default escape character is "~" as shown below.  Suppported
0c025a
+The default escape character is "~" as shown below.  Supported
0c025a
 commands are:
0c025a
 .RS
0c025a
 .IP ~.
0c025a
@@ -98,7 +98,7 @@ the SoL session. This is the default.
0c025a
 .TP
0c025a
 .BI \-holdoff
0c025a
 Specifies that CTS, DTR, and DSR are to be deasserted at the start of
0c025a
-the SoL session so that the configuration may be modifeid before the
0c025a
+the SoL session so that the configuration may be modified before the
0c025a
 handshake is released.
0c025a
 
0c025a
 .TP
0c025a
diff --git a/sample/ipmicmd.c b/sample/ipmicmd.c
0c025a
index 6cbcdc5..5f5c1ec 100644
0c025a
--- a/sample/ipmicmd.c
0c025a
+++ b/sample/ipmicmd.c
0c025a
@@ -124,6 +124,7 @@ void usage(void)
0c025a
     printf("%s [-k <command>] [-v] <con_parms>\n", progname);
0c025a
     printf("Where <con_parms> is one of:");
0c025a
     ipmi_parse_args_iter_help(con_usage, NULL);
0c025a
+    printf("\n");
0c025a
 }
0c025a
 
0c025a
 char *
0c025a
diff --git a/sample/rmcp_ping.c b/sample/rmcp_ping.c
0c025a
index 7814792..5778fea 100644
0c025a
--- a/sample/rmcp_ping.c
0c025a
+++ b/sample/rmcp_ping.c
0c025a
@@ -156,6 +156,11 @@ main(int argc, char *argv[])
0c025a
 	if (strcmp(argv[i], "--") == 0) {
0c025a
 	    i++;
0c025a
 	    break;
0c025a
+	} else if ((strcmp(argv[i], "--help") == 0) ||
0c025a
+		   (strcmp(argv[i], "-?") == 0) ||
0c025a
+		   (strcmp(argv[i], "-h") == 0)) {
0c025a
+	    i++;
0c025a
+	    usage();
0c025a
 	} else if (strcmp(argv[i], "-p") == 0) {
0c025a
 	    i++;
0c025a
 	    if (i >= argc) {
0c025a
diff --git a/sample/solterm.c b/sample/solterm.c
0c025a
index 38a3f9d..a3e52de 100644
0c025a
--- a/sample/solterm.c
0c025a
+++ b/sample/solterm.c
0c025a
@@ -743,7 +743,12 @@ int main(int argc, char *argv[])
0c025a
 
0c025a
 	/* Now we make sure "lan" is the first argument so we get the
0c025a
 	   right connection type... */
0c025a
-	if (strcmp(argv[1], "lan") != 0) {
0c025a
+	if ((strcmp(argv[1], "-h") == 0) ||
0c025a
+	    (strcmp(argv[1], "--help") == 0) ||
0c025a
+	    (strcmp(argv[1], "-?") == 0)) {
0c025a
+		usage();
0c025a
+		exit(1);
0c025a
+	} else if (strcmp(argv[1], "lan") != 0) {
0c025a
 		fprintf(stderr, "main: %s only supports lan connections\n",
0c025a
 			progname);
0c025a
 		exit(1);
0c025a
diff --git a/ui/basic_ui.c b/ui/basic_ui.c
0c025a
index 6993eb2..84889cb 100644
0c025a
--- a/ui/basic_ui.c
0c025a
+++ b/ui/basic_ui.c
0c025a
@@ -306,6 +306,26 @@ snmp_init(os_handler_t *os_hnd)
0c025a
 static void snmp_setup_fds(os_handler_t *os_hnd) { }
0c025a
 #endif /* HAVE_UCDSNMP */
0c025a
     
0c025a
+void help(void)
0c025a
+{
0c025a
+    fprintf(stdout, "ipmi_ui [ options ] smi smi-num\n");
0c025a
+    fprintf(stdout, "ipmi_ui [ oprions ] lan IP port [IP2 port2] auth priv user pass\n");
0c025a
+    fprintf(stdout, "\n");
0c025a
+    fprintf(stdout, "Options:\n");
0c025a
+    fprintf(stdout, "    -c       Command line mode\n");
0c025a
+    fprintf(stdout, "    -dlock   Lock debugging ON\n");
0c025a
+    fprintf(stdout, "    -dmem    Memory debugging ON\n");
0c025a
+    fprintf(stdout, "    -drawmsg Raw message ON\n");
0c025a
+    fprintf(stdout, "    -dmsg    Dump all messages.\n");
0c025a
+#ifdef HAVE_UCDSNMP
0c025a
+    fprintf(stdout, "    -snmp    SNMP trap handler ON\n");
0c025a
+#endif
0c025a
+    fprintf(stdout, "Auth:\n");
0c025a
+    fprintf(stdout, "    none | straight | md5 | md2\n");
0c025a
+    fprintf(stdout, "Priv:\n");
0c025a
+    fprintf(stdout, "    callback | user | operator | admin\n");
0c025a
+}
0c025a
+
0c025a
 int
0c025a
 main(int argc, char *argv[])
0c025a
 {
0c025a
@@ -327,6 +347,11 @@ main(int argc, char *argv[])
0c025a
 	curr_arg++;
0c025a
 	if (strcmp(arg, "--") == 0) {
0c025a
 	    break;
0c025a
+	} else if (strcmp(arg, "-?") == 0 ||
0c025a
+		   strcmp(arg, "-h") == 0 ||
0c025a
+		   strcmp(arg, "--help") == 0) {
0c025a
+	   help();
0c025a
+	   return(1);
0c025a
 	} else if (strcmp(arg, "-c") == 0) {
0c025a
 	    full_screen = 0;
0c025a
 	} else if (strcmp(arg, "-dlock") == 0) {
0c025a
-- 
0c025a
2.7.4
0c025a