Auto sync2gitlab import of OpenIPMI-2.0.31-3.el8.src.rpm
This commit is contained in:
parent
c705c7532b
commit
1cd690bc31
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/OpenIPMI-2.0.31.tar.gz
|
543
0001-man.patch
Normal file
543
0001-man.patch
Normal file
@ -0,0 +1,543 @@
|
||||
From dfca464e5fe4c9107f08bff7e6e2730a504945b7 Mon Sep 17 00:00:00 2001
|
||||
From: Boris Ranto <branto@redhat.com>
|
||||
Date: Thu, 2 Jun 2016 12:47:22 +0200
|
||||
Subject: [PATCH] Apply './OpenIPMI-2.0.19-man.patch'
|
||||
|
||||
Signed-off-by: Boris Ranto <branto@redhat.com>
|
||||
---
|
||||
lanserv/ipmilan.8 | 13 ++++++++++---
|
||||
man/ipmi_cmdlang.7 | 36 ++++++++++++++++++------------------
|
||||
man/ipmi_ui.1 | 10 +++++-----
|
||||
man/openipmi_conparms.7 | 4 ++--
|
||||
man/openipmicmd.1 | 6 +++---
|
||||
man/openipmigui.1 | 12 ++++++------
|
||||
man/openipmish.1 | 12 +++++++++++-
|
||||
man/rmcp_ping.1 | 2 +-
|
||||
man/solterm.1 | 6 +++---
|
||||
sample/ipmicmd.c | 1 +
|
||||
sample/rmcp_ping.c | 5 +++++
|
||||
sample/solterm.c | 7 ++++++-
|
||||
ui/basic_ui.c | 25 +++++++++++++++++++++++++
|
||||
13 files changed, 96 insertions(+), 43 deletions(-)
|
||||
|
||||
diff --git a/lanserv/ipmilan.8 b/lanserv/ipmilan.8
|
||||
index ff43d5c..9360507 100644
|
||||
--- a/lanserv/ipmilan.8
|
||||
+++ b/lanserv/ipmilan.8
|
||||
@@ -29,18 +29,25 @@ address they came in.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
-.BI \-c\ config-file
|
||||
+\fB\-c\fR file,\ \fB\-\-config\-file\fR file
|
||||
Set the configuration file to one other than the default of
|
||||
.I "/etc/ipmi_lan.conf"
|
||||
.TP
|
||||
-.B \-n
|
||||
+\fB\-i\fR device,\ \fB\-\-ipmi-dev\fR device
|
||||
+Sets the desired device
|
||||
+.TP
|
||||
+\fB\-n\fR,\ \fB\-\-daemonize\fR
|
||||
Stops the daemon from forking and detaching from the controlling
|
||||
terminal. This is useful for running from init.
|
||||
.TP
|
||||
-.B \-d
|
||||
+\fB\-d\fR,\ \fB\-\-debug\fR
|
||||
Turns on debugging to standard output. You generally have to use
|
||||
.B \-n
|
||||
with this.
|
||||
+.TP
|
||||
+\fB\-?\fR,\ \fB\-\-help\fR,\ \fB\-\-usage\fR
|
||||
+Prints brief usage hints message.
|
||||
+
|
||||
|
||||
|
||||
.SH CONFIGURATION
|
||||
diff --git a/man/ipmi_cmdlang.7 b/man/ipmi_cmdlang.7
|
||||
index 4d18e76..a6d73b9 100644
|
||||
--- a/man/ipmi_cmdlang.7
|
||||
+++ b/man/ipmi_cmdlang.7
|
||||
@@ -246,7 +246,7 @@ instance, the command to create a domain is
|
||||
The command to list all sensors in a domain named domain1 is
|
||||
.B sensor list domain1.
|
||||
|
||||
-Each command has a reponse for each object operated on, which is
|
||||
+Each command has a response for each object operated on, which is
|
||||
listed after the command description. In those responses, anything
|
||||
that begins with a
|
||||
.B %
|
||||
@@ -316,7 +316,7 @@ BMC. For that, notice that the LAN connection has an options extra IP
|
||||
and port for the second IP address. OpenIPMI supports these IP
|
||||
addresses and connection, detecting failures, switching between
|
||||
addresses, and other fault-tolerant things. It does this
|
||||
-transparently to the user. Mutiple connections may require special
|
||||
+transparently to the user. Multiple connections may require special
|
||||
OEM support, read the documentation about your specific system if you
|
||||
need this.
|
||||
|
||||
@@ -336,7 +336,7 @@ or
|
||||
\fI<name>\fP and \fI<password>\fP are the user name and password of
|
||||
the IPMI user to use for the connection.
|
||||
The <smi num> is the driver number, generally 0.
|
||||
-Options enable and disable various automitic processing and are:
|
||||
+Options enable and disable various automatic processing and are:
|
||||
.PD 0
|
||||
.HP
|
||||
.B -[no]all
|
||||
@@ -356,7 +356,7 @@ is false by default.
|
||||
is false by default.
|
||||
.HP
|
||||
.B -[no]ipmbscan
|
||||
-- IPMB bus scanning. This turns on scanning IPMB busses when they are found.
|
||||
+- IPMB bus scanning. This turns on scanning IPMB buses when they are found.
|
||||
This is false by default.
|
||||
.HP
|
||||
.B -[no]oeminit
|
||||
@@ -461,7 +461,7 @@ available hacks are:
|
||||
The -M option sets the maximum outstanding messages. The default is
|
||||
2, ranges 1-63.
|
||||
|
||||
-Options enable and disable various automitic processing and are:
|
||||
+Options enable and disable various automatic processing and are:
|
||||
.PD 0
|
||||
.HP
|
||||
.B -[no]all
|
||||
@@ -519,7 +519,7 @@ Domain Created: <domain>
|
||||
.RE
|
||||
|
||||
.B fru <domain> <is_logical> <device_address> <device_id> <lun> <private_bus> <channel>
|
||||
-- dump a fru given all it's insundry information.
|
||||
+- dump a fru given all it's sundry information.
|
||||
.TP
|
||||
Response:
|
||||
.RS
|
||||
@@ -533,7 +533,7 @@ Domain
|
||||
|
||||
.B msg <domain> <channel> <ipmb> <LUN> <NetFN> <Cmd> [data...]
|
||||
- Send a command to the given IPMB address on the given channel and
|
||||
-display the response. Note that this does not require the existance
|
||||
+display the response. Note that this does not require the existence
|
||||
of an MC in OpenIPMI.
|
||||
.TP
|
||||
Response:
|
||||
@@ -571,7 +571,7 @@ SEL Rescan done: <domain>
|
||||
.RE
|
||||
|
||||
.B presence <domain>
|
||||
-- Audit the presence of all enities in the domain. Note that this just
|
||||
+- Audit the presence of all entities in the domain. Note that this just
|
||||
starts the process; it will run in the background.
|
||||
.TP
|
||||
Response is:
|
||||
@@ -689,7 +689,7 @@ FRU deleted: <fru>
|
||||
- Set the value of a FRU element. The
|
||||
name is the record name, or multi-record. The number is required
|
||||
for fields that need it (custom and multi-record). The value is
|
||||
-an a single value for integers. For strings it is a string
|
||||
+a single value for integers. For strings it is a string
|
||||
type (either binary, ascii, or unicode) and the info. Binary and
|
||||
unicode data is specified as numbers. ascii data is specified in
|
||||
a string. Note that setting a ascii value with no string will
|
||||
@@ -770,7 +770,7 @@ Domain
|
||||
.B info <entity>
|
||||
- Dump information about an entity.
|
||||
.TP
|
||||
-Reponse:
|
||||
+Response:
|
||||
.RS
|
||||
.nf
|
||||
Entity
|
||||
@@ -784,7 +784,7 @@ Entity
|
||||
.B fru <entity>
|
||||
- Dump the FRU information about the given entity.
|
||||
.TP
|
||||
-Reponse:
|
||||
+Response:
|
||||
.RS
|
||||
.nf
|
||||
Entity
|
||||
@@ -813,7 +813,7 @@ Entity
|
||||
.B set_act_time <entity>
|
||||
- Set the hot-swap auto-activate time.
|
||||
.TP
|
||||
-Reponse:
|
||||
+Response:
|
||||
.RS
|
||||
.nf
|
||||
Set act time: <entity>
|
||||
@@ -981,7 +981,7 @@ Response:
|
||||
.nf
|
||||
Sensor
|
||||
Name: <sensor>
|
||||
- Positivie Hysteresis: <integer>
|
||||
+ Positive Hysteresis: <integer>
|
||||
Negative Hysteresis: <integer>
|
||||
.fi
|
||||
.RE
|
||||
@@ -1101,7 +1101,7 @@ Set done: <control>
|
||||
.RE
|
||||
|
||||
.B get <control>
|
||||
-- Get the value of a control. The reponse depends
|
||||
+- Get the value of a control. The response depends
|
||||
on the control type.
|
||||
.TP
|
||||
Response:
|
||||
@@ -1128,7 +1128,7 @@ multiple lights. The options values (marked with
|
||||
) will not be
|
||||
present if local control is set to true. Local control means that
|
||||
the LED takes whatever default function it does on the device
|
||||
-(like disk activity, ethernet activity, hot-swap LED, etc.).
|
||||
+(like disk activity, Ethernet activity, hot-swap LED, etc.).
|
||||
Response for id control:
|
||||
.RS
|
||||
.nf
|
||||
@@ -1325,7 +1325,7 @@ Channel Access
|
||||
- Set information about the MC's channel access. There are two different
|
||||
places where this is stored, the present in-use values (volatile) and the
|
||||
non-volatile storage that is loaded at startup. Note if you specify
|
||||
-channel 0xe, the modified channel will be the current channel. Parms
|
||||
+channel 0xe, the modified channel will be the current channel. Parameters
|
||||
are:
|
||||
.RS
|
||||
.nf
|
||||
@@ -1547,7 +1547,7 @@ PET destroyed: <pet>
|
||||
.SS pef
|
||||
commands dealing with platform even filters. These are basically
|
||||
connections to the PEF configuration parameters in an MC. You use a
|
||||
-pef to fetch a pef config, which you can then modify and write back to
|
||||
+pef to fetch a pef configuration, which you can then modify and write back to
|
||||
the MC. Note that when you get a pef config, you claim a lock on the
|
||||
MC that must be unlocked.
|
||||
|
||||
@@ -1780,7 +1780,7 @@ operational and finished all it SDR, FRU, and bus scans:
|
||||
.fi
|
||||
.RE
|
||||
|
||||
-The following comes out when domain connection infomration changes:
|
||||
+The following comes out when domain connection information changes:
|
||||
.RS
|
||||
.nf
|
||||
EVENT
|
||||
diff --git a/man/ipmi_ui.1 b/man/ipmi_ui.1
|
||||
index 9c5d9b6..011255f 100644
|
||||
--- a/man/ipmi_ui.1
|
||||
+++ b/man/ipmi_ui.1
|
||||
@@ -4,7 +4,7 @@
|
||||
ipmi_ui \- Crude interface to an IPMI system
|
||||
|
||||
.SH SYNOPSIS
|
||||
-.B ipmiui
|
||||
+.B ipmi_ui
|
||||
.RB [\| \-dmsg \|]
|
||||
.RB [\| \-dmem \|]
|
||||
.RB [\| \-c \|]
|
||||
@@ -34,7 +34,7 @@ Normally,
|
||||
starts up in a full-screen format. The left window shows the output
|
||||
of commands, the right window shows the logs from OpenIPMI. Both
|
||||
windows are scrollable with page up and page down keys, press the "\fBF1\fP"
|
||||
-key to choose the the left window to scroll, the "\fBF2\fP" key to choose
|
||||
+key to choose the left window to scroll, the "\fBF2\fP" key to choose
|
||||
the right window to scroll.
|
||||
|
||||
Note that you must set your environment \fBTERM\fP variable properly for
|
||||
@@ -48,7 +48,7 @@ the connections are to the same IPMI domain through different
|
||||
management controllers. Also, each LAN connection may have two IP
|
||||
addresses. These are two different addresses to the same management
|
||||
controller. So you may have a total of 4 IP addresses to an IPMI
|
||||
-domain, two management controllers and two IP adresses to each
|
||||
+domain, two management controllers and two IP addresses to each
|
||||
management controller.
|
||||
|
||||
.SH OPTIONS
|
||||
@@ -174,12 +174,12 @@ turns events on or off from the sensor (\fB0\fP or \fB1\fP).
|
||||
turns scanning on or off for the sensor (\fB0\fP or \fB1\fP).
|
||||
.I "assertion-bitmask"
|
||||
specifies the bitmask of thresholds or states
|
||||
-that should be enabled or disabled when a thrshold or state is
|
||||
+that should be enabled or disabled when a threshold or state is
|
||||
asserted. It is a bunch of 0's and 1's, where the first one is for
|
||||
threshold/state 0, the second for threshold/state 1, etc.
|
||||
.I "deassertion-bitmask"
|
||||
specifies the bitmask of thresholds or states
|
||||
-that should be enabled or disabled when a thrshold or state is
|
||||
+that should be enabled or disabled when a threshold or state is
|
||||
deasserted.
|
||||
|
||||
.SH CONTROLS
|
||||
diff --git a/man/openipmi_conparms.7 b/man/openipmi_conparms.7
|
||||
index 587da2a..9dc6404 100644
|
||||
--- a/man/openipmi_conparms.7
|
||||
+++ b/man/openipmi_conparms.7
|
||||
@@ -1,7 +1,7 @@
|
||||
.TH openipmi_conparms 7 05/13/03 OpenIPMI "Connection Parameters for OpenIPMI"
|
||||
|
||||
.SH NAME
|
||||
-openipmi_cmdparms \- Connection parmeters for OpenIPMI
|
||||
+openipmi_cmdparms \- Connection parameters for OpenIPMI
|
||||
|
||||
.SH SYNOPSIS
|
||||
|
||||
@@ -97,7 +97,7 @@ use.
|
||||
.TP
|
||||
.BI \-Rc\ confidentiality\ algorithm
|
||||
The \fIRMCP+ confidentiality (encryption) algorithm\fP to use. This keeps
|
||||
-evesdroppers from seeing the data. Valid values are: \fBbmcpick\fP,
|
||||
+eavesdroppers from seeing the data. Valid values are: \fBbmcpick\fP,
|
||||
\fBaes_cbc_128\fP, \fBxrc4_128\fP, and \fBxrc_40\fP. The \fBbmcpick\fP option is used by
|
||||
default, which means the BMC picks the algorithm it wants to use.
|
||||
|
||||
diff --git a/man/openipmicmd.1 b/man/openipmicmd.1
|
||||
index 6bd2401..5d206d1 100644
|
||||
--- a/man/openipmicmd.1
|
||||
+++ b/man/openipmicmd.1
|
||||
@@ -22,7 +22,7 @@ interfaces.
|
||||
Execute a single command an exit.
|
||||
|
||||
.TP
|
||||
-.BI <connection parms>
|
||||
+.BI <connection\ parms>
|
||||
The parameters for the connection depend on the connection type.
|
||||
These are all described in openipmi_conparms (7)
|
||||
|
||||
@@ -32,7 +32,7 @@ Once up, you can execute commands in the user interface. Note that
|
||||
commands and responses are asynchronous, you issue a command and the
|
||||
interface returns immediately. When the response comes back, it will
|
||||
be dumped on your console. That's a little strange looking, but IPMI
|
||||
-is ansychronous underneath. Note that the \fB\-k\fP option is synchronous,
|
||||
+is asynchronous underneath. Note that the \fB\-k\fP option is synchronous,
|
||||
it will wait for the response or a timeout before returning.
|
||||
|
||||
.TP
|
||||
@@ -82,7 +82,7 @@ Remove a command registration.
|
||||
.BR openipmi_conparms (7)
|
||||
|
||||
.SH "KNOWN PROBLEMS"
|
||||
-The asychronous nature of the program can be annoying.
|
||||
+The asynchronous nature of the program can be annoying.
|
||||
|
||||
.SH AUTHOR
|
||||
.PP
|
||||
diff --git a/man/openipmigui.1 b/man/openipmigui.1
|
||||
index 04f880b..0c8c10f 100644
|
||||
--- a/man/openipmigui.1
|
||||
+++ b/man/openipmigui.1
|
||||
@@ -38,7 +38,7 @@ Turn on message debugging, this will dump all messages to debug log output.
|
||||
.TP
|
||||
.B \-\-drawmsg
|
||||
Turn on raw message debugging, this will dump all low-level messages to
|
||||
-debug log output. This differes from normal message debugging in that all
|
||||
+debug log output. This differs from normal message debugging in that all
|
||||
protocol messages are also dumped, not just IPMI messages.
|
||||
.TP
|
||||
.B \-\-dmem
|
||||
@@ -81,7 +81,7 @@ tree.
|
||||
|
||||
The tree window has a top-level list of all the domains for which
|
||||
OpenIPMI has connections (or pending connection). Each domain
|
||||
-exapands into domain-specific information and a list of entities and
|
||||
+expands into domain-specific information and a list of entities and
|
||||
Management Controllers (MCs) for that domain.
|
||||
|
||||
Right click drives most of the operations in the tree window. Many
|
||||
@@ -92,7 +92,7 @@ Color is used in the GUI to denote error status, and shading is used
|
||||
to denote availability. If a sensor has an error, the tree entry for
|
||||
that sensor will change colors. Black means no error, yellow means
|
||||
warning, red means critical, and blue means non-recoverable. These
|
||||
-errors propigate up, so the entity containing that sensor will be the
|
||||
+errors propagate up, so the entity containing that sensor will be the
|
||||
same color as the most critical error for the sensors underneath it.
|
||||
The same goes for domain, it will be the same color as the most
|
||||
critical error for the entities underneath it. This way, if you watch
|
||||
@@ -146,7 +146,7 @@ that sensor.
|
||||
|
||||
.SH CONTROLS
|
||||
|
||||
-Controls are available under the entity they belong to. control
|
||||
+Controls are available under the entity they belong to. Control
|
||||
information is beyond the scope of this document, as IPMI controls are
|
||||
very complex. See the IPMI document from OpenIPMI for information
|
||||
about controls.
|
||||
@@ -214,7 +214,7 @@ channel listing. Note that some user setting (the name and password)
|
||||
are global to all channels on the MC.
|
||||
|
||||
Due to the IPMI spec and some unfortunate implementation bugs, some
|
||||
-wierd issues exist with this information. The user has an Enabled
|
||||
+weird issues exist with this information. The user has an Enabled
|
||||
value that tells whether the user is enabled or not. When initially
|
||||
displayed, this field shows as a "?" because this field is not
|
||||
readable. It will displayed as the actual value when it is modified,
|
||||
@@ -247,7 +247,7 @@ changed.
|
||||
.SH SOLPARMS
|
||||
|
||||
In the channel display on a 8023_LAN channel, a LANPARM configuration
|
||||
-command is available if the MC supporte SOL (Serial Over LAN). This
|
||||
+command is available if the MC supports SOL (Serial Over LAN). This
|
||||
pulls up all the parameters for the LAN and allows them to be set.
|
||||
Right-clicking on an item allows it to be changed.
|
||||
|
||||
diff --git a/man/openipmish.1 b/man/openipmish.1
|
||||
index 36b1e43..2c902e4 100644
|
||||
--- a/man/openipmish.1
|
||||
+++ b/man/openipmish.1
|
||||
@@ -26,7 +26,7 @@ Turn on message debugging, this will dump all messages to debug log output.
|
||||
.TP
|
||||
.B \-\-drawmsg
|
||||
Turn on raw message debugging, this will dump all low-level messages to
|
||||
-debug log output. This differes from normal message debugging in that all
|
||||
+debug log output. This differs from normal message debugging in that all
|
||||
protocol messages are also dumped, not just IPMI messages.
|
||||
.TP
|
||||
.B \-\-dmem
|
||||
@@ -34,11 +34,21 @@ Turn on memory debugging, this will cause memory allocation and
|
||||
deallocations to be checked. When the program terminates, it will
|
||||
dump all memory that was not properly freed (leaked).
|
||||
.TP
|
||||
+.B \-\-dmsgerr
|
||||
+Turn on printing out low-level message errors.
|
||||
+.TP
|
||||
.B \-\-dlock
|
||||
Turn on lock debugging, this will check lock operations to make sure
|
||||
that locks are help in all the proper places and make sure that locks
|
||||
are properly nested.
|
||||
.TP
|
||||
+\fB-x\fR\ <string>,\ \fB\-\-execute\fR\ <string>
|
||||
+Execute the given string at startup. This may be entered multiple times
|
||||
+for multiple commands.
|
||||
+.TP
|
||||
+.B \-\-glib
|
||||
+Use glib for the OS handler.
|
||||
+.TP
|
||||
.B \-\-snmp
|
||||
Enable the SNMP trap handler.
|
||||
.B openipmish
|
||||
diff --git a/man/rmcp_ping.1 b/man/rmcp_ping.1
|
||||
index d60019a..ce5cab0 100644
|
||||
--- a/man/rmcp_ping.1
|
||||
+++ b/man/rmcp_ping.1
|
||||
@@ -38,7 +38,7 @@ starttag. This is zero by default
|
||||
Turns on debugging to standard output.
|
||||
.TP
|
||||
.I destination
|
||||
-The target address, default is the boradcast address (default 255.255.255.255)
|
||||
+The target address, default is the broadcast address (default 255.255.255.255)
|
||||
|
||||
.SH AUTHOR
|
||||
.PP
|
||||
diff --git a/man/solterm.1 b/man/solterm.1
|
||||
index 1479a1b..ada15d8 100644
|
||||
--- a/man/solterm.1
|
||||
+++ b/man/solterm.1
|
||||
@@ -37,9 +37,9 @@ These are all described in openipmi_conparms (7)
|
||||
.TP
|
||||
.BI \-e\ escape_char
|
||||
The character to use to escape, or exit, the program. Entering this
|
||||
-chatacter right after a newline is entered causes the program to go
|
||||
+character right after a newline is entered causes the program to go
|
||||
into command mode. A single character after this performs a command.
|
||||
-The default escape character is "~" as shown below. Suppported
|
||||
+The default escape character is "~" as shown below. Supported
|
||||
commands are:
|
||||
.RS
|
||||
.IP ~.
|
||||
@@ -98,7 +98,7 @@ the SoL session. This is the default.
|
||||
.TP
|
||||
.BI \-holdoff
|
||||
Specifies that CTS, DTR, and DSR are to be deasserted at the start of
|
||||
-the SoL session so that the configuration may be modifeid before the
|
||||
+the SoL session so that the configuration may be modified before the
|
||||
handshake is released.
|
||||
|
||||
.TP
|
||||
diff --git a/sample/ipmicmd.c b/sample/ipmicmd.c
|
||||
index 6cbcdc5..5f5c1ec 100644
|
||||
--- a/sample/ipmicmd.c
|
||||
+++ b/sample/ipmicmd.c
|
||||
@@ -124,6 +124,7 @@ void usage(void)
|
||||
printf("%s [-k <command>] [-v] <con_parms>\n", progname);
|
||||
printf("Where <con_parms> is one of:");
|
||||
ipmi_parse_args_iter_help(con_usage, NULL);
|
||||
+ printf("\n");
|
||||
}
|
||||
|
||||
char *
|
||||
diff --git a/sample/rmcp_ping.c b/sample/rmcp_ping.c
|
||||
index 7814792..5778fea 100644
|
||||
--- a/sample/rmcp_ping.c
|
||||
+++ b/sample/rmcp_ping.c
|
||||
@@ -156,6 +156,11 @@ main(int argc, char *argv[])
|
||||
if (strcmp(argv[i], "--") == 0) {
|
||||
i++;
|
||||
break;
|
||||
+ } else if ((strcmp(argv[i], "--help") == 0) ||
|
||||
+ (strcmp(argv[i], "-?") == 0) ||
|
||||
+ (strcmp(argv[i], "-h") == 0)) {
|
||||
+ i++;
|
||||
+ usage();
|
||||
} else if (strcmp(argv[i], "-p") == 0) {
|
||||
i++;
|
||||
if (i >= argc) {
|
||||
diff --git a/sample/solterm.c b/sample/solterm.c
|
||||
index 38a3f9d..a3e52de 100644
|
||||
--- a/sample/solterm.c
|
||||
+++ b/sample/solterm.c
|
||||
@@ -743,7 +743,12 @@ int main(int argc, char *argv[])
|
||||
|
||||
/* Now we make sure "lan" is the first argument so we get the
|
||||
right connection type... */
|
||||
- if (strcmp(argv[1], "lan") != 0) {
|
||||
+ if ((strcmp(argv[1], "-h") == 0) ||
|
||||
+ (strcmp(argv[1], "--help") == 0) ||
|
||||
+ (strcmp(argv[1], "-?") == 0)) {
|
||||
+ usage();
|
||||
+ exit(1);
|
||||
+ } else if (strcmp(argv[1], "lan") != 0) {
|
||||
fprintf(stderr, "main: %s only supports lan connections\n",
|
||||
progname);
|
||||
exit(1);
|
||||
diff --git a/ui/basic_ui.c b/ui/basic_ui.c
|
||||
index 6993eb2..84889cb 100644
|
||||
--- a/ui/basic_ui.c
|
||||
+++ b/ui/basic_ui.c
|
||||
@@ -306,6 +306,26 @@ snmp_init(os_handler_t *os_hnd)
|
||||
static void snmp_setup_fds(os_handler_t *os_hnd) { }
|
||||
#endif /* HAVE_UCDSNMP */
|
||||
|
||||
+void help(void)
|
||||
+{
|
||||
+ fprintf(stdout, "ipmi_ui [ options ] smi smi-num\n");
|
||||
+ fprintf(stdout, "ipmi_ui [ oprions ] lan IP port [IP2 port2] auth priv user pass\n");
|
||||
+ fprintf(stdout, "\n");
|
||||
+ fprintf(stdout, "Options:\n");
|
||||
+ fprintf(stdout, " -c Command line mode\n");
|
||||
+ fprintf(stdout, " -dlock Lock debugging ON\n");
|
||||
+ fprintf(stdout, " -dmem Memory debugging ON\n");
|
||||
+ fprintf(stdout, " -drawmsg Raw message ON\n");
|
||||
+ fprintf(stdout, " -dmsg Dump all messages.\n");
|
||||
+#ifdef HAVE_UCDSNMP
|
||||
+ fprintf(stdout, " -snmp SNMP trap handler ON\n");
|
||||
+#endif
|
||||
+ fprintf(stdout, "Auth:\n");
|
||||
+ fprintf(stdout, " none | straight | md5 | md2\n");
|
||||
+ fprintf(stdout, "Priv:\n");
|
||||
+ fprintf(stdout, " callback | user | operator | admin\n");
|
||||
+}
|
||||
+
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
@@ -327,6 +347,11 @@ main(int argc, char *argv[])
|
||||
curr_arg++;
|
||||
if (strcmp(arg, "--") == 0) {
|
||||
break;
|
||||
+ } else if (strcmp(arg, "-?") == 0 ||
|
||||
+ strcmp(arg, "-h") == 0 ||
|
||||
+ strcmp(arg, "--help") == 0) {
|
||||
+ help();
|
||||
+ return(1);
|
||||
} else if (strcmp(arg, "-c") == 0) {
|
||||
full_screen = 0;
|
||||
} else if (strcmp(arg, "-dlock") == 0) {
|
||||
--
|
||||
2.7.4
|
||||
|
12
OpenIPMI-collectd.patch
Normal file
12
OpenIPMI-collectd.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -urNp a/unix/posix_thread_os_hnd.c b/unix/posix_thread_os_hnd.c
|
||||
--- a/unix/posix_thread_os_hnd.c 2021-08-02 15:36:49.536860558 +0200
|
||||
+++ b/unix/posix_thread_os_hnd.c 2021-08-02 15:38:48.990041616 +0200
|
||||
@@ -140,8 +140,6 @@ add_fd(os_handler_t *handler,
|
||||
fd_data->data_ready = data_ready;
|
||||
fd_data->handler = handler;
|
||||
fd_data->freed = freed;
|
||||
- sel_set_fd_write_handler(posix_sel, fd, SEL_FD_HANDLER_DISABLED);
|
||||
- sel_set_fd_except_handler(posix_sel, fd, SEL_FD_HANDLER_DISABLED);
|
||||
rv = sel_set_fd_handlers(posix_sel, fd, fd_data, fd_handler, NULL, NULL,
|
||||
free_fd_data);
|
||||
if (rv) {
|
629
OpenIPMI.spec
Normal file
629
OpenIPMI.spec
Normal file
@ -0,0 +1,629 @@
|
||||
%global _hardened_build 1
|
||||
|
||||
Summary: IPMI (Intelligent Platform Management Interface) library and tools
|
||||
Name: OpenIPMI
|
||||
|
||||
Version: 2.0.31
|
||||
Release: 3%{?dist}
|
||||
License: LGPLv2+ and GPLv2+ or BSD
|
||||
URL: http://sourceforge.net/projects/openipmi/
|
||||
Source: http://downloads.sourceforge.net/openipmi/%{name}-%{version}.tar.gz
|
||||
Source1: openipmi.sysconf
|
||||
Source2: openipmi-helper
|
||||
Source3: ipmi.service
|
||||
Patch1: 0001-man.patch
|
||||
Patch4: OpenIPMI-collectd.patch
|
||||
Patch5: restore-api-compatibility.patch
|
||||
|
||||
BuildRequires: gdbm-devel swig glib2-devel net-snmp-devel ncurses-devel
|
||||
BuildRequires: openssl-devel python3-devel perl-devel perl-generators
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: automake
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: libtool
|
||||
%{?systemd_requires}
|
||||
BuildRequires: systemd
|
||||
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
|
||||
%description
|
||||
The Open IPMI project aims to develop an open code base to allow access to
|
||||
platform information using Intelligent Platform Management Interface (IPMI).
|
||||
This package contains the tools of the OpenIPMI project.
|
||||
|
||||
%package libs
|
||||
Summary: The OpenIPMI runtime libraries
|
||||
|
||||
%description libs
|
||||
The OpenIPMI-libs package contains the runtime libraries for shared binaries
|
||||
and applications.
|
||||
|
||||
%package perl
|
||||
Summary: IPMI Perl language bindings
|
||||
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description perl
|
||||
The OpenIPMI-perl package contains the Perl language bindings for OpenIPMI.
|
||||
|
||||
%package -n python3-openipmi
|
||||
%{?python_provide:%python_provide python3-openipmi}
|
||||
%{?python_provide:%python_provide python3-OpenIPMI}
|
||||
# Remove before F30
|
||||
Provides: %{name}-python = %{version}-%{release}
|
||||
Provides: %{name}-python%{?_isa} = %{version}-%{release}
|
||||
Obsoletes: %{name}-python2 < %{version}-%{release}
|
||||
Summary: IPMI Python language bindings
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description -n python3-openipmi
|
||||
The OpenIPMI-python package contains the Python language bindings for OpenIPMI.
|
||||
|
||||
%package devel
|
||||
Summary: The development environment for the OpenIPMI project
|
||||
Requires: pkgconfig
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-lanserv%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
The OpenIPMI-devel package contains the development libraries and header files
|
||||
of the OpenIPMI project.
|
||||
|
||||
%package lanserv
|
||||
Summary: Emulates an IPMI network listener
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description lanserv
|
||||
This package contains a network IPMI listener.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
# Patch5 changes Makefile.am
|
||||
%{__automake} --add-missing --copy --foreign
|
||||
|
||||
%configure \
|
||||
CFLAGS="-fPIC %{optflags} -z now -fno-strict-aliasing" \
|
||||
LDFLAGS="%{__global_ldflags} -Wl,--as-needed" \
|
||||
--disable-dependency-tracking \
|
||||
--disable-static \
|
||||
--with-pythoninstall=%{python3_sitearch} \
|
||||
--with-python=%{__python3} \
|
||||
--with-tcl=no \
|
||||
--with-tkinter=no
|
||||
|
||||
# https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Beware_of_Rpath
|
||||
# get rid of rpath still present in OpenIPMI-perl package
|
||||
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
|
||||
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
|
||||
|
||||
make # not %%{?_smp_mflags} safe
|
||||
|
||||
%install
|
||||
make install DESTDIR=%{buildroot}
|
||||
|
||||
install -d %{buildroot}{%{_sysconfdir}/sysconfig,%{_unitdir},%{_libexecdir}}
|
||||
install -m 644 %SOURCE1 %{buildroot}%{_sysconfdir}/sysconfig/ipmi
|
||||
install -m 755 %SOURCE2 %{buildroot}%{_libexecdir}/openipmi-helper
|
||||
install -m 644 %SOURCE3 %{buildroot}%{_unitdir}/ipmi.service
|
||||
install -d %{buildroot}%{_sysconfdir}/modprobe.d
|
||||
|
||||
rm %{buildroot}/%{_mandir}/man1/openipmigui.1 %{buildroot}%{_libdir}/*.la
|
||||
|
||||
# add missing documentation
|
||||
echo ".so man1/ipmicmd.1" > %{buildroot}%{_mandir}/man1/ipmicmd.1
|
||||
echo ".so man1/openipmish.1" > %{buildroot}%{_mandir}/man1/ipmish.1
|
||||
|
||||
%post
|
||||
%systemd_post ipmi.service
|
||||
|
||||
%preun
|
||||
%systemd_preun ipmi.service
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart ipmi.service
|
||||
|
||||
%ldconfig_scriptlets libs
|
||||
%ldconfig_scriptlets lanserv
|
||||
|
||||
### A sysv => systemd migration contains all of the same scriptlets as a
|
||||
### systemd package. These are additional scriptlets
|
||||
|
||||
%triggerun -- OpenIPMI < 2.0.18-14
|
||||
# Save the current service runlevel info
|
||||
# User must manually run systemd-sysv-convert --apply httpd
|
||||
# to migrate them to systemd targets
|
||||
/usr/bin/systemd-sysv-convert --save ipmi >/dev/null 2>&1 ||:
|
||||
/bin/systemctl --no-reload enable ipmi.service >/dev/null 2>&1 ||:
|
||||
# Run these because the SysV package being removed won't do them
|
||||
/sbin/chkconfig --del ipmi >/dev/null 2>&1 || :
|
||||
/bin/systemctl try-restart ipmi.service >/dev/null 2>&1 || :
|
||||
|
||||
%files
|
||||
%license COPYING COPYING.BSD COPYING.LIB
|
||||
%doc CONFIGURING_FOR_LAN FAQ README README.Force README.MotorolaMXP
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/ipmi
|
||||
%{_libexecdir}/openipmi-helper
|
||||
%{_bindir}/ipmicmd
|
||||
%{_bindir}/ipmish
|
||||
%{_bindir}/ipmi_ui
|
||||
%{_bindir}/openipmicmd
|
||||
%{_bindir}/openipmish
|
||||
%{_bindir}/rmcp_ping
|
||||
%{_bindir}/solterm
|
||||
%{_bindir}/openipmi_eventd
|
||||
%{_unitdir}/ipmi.service
|
||||
%{_mandir}/man1/ipmi_ui*
|
||||
%{_mandir}/man1/openipmicmd*
|
||||
%{_mandir}/man1/openipmish*
|
||||
%{_mandir}/man1/rmcp_ping*
|
||||
%{_mandir}/man1/solterm*
|
||||
%{_mandir}/man1/ipmish*
|
||||
%{_mandir}/man1/ipmicmd*
|
||||
%{_mandir}/man1/openipmi_eventd*
|
||||
%{_mandir}/man7/ipmi_cmdlang*
|
||||
%{_mandir}/man7/openipmi_conparms*
|
||||
|
||||
%files perl
|
||||
%attr(644,root,root) %{perl_vendorarch}/OpenIPMI.pm
|
||||
%{perl_vendorarch}/auto/OpenIPMI
|
||||
|
||||
%files -n python3-openipmi
|
||||
%{python3_sitearch}/*OpenIPMI*
|
||||
%{python3_sitearch}/__pycache__/OpenIPMI.*.pyc
|
||||
|
||||
%files libs
|
||||
%{_libdir}/libOpenIPMI*.so.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/OpenIPMI
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
|
||||
%files lanserv
|
||||
%config(noreplace) %{_sysconfdir}/ipmi/ipmisim1.emu
|
||||
%config(noreplace) %{_sysconfdir}/ipmi/lan.conf
|
||||
%dir %{_sysconfdir}/ipmi
|
||||
%{_bindir}/ipmilan
|
||||
%{_bindir}/ipmi_sim
|
||||
%{_bindir}/sdrcomp
|
||||
%{_libdir}/libIPMIlanserv.so.*
|
||||
%{_mandir}/man8/ipmilan.8*
|
||||
%{_mandir}/man1/ipmi_sim.1*
|
||||
%{_mandir}/man5/ipmi_lan.5*
|
||||
%{_mandir}/man5/ipmi_sim_cmd.5*
|
||||
|
||||
%changelog
|
||||
* Fri Aug 27 2021 Pavel Cahyna <pcahyna@redhat.com> - 2.0.31-3
|
||||
- Resolve issues found by rpmdiff
|
||||
- add explicit Requires: on subpackages to avoid the need to test
|
||||
interoperability between the various combinations of old and new
|
||||
subpackages
|
||||
- add code to restore binary compatibility in libIPMIlanserv.so
|
||||
and libOpenIPMIcmdlang.so broken in 2.0.31, while keeping
|
||||
compatibility with 2.0.31 as well.
|
||||
|
||||
* Fri Aug 6 2021 Pavel Cahyna <pcahyna@redhat.com> - 2.0.31-2
|
||||
- fix collectd-ipmi crash (#1990072)
|
||||
|
||||
* Fri Jul 9 2021 Pavel Cahyna <pcahyna@redhat.com> - 2.0.31-1
|
||||
- New upstream release 2.0.31 (#1923044)
|
||||
|
||||
* Wed Nov 18 2020 Josef Ridky <jridky@redhat.com> - 2.0.29-1
|
||||
- New upstream release 2.0.29 (#1796588)
|
||||
|
||||
* Tue Oct 08 2019 Vaclav Dolezal <vdolezal@redhat.com> - 2.0.27-1
|
||||
- New upstream release 2.0.27
|
||||
|
||||
* Thu Aug 09 2018 Josef Ridky <jridky@redhat.com> - 2.0.25-4
|
||||
- Rebuild for Net-SNMP
|
||||
|
||||
* Mon Jul 30 2018 Florian Weimer <fweimer@redhat.com> - 2.0.25-3
|
||||
- Rebuild with fixed binutils
|
||||
|
||||
* Wed Jul 25 2018 Petr Kubat <pkubat@redhat.com> - 2.0.25-2
|
||||
- Rebuilt for gdbm
|
||||
|
||||
* Fri Apr 20 2018 Josef Ridky <jridky@redhat.com> - 2.0.25-1
|
||||
- New upstream release 2.0.25 (#1568194)
|
||||
- Replace Python2 with Python3
|
||||
- Drop OpenIPMI-python2 and set it as Obsolete
|
||||
- Introduce new OpenIPMI-python3 package
|
||||
- use ldconfig macros
|
||||
- remove old systemd dependencies
|
||||
- use autosetup
|
||||
|
||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.23-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.23-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Thu Jun 15 2017 Josef Ridky <jridky@redhat.com> - 2.0.23-1
|
||||
- New upstream release 2.0.23 (#1461606)
|
||||
|
||||
* Sun Jun 04 2017 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.22-6
|
||||
- Perl 5.26 rebuild
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.22-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Mon Oct 17 2016 Josef Ridky <jridky@redhat.com> - 2.0.22-4
|
||||
- Add support for openssl-1.1.0 library (#1383995)
|
||||
|
||||
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.22-3
|
||||
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||
|
||||
* Fri Jul 15 2016 Boris Ranto <branto@redhat.com> - 0:2.0.22-2
|
||||
- Rebuild for glibc hack
|
||||
|
||||
* Thu Jun 02 2016 Boris Ranto <branto@redhat.com> - 0:2.0.22-1
|
||||
- New version (0:2.0.22-1)
|
||||
- Apply 'OpenIPMI-2.0.18-pthread-pkgconfig.patch'
|
||||
- Apply './OpenIPMI-2.0.19-man.patch'
|
||||
- Apply 'OpenIPMI-2.0.21-nobundle.patch'
|
||||
|
||||
* Tue May 17 2016 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.21-13
|
||||
- Perl 5.24 rebuild
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.21-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Wed Dec 09 2015 Boris Ranto <branto@redhat.com> - 2.0.21-11
|
||||
- Avoid warning on update/removal (#1256798)
|
||||
|
||||
* Tue Nov 24 2015 Boris Ranto <branto@redhat.com> - 2.0.21-10
|
||||
- Remove duplicities in filelists
|
||||
|
||||
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.21-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Fri Jun 05 2015 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.21-8
|
||||
- Perl 5.22 rebuild
|
||||
|
||||
* Wed Apr 22 2015 Ales Ledvinka <aledvink@redhat.com> - 2.0.21-7
|
||||
- Remove modalias subpackage.
|
||||
|
||||
* Tue Aug 26 2014 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.21-6
|
||||
- Perl 5.20 rebuild
|
||||
|
||||
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.21-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Tue Aug 12 2014 Ledvinka Ales <aledvink@redhat.com> - 2.0.21-4
|
||||
- Use system libedit instead of the old one bundled with source.
|
||||
|
||||
* Fri Jun 06 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.21-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Tue May 13 2014 Jaromir Capik <jcapik@redhat.com> - 2.0.21-2
|
||||
- Fixing FTBFS due to unpackaged files (#1075696)
|
||||
|
||||
* Wed Jan 29 2014 Ledvinka Ales <aledvink@redhat.com> - 2.0.21-1
|
||||
- Update to new upstream (fixed case 2nd) release.
|
||||
|
||||
* Tue Jan 14 2014 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-11
|
||||
- Probe modules on installation. Do not wait until reboot.
|
||||
|
||||
* Wed Nov 13 2013 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-10
|
||||
- Correct aliases matching module strings.
|
||||
|
||||
* Tue Nov 05 2013 Fedora Release Engineering <aledvink@redhat.com> - 2.0.19-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Fri Aug 02 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.19-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Fri Jul 19 2013 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-7
|
||||
- Hint compilation to avoid strict aliasing and prevent type-punned pointer issues.
|
||||
- Fix rPath regression for OpenIPMI-perl library.
|
||||
|
||||
* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 2.0.19-6
|
||||
- Perl 5.18 rebuild
|
||||
|
||||
* Tue Jun 4 2013 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-5
|
||||
- Support aarch64 by replicating release toolchain.
|
||||
- Configuration subpackage with kernel probed wildcard module aliases.
|
||||
as workaround for bz#961878 and fesco#1110
|
||||
- Man pages symlinks same as bin symlinks.
|
||||
- ipmi_ui command help argument.
|
||||
- ipmilan missing options.
|
||||
- Fixed build requirements.
|
||||
|
||||
* Thu Apr 25 2013 Ledvinka Ales <aledvink@redhat.com> - 2.0.19-4
|
||||
- rpmdiff fixes
|
||||
|
||||
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.19-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Mon Aug 27 2012 Jan Safranek <jsafrane@redhat.com> - 2.0.19-2
|
||||
- Updated RPM scriptlets with latest systemd-rpm macros (#850246)
|
||||
- Fixed fedora-review tool complaints
|
||||
|
||||
* Wed Aug 8 2012 Jan Safranek <jsafrane@redhat.com> - 2.0.19-1
|
||||
- Update to 2.0.19
|
||||
|
||||
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.18-16
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Mon Jun 11 2012 Petr Pisar <ppisar@redhat.com> - 2.0.18-15
|
||||
- Perl 5.16 rebuild
|
||||
|
||||
* Mon May 7 2012 Jan Safranek <jsafrane@redhat.com> - 2.0.18-14
|
||||
- Added ipmi systemd unit
|
||||
|
||||
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.18-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Thu Jul 21 2011 Petr Sabata <contyk@redhat.com> - 2.0.18-12
|
||||
- Perl mass rebuild
|
||||
|
||||
* Wed Jul 20 2011 Petr Sabata <contyk@redhat.com> - 2.0.18-11
|
||||
- Perl mass rebuild
|
||||
|
||||
* Fri Jul 8 2011 Jan Safranek <jsafrane@redhat.com> - 2.0.18-10
|
||||
- Rebuilt for new Net-SNMP
|
||||
|
||||
* Fri Jun 17 2011 Marcela Mašláňová <mmaslano@redhat.com> - 2.0.18-9
|
||||
- Perl mass rebuild
|
||||
|
||||
* Fri Jun 10 2011 Marcela Mašláňová <mmaslano@redhat.com> - 2.0.18-8
|
||||
- Perl 5.14 mass rebuild
|
||||
|
||||
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.18-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Mon Nov 1 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.18-6
|
||||
- Removed the openipmigui tool, it does not work with TCL without thread
|
||||
support (#646184)
|
||||
|
||||
* Tue Oct 26 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.18-5
|
||||
- Rebuilt for new Net-SNMP
|
||||
|
||||
* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 2.0.18-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
|
||||
|
||||
* Thu Jul 8 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.18-3
|
||||
- added lincense files to OpenIPMI-libs subpackage as requested by
|
||||
Fedora Licensing Guidelines
|
||||
|
||||
* Tue Jun 01 2010 Marcela Maslanova <mmaslano@redhat.com> - 2.0.18-2
|
||||
- Mass rebuild with perl-5.12.0
|
||||
|
||||
* Wed May 5 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.18-1
|
||||
- updated to OpenIPMI-2.0.18
|
||||
- fixed OpenIPMIpthread pkgconfig file (#468067)
|
||||
|
||||
* Mon May 3 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.17-1
|
||||
- updated to OpenIPMI-2.0.17
|
||||
|
||||
* Thu Mar 18 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-12
|
||||
- implemented mandatory 'force-reload' command in ipmi service
|
||||
|
||||
* Thu Mar 11 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-11
|
||||
- rebuild against new gdbm
|
||||
|
||||
* Wed Mar 3 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-10
|
||||
- add README.initscript describing /etc/init.d/ipmi initscript exit codes
|
||||
(#562151)
|
||||
|
||||
* Mon Feb 22 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-9
|
||||
- fix package License: field, there *are* sources with BSD header
|
||||
- distribute README files and COPYING in package
|
||||
|
||||
* Tue Jan 5 2010 Jan Safranek <jsafrane@redhat.com> - 2.0.16-8
|
||||
- fix package License: field, there is no source with BSD header
|
||||
|
||||
* Mon Dec 7 2009 Stepan Kasal <skasal@redhat.com> - 2.0.16-7
|
||||
- rebuild against perl 5.10.1
|
||||
|
||||
* Tue Dec 1 2009 Jan Safranek <jsafrane@redhat.com> - 2.0.16-6
|
||||
- fix package compilation to remove rpmlint errors
|
||||
|
||||
* Wed Sep 30 2009 Jan Safranek <jsafrane@redhat.com> - 2.0.16-5
|
||||
- rebuilt with new net-snmp
|
||||
|
||||
* Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 2.0.16-4
|
||||
- rebuilt with new openssl
|
||||
|
||||
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.16-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||
|
||||
* Wed Apr 15 2009 Jan Safranek <jsafrane@redhat.com> - 2.0.16-2
|
||||
- fix compilation flags, debuginfo package is correctly generated now
|
||||
|
||||
* Thu Mar 19 2009 Jan Safranek <jsafrane@redhat.com> - 2.0.16-1
|
||||
- new upstream release
|
||||
|
||||
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.14-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||
|
||||
* Sat Jan 17 2009 Tomas Mraz <tmraz@redhat.com> - 2.0.14-10
|
||||
- rebuild with new openssl
|
||||
|
||||
* Thu Dec 11 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-9
|
||||
- fix linking without rpath, prelink won't screw up the libraries
|
||||
anymore (#475265)
|
||||
|
||||
* Wed Dec 10 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-8
|
||||
- shorter probe interval is used in init script, making the service startup
|
||||
quicker in most situations (#475101)
|
||||
|
||||
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 2.0.14-7
|
||||
- Rebuild for Python 2.6
|
||||
|
||||
* Thu Oct 30 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-6
|
||||
- removed static libraries from the -devel subpackage
|
||||
- fixed openipmigui.desktop file
|
||||
|
||||
* Thu Oct 23 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-5
|
||||
- fixed typos in the descriptions
|
||||
- added .desktop file for openipmigui tool
|
||||
|
||||
* Mon Oct 20 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-4
|
||||
- fixed description of the package
|
||||
|
||||
* Thu Oct 16 2008 Jan Safranek <jsafrane@redhat.com> - 2.0.14-3
|
||||
- split ipmitool to separate package
|
||||
- added 'reload' functionality to init script
|
||||
- added seraparate -gui subpackage
|
||||
|
||||
* Wed Jul 30 2008 Phil Knirsch <pknirsch@redhat.com> - 2.0.14-2
|
||||
- Fixed rpath problem in libOpenIPMIposix.so.0.0.1
|
||||
|
||||
* Tue Jul 29 2008 Phil Knirsch <pknirsch@redhat.com> - 2.0.14-1
|
||||
- Fixed several specfile problems (#453751)
|
||||
- Update to OpenIPMI-2.0.14
|
||||
|
||||
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.0.13-2
|
||||
- Autorebuild for GCC 4.3
|
||||
|
||||
* Wed Dec 05 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.13-1
|
||||
- Updated to OpenIPMI-2.0.13
|
||||
- Rebuild due to new openssl
|
||||
|
||||
* Wed Oct 10 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.11-3
|
||||
- Added missing perl-devel buildrequires
|
||||
|
||||
* Mon Sep 24 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.11-2
|
||||
- Added missing popt-devel buildrequires
|
||||
|
||||
* Fri Aug 17 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.11-2
|
||||
- Fix rebuild problems due to glibc change
|
||||
- License review and fixes
|
||||
|
||||
* Tue Apr 24 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.11-1
|
||||
- Update to OpenIPMI-2.0.11
|
||||
|
||||
* Tue Feb 27 2007 Phil Knirsch <pknirsch@redhat.com> - 2.0.6-8
|
||||
- Update for ipmitool-1.8.9
|
||||
|
||||
* Thu Dec 7 2006 Jeremy Katz <katzj@redhat.com> - 2.0.6-7
|
||||
- rebuild for python 2.5
|
||||
|
||||
* Tue Nov 28 2006 Phil Knirsch <pknirsch@redhat.com> - 2.0.6-6.fc7
|
||||
- Update due to new net-snmp-5.4
|
||||
- Some specfile updates
|
||||
|
||||
* Tue Jul 18 2006 Phil Knirsch <pknirsch@redhat.com> - 2.0.6-5
|
||||
- Fixed check for udev in initscript (#197956)
|
||||
|
||||
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 2.0.6-4.1
|
||||
- rebuild
|
||||
|
||||
* Fri Jun 16 2006 Bill Nottingham <notting@redhat.com> 2.0.6-4
|
||||
- don't include <linux/compiler.h>
|
||||
|
||||
* Fri Jun 16 2006 Jon Masters <jcm@redhat.com> 2.0.6-3
|
||||
- Fix a build requires (needs glibc-kernheaders)
|
||||
|
||||
* Thu Jun 15 2006 Jesse Keating <jkeating@redhat.com> 2.0.6-2
|
||||
- Bump for new glib2
|
||||
|
||||
* Tue May 16 2006 Phil Knirsch <pknirsch@redhat.com> 2.0.6-1
|
||||
- Fixed bug with type conversion in ipmitool (#191091)
|
||||
- Added python bindings
|
||||
- Split off perl and python bindings in separate subpackages
|
||||
- Dropped obsolete patches
|
||||
- Added missing buildprereq on readline-devel
|
||||
- Made it install the python bindings properly on 64bit archs
|
||||
|
||||
* Mon May 15 2006 Phil Knirsch <pknirsch@redhat.com>
|
||||
- Updated ipmitool to 1.8.8
|
||||
- Updated OpenIPMI to 2.0.6
|
||||
|
||||
* Fri Feb 17 2006 Phil Knirsch <pknirsch@redhat.com> 1.4.14-19
|
||||
- Added missing PreReq for chkconfig
|
||||
|
||||
* Mon Feb 13 2006 Jesse Keating <jkeating@redhat.com> - 1.4.14-18.2.1
|
||||
- rebump for build order issues during double-long bump
|
||||
|
||||
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1.4.14-18.2
|
||||
- bump again for double-long bug on ppc(64)
|
||||
|
||||
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1.4.14-18.1
|
||||
- rebuilt for new gcc4.1 snapshot and glibc changes
|
||||
|
||||
* Mon Feb 06 2006 Phil Knirsch <pknirsch@redhat.com> 1.4.14-18
|
||||
- Updated ipmitool to latest upstream version.
|
||||
- Removed 3 patches for already fixed bugs in latest ipmitool.
|
||||
- Adapted warning message fix for ipmitool for latest version.
|
||||
|
||||
* Tue Jan 24 2006 Phil Knirsch <pknirsch@redhat.com> 1.4.14-17
|
||||
- Fixed some minor things in initscripts.
|
||||
|
||||
* Mon Jan 09 2006 Phil Knirsch <pknirsch@redhat.com> 1.4.14-16
|
||||
- Included FRU fix for displaying FRUs with ipmitool
|
||||
- Included patch for new option to specify a BMC password for IPMI 2.0 sessions
|
||||
|
||||
* Tue Jan 03 2006 Radek Vokal <rvokal@redhat.com> 1.4.14-15
|
||||
- Rebuilt against new libnetsnmp
|
||||
|
||||
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
|
||||
- rebuilt
|
||||
|
||||
* Wed Nov 23 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-14
|
||||
- Some more initscript and sysconfig updates from Dell.
|
||||
|
||||
* Wed Nov 09 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-13
|
||||
- Rebuilt to link against latest openssl libs.
|
||||
- Fixed ipmitool not setting session privilege level (#172312)
|
||||
|
||||
* Wed Nov 02 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-11
|
||||
- Rebuild to link against new net-snmp libs.
|
||||
|
||||
* Tue Oct 11 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-10
|
||||
- Updated initscript to fix missing redhat-lsb bug (#169901)
|
||||
|
||||
* Thu Sep 08 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-9
|
||||
- Another update to latest initscripts from Dell
|
||||
- Fixed some missing return statements for non-void functions (#164138)
|
||||
|
||||
* Thu Sep 01 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-8
|
||||
- Updated initscript to latest version from Dell
|
||||
|
||||
* Fri Aug 12 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-7
|
||||
- Fixed the unwanted output of failed module loading of the initscript. Behaves
|
||||
now like all our other initscripts (#165476)
|
||||
|
||||
* Fri Aug 05 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-6
|
||||
- Fixed build problem on 64bit machines
|
||||
|
||||
* Fri Jul 15 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-5
|
||||
- Fixed missing change to not autostart in the initscript
|
||||
|
||||
* Wed Jul 06 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-4
|
||||
- Made the initscript a replacing configfile
|
||||
|
||||
* Mon Jul 04 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-3
|
||||
- Updated versions of the initscripts and sysconf files
|
||||
- Fixed typo in preun script and changelog
|
||||
|
||||
* Mon Jun 27 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-2
|
||||
- Updated to OpenIPMI-1.4.14
|
||||
- Split the main package into normal and libs package for multilib support
|
||||
- Added ipmitool-1.8.2 to OpenIPMI and put it in tools package
|
||||
- Added sysconf and initscript (#158270)
|
||||
- Fixed oob subscripts (#149142)
|
||||
|
||||
* Wed Mar 30 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.11-5
|
||||
- Correctly put libs in the proper packages
|
||||
|
||||
* Thu Mar 17 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.11-4
|
||||
- gcc4 rebuild fixes
|
||||
- Added missing gdbm-devel buildprereq
|
||||
|
||||
* Wed Mar 02 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.11-3
|
||||
- bump release and rebuild with gcc 4
|
||||
|
||||
* Tue Feb 08 2005 Karsten Hopp <karsten@redhat.de> 1.4.11-2
|
||||
- update
|
||||
|
||||
* Tue Oct 26 2004 Phil Knirsch <pknirsch@redhat.com>
|
||||
- Initial version
|
12
ipmi.service
Normal file
12
ipmi.service
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=IPMI Driver
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/libexec/openipmi-helper start
|
||||
ExecStop=/usr/libexec/openipmi-helper stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
512
openipmi-helper
Normal file
512
openipmi-helper
Normal file
@ -0,0 +1,512 @@
|
||||
#!/bin/sh
|
||||
#############################################################################
|
||||
#
|
||||
# ipmi: OpenIPMI Driver helper script
|
||||
#
|
||||
# Authors: Jan Safranek <jsafrane@redhat.com>
|
||||
#
|
||||
# Based on IPMI init script by:
|
||||
# Matt Domsch <Matt_Domsch@dell.com>
|
||||
# Chris Poblete <Chris_Poblete@dell.com>
|
||||
#
|
||||
# Status return code bits
|
||||
# no bits set = no errors
|
||||
# bit 0 set = minimum modules aren't loaded
|
||||
# bit 1 set = requested feature module isn't loaded
|
||||
# bit 2 set = /dev/ipmi0 (or /dev/imb if using that instead) doesn't exist
|
||||
# bit 3 set = /dev/watchdog doesn't exist
|
||||
# bit 4 set = lockfile doesn't exist
|
||||
# bit 5 set = modules are loaded even when asked to be unloaded
|
||||
|
||||
CONFIGFILE=/etc/sysconfig/ipmi
|
||||
# source config info
|
||||
[ -r ${CONFIGFILE} ] && . ${CONFIGFILE}
|
||||
|
||||
#############################################################################
|
||||
# GLOBALS
|
||||
#############################################################################
|
||||
MODULE_NAME="ipmi"
|
||||
INTF_NUM=0
|
||||
|
||||
IPMI_SMB_MODULE_NAME="ipmi_smb"
|
||||
IPMI_SI_MODULE_NAME="ipmi_si"
|
||||
kernel=`uname -r | cut -d. -f1-2`
|
||||
if [ "${kernel}" == "2.4" ]; then
|
||||
IPMI_SMB_MODULE_NAME="ipmi_smb_intf"
|
||||
IPMI_SI_MODULE_NAME="ipmi_si_drv"
|
||||
fi
|
||||
|
||||
MODULES_INTERFACES=""
|
||||
[ "${DEV_IPMI}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_devintf"
|
||||
[ "${IPMI_IMB}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_imb"
|
||||
|
||||
MODULES_FEATURES=""
|
||||
[ "${IPMI_WATCHDOG}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_watchdog"
|
||||
[ "${IPMI_POWEROFF}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_poweroff"
|
||||
|
||||
MODULES_HW=""
|
||||
[ "${IPMI_SI}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SI_MODULE_NAME}"
|
||||
[ "${IPMI_SMB}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SMB_MODULE_NAME}"
|
||||
|
||||
MODULES_BASE="ipmi_msghandler"
|
||||
MODULES="${MODULES_INTERFACES} ${MODULES_FEATURES} ${MODULES_HW} ${MODULES_BASE}"
|
||||
|
||||
RETVAL=0
|
||||
LOCKFILE=/var/lock/subsys/ipmi
|
||||
DEV_IPMI_TIMEOUT=150
|
||||
|
||||
UDEV_EXISTS=0
|
||||
if [ -e /sbin/udev -o -e /sbin/udevd ]; then
|
||||
UDEV_EXISTS=1
|
||||
fi
|
||||
|
||||
#############################################################################
|
||||
# NOTES:
|
||||
# * /dev/ipmi0 is unconditionally deleted here on ipmi_devintf unload,
|
||||
# because SLES9 and RHEL4 kernels don't send a message for udev to delete
|
||||
# it for us.
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
modules_loaded_verbose()
|
||||
{
|
||||
OnePlusLoaded=0
|
||||
OnePlusUnloaded=0
|
||||
for m in $@; do
|
||||
if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
|
||||
echo "$m module loaded."
|
||||
OnePlusLoaded=1
|
||||
else
|
||||
echo "$m module not loaded."
|
||||
OnePlusUnloaded=1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
modules_loaded()
|
||||
{
|
||||
OnePlusLoaded=0
|
||||
OnePlusUnloaded=0
|
||||
for m in $@; do
|
||||
if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
|
||||
OnePlusLoaded=1
|
||||
else
|
||||
OnePlusUnloaded=1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
device_node_exists ()
|
||||
{
|
||||
if [ -e "$1" ]; then
|
||||
echo "$1 exists."
|
||||
return 1
|
||||
fi
|
||||
echo "$1 does not exist."
|
||||
return 0
|
||||
}
|
||||
|
||||
minimum_modules_loaded()
|
||||
{
|
||||
rc_base=1
|
||||
rc_hw=1
|
||||
modules_loaded_verbose "${MODULES_BASE}"
|
||||
[ ${OnePlusLoaded} -eq 0 ] && rc_base=0
|
||||
|
||||
modules_loaded_verbose "${MODULES_HW}"
|
||||
[ ${OnePlusLoaded} -eq 0 ] && rc_hw=0
|
||||
|
||||
return $((rc_base && rc_hw))
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
|
||||
load_si()
|
||||
{
|
||||
if [ "${IPMI_SI}" = "yes" ]; then
|
||||
modprobe ${IPMI_SI_MODULE_NAME} > /dev/null 2>&1
|
||||
modules_loaded ${IPMI_SI_MODULE_NAME}
|
||||
[ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
|
||||
fi
|
||||
}
|
||||
|
||||
load_smb()
|
||||
{
|
||||
if [ "${IPMI_SMB}" = "yes" ]; then
|
||||
modprobe ${IPMI_SMB_MODULE_NAME} > /dev/null 2>&1
|
||||
modules_loaded ${IPMI_SMB_MODULE_NAME}
|
||||
[ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
|
||||
fi
|
||||
}
|
||||
|
||||
load_hw_modules()
|
||||
{
|
||||
load_si
|
||||
load_smb
|
||||
}
|
||||
|
||||
start_watchdog_common()
|
||||
{
|
||||
load_hw_modules
|
||||
modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} > /dev/null 2>&1
|
||||
modules_loaded ipmi_watchdog
|
||||
[ ${OnePlusUnloaded} -ne 0 ] &&
|
||||
RETVAL=$((RETVAL | 2)) &&
|
||||
echo "Watchdog startup failed: cannot load ipmi_watchdog module" &&
|
||||
return
|
||||
if [ ${UDEV_EXISTS} -eq 0 -a ! -e /dev/watchdog ]; then
|
||||
mknod -m 0600 /dev/watchdog c 10 130
|
||||
[ $? -ne 0 ] &&
|
||||
RETVAL=$((RETVAL | 8)) &&
|
||||
echo "Watchdog startup failed: cannot create /dev/watchdog" &&
|
||||
return
|
||||
fi
|
||||
}
|
||||
|
||||
start_watchdog_quiet()
|
||||
{
|
||||
[ "${IPMI_WATCHDOG}" != "yes" ] &&
|
||||
return
|
||||
start_watchdog_common
|
||||
}
|
||||
|
||||
start_watchdog()
|
||||
{
|
||||
[ "${IPMI_WATCHDOG}" != "yes" ] &&
|
||||
RETVAL=$((RETVAL | 2)) &&
|
||||
echo "Watchdog not configured" &&
|
||||
return
|
||||
start_watchdog_common
|
||||
}
|
||||
|
||||
stop_watchdog()
|
||||
{
|
||||
modprobe -q -r ipmi_watchdog > /dev/null 2>&1
|
||||
modules_loaded ipmi_watchdog
|
||||
if [ ${OnePlusLoaded} -ne 0 ]; then
|
||||
RETVAL=$((RETVAL | 32))
|
||||
echo "Watchog shutdown failed: cannot unload ipmi_watchdog module"
|
||||
else
|
||||
if [ "${IPMI_WATCHDOG}" = "yes" ]; then
|
||||
[ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
stop_watchdog_quiet()
|
||||
{
|
||||
modprobe -q -r ipmi_watchdog > /dev/null 2>&1
|
||||
modules_loaded ipmi_watchdog
|
||||
if [ ${OnePlusLoaded} -ne 0 ]; then
|
||||
RETVAL=$((RETVAL | 32))
|
||||
else
|
||||
if [ "${IPMI_WATCHDOG}" = "yes" ]; then
|
||||
[ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
start_powercontrol_common()
|
||||
{
|
||||
local poweroff_opts=""
|
||||
load_hw_modules
|
||||
if [ "${IPMI_POWERCYCLE}" == "yes" ]; then
|
||||
modinfo ipmi_poweroff 2>/dev/null | grep poweroff_control > /dev/null 2>&1 && \
|
||||
poweroff_opts="poweroff_control=2"
|
||||
modinfo ipmi_poweroff 2>/dev/null | grep poweroff_powercycle > /dev/null 2>&1 && \
|
||||
poweroff_opts="poweroff_powercycle=1"
|
||||
fi
|
||||
modprobe ipmi_poweroff "${poweroff_opts}" > /dev/null 2>&1
|
||||
modules_loaded ipmi_poweroff
|
||||
[ ${OnePlusUnloaded} -ne 0 ] &&
|
||||
RETVAL=$((RETVAL | 2)) &&
|
||||
echo "Powercontroll startup failed: cannot load ipmi_poweroff module" &&
|
||||
return
|
||||
}
|
||||
|
||||
start_powercontrol_quiet()
|
||||
{
|
||||
[ "${IPMI_POWEROFF}" != "yes" ] &&
|
||||
return
|
||||
start_powercontrol_common
|
||||
}
|
||||
|
||||
start_powercontrol()
|
||||
{
|
||||
[ "${IPMI_POWEROFF}" != "yes" ] &&
|
||||
RETVAL=$((RETVAL | 2)) &&
|
||||
echo "Powercontroll not configured" &&
|
||||
return
|
||||
start_powercontrol_common
|
||||
}
|
||||
|
||||
stop_powercontrol()
|
||||
{
|
||||
modprobe -q -r ipmi_poweroff > /dev/null 2>&1
|
||||
modules_loaded ipmi_poweroff
|
||||
if [ ${OnePlusLoaded} -ne 0 ]; then
|
||||
RETVAL=$((RETVAL | 32))
|
||||
echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module"
|
||||
fi
|
||||
}
|
||||
|
||||
stop_powercontrol_quiet()
|
||||
{
|
||||
modprobe -q -r ipmi_poweroff > /dev/null 2>&1
|
||||
modules_loaded ipmi_poweroff
|
||||
[ ${OnePlusLoaded} -ne 0 ] && RETVAL=$((RETVAL | 32))
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
unload_all_ipmi_modules()
|
||||
{
|
||||
stop_watchdog_quiet
|
||||
stop_powercontrol_quiet
|
||||
for m in ${MODULES}; do
|
||||
modprobe -q -r ${m} > /dev/null 2>&1
|
||||
done
|
||||
# delete interface node ONLY if ipmi_devintf is unloaded
|
||||
[ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
|
||||
rm -f "/dev/ipmi${INTF_NUM}"
|
||||
}
|
||||
|
||||
unload_ipmi_modules_leave_features()
|
||||
{
|
||||
for m in ${MODULES_INTERFACES}; do
|
||||
modprobe -q -r ${m} > /dev/null 2>&1
|
||||
done
|
||||
# delete interface node ONLY if ipmi_devintf is unloaded
|
||||
[ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
|
||||
rm -f "/dev/ipmi${INTF_NUM}"
|
||||
lsmod | egrep -q "ipmi_(poweroff|watchdog)" > /dev/null 2>&1
|
||||
if [ "$?" -ne "0" ]; then
|
||||
stop_watchdog_quiet
|
||||
stop_powercontrol_quiet
|
||||
for m in ${MODULES}; do
|
||||
modprobe -q -r ${m} > /dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
load_ipmi_modules ()
|
||||
{
|
||||
local locdelay
|
||||
modprobe ipmi_msghandler > /dev/null 2>&1
|
||||
modules_loaded ipmi_msghandler
|
||||
[ ${OnePlusLoaded} -ne 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
|
||||
load_hw_modules
|
||||
[ $((RETVAL & 1)) -eq 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
|
||||
|
||||
if [ "${DEV_IPMI}" = "yes" ]; then
|
||||
modprobe ipmi_devintf > /dev/null 2>&1
|
||||
modules_loaded ipmi_devintf
|
||||
RETVAL=$((RETVAL & ~2))
|
||||
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
|
||||
if [ ${OnePlusLoaded} -eq 1 ]; then
|
||||
if [ ${UDEV_EXISTS} -eq 0 ]; then
|
||||
DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'`
|
||||
rm -f /dev/ipmi${INTF_NUM}
|
||||
mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
|
||||
fi
|
||||
|
||||
# udev can take several seconds to create /dev/ipmi0,
|
||||
# but it happens asynchronously, so delay here
|
||||
locdelay=${DEV_IPMI_TIMEOUT}
|
||||
while [ ! -e /dev/ipmi${INTF_NUM} -a ${locdelay} -gt 0 ]; do
|
||||
locdelay=$((locdelay - 1))
|
||||
sleep 0.1
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${IPMI_IMB}" = "yes" ]; then
|
||||
modprobe ipmi_imb > /dev/null 2>&1
|
||||
modules_loaded ipmi_imb
|
||||
RETVAL=$((RETVAL & ~2))
|
||||
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
|
||||
if [ ${OnePlusLoaded} -eq 1 ]; then
|
||||
DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'`
|
||||
rm -f /dev/imb
|
||||
mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
|
||||
fi
|
||||
fi
|
||||
|
||||
# Per Corey Minyard, essentially no one uses ipmi_radisys
|
||||
# and we don't want to encourage its further use
|
||||
# so it won't be handled here.
|
||||
return
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
start()
|
||||
{
|
||||
load_ipmi_modules
|
||||
if [ ${RETVAL} -eq 0 ]; then
|
||||
touch ${LOCKFILE}
|
||||
else
|
||||
if [ $((RETVAL & 1)) -eq 1 ]; then
|
||||
echo "Startup failed."
|
||||
else
|
||||
touch ${LOCKFILE} && echo "Warning!?"
|
||||
fi
|
||||
fi
|
||||
start_watchdog_quiet
|
||||
start_powercontrol_quiet
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
stop()
|
||||
{
|
||||
unload_ipmi_modules_leave_features
|
||||
modules_loaded ${MODULES_INTERFACES}
|
||||
if [ ${OnePlusLoaded} -ne 0 ]; then
|
||||
RETVAL=$((RETVAL | 32))
|
||||
echo "Shutdown failed, something may be in use"
|
||||
else
|
||||
rm -f ${LOCKFILE}
|
||||
fi
|
||||
}
|
||||
|
||||
stop_all()
|
||||
{
|
||||
unload_all_ipmi_modules
|
||||
modules_loaded ${MODULES}
|
||||
if [ ${OnePlusLoaded} -ne 0 ]; then
|
||||
RETVAL=$((RETVAL | 32))
|
||||
echo "Shutdown failed, something may be in use"
|
||||
else
|
||||
rm -f ${LOCKFILE}
|
||||
fi
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
restart()
|
||||
{
|
||||
stop_all
|
||||
RETVAL=0
|
||||
start
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
|
||||
reload()
|
||||
{
|
||||
stop_all
|
||||
RETVAL=0
|
||||
start
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
|
||||
status_all()
|
||||
{
|
||||
minimum_modules_loaded
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
|
||||
|
||||
modules_loaded_verbose ${MODULES_FEATURES} ${MODULES_INTERFACES}
|
||||
[ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2))
|
||||
|
||||
if [ "${DEV_IPMI}" = "yes" ]; then
|
||||
device_node_exists /dev/ipmi${INTF_NUM}
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
|
||||
fi
|
||||
|
||||
if [ "${IPMI_IMB}" = "yes" ]; then
|
||||
device_node_exists /dev/imb
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
|
||||
fi
|
||||
|
||||
if [ "${IPMI_WATCHDOG}" = "yes" ]; then
|
||||
device_node_exists /dev/watchdog
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
|
||||
fi
|
||||
|
||||
[ ! -e ${LOCKFILE} ] && RETVAL=$((RETVAL | 16))
|
||||
}
|
||||
|
||||
status()
|
||||
{
|
||||
minimum_modules_loaded
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
|
||||
|
||||
if [ "${DEV_IPMI}" = "yes" ]; then
|
||||
modules_loaded_verbose ipmi_devintf
|
||||
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
|
||||
|
||||
device_node_exists /dev/ipmi${INTF_NUM}
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
|
||||
fi
|
||||
|
||||
if [ "${IPMI_IMB}" = "yes" ]; then
|
||||
device_node_exists /dev/imb
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
|
||||
fi
|
||||
}
|
||||
|
||||
status_watchdog()
|
||||
{
|
||||
minimum_modules_loaded
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
|
||||
|
||||
modules_loaded_verbose ipmi_watchdog
|
||||
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
|
||||
|
||||
device_node_exists /dev/watchdog
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
|
||||
}
|
||||
|
||||
status_powercontrol()
|
||||
{
|
||||
minimum_modules_loaded
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
|
||||
|
||||
modules_loaded_verbose ipmi_powercontrol
|
||||
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
usage ()
|
||||
{
|
||||
echo $"Usage: $0 {start|stop|status" 1>&2
|
||||
echo $" restart|condrestart|try-restart|reload|force-reload" 1>&2
|
||||
echo $" start-watchdog|stop-watchdog|status-watchdog" 1>&2
|
||||
echo $" start-powercontrol|stop-powercontrol|status-powercontrol" 1>&2
|
||||
echo $" stop-all|status-all}" 1>&2
|
||||
RETVAL=2
|
||||
}
|
||||
|
||||
condrestart ()
|
||||
{
|
||||
[ -e ${LOCKFILE} ] && restart
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
# MAIN
|
||||
#############################################################################
|
||||
case "$1" in
|
||||
start) start ;;
|
||||
stop) stop ;;
|
||||
restart) restart ;;
|
||||
force-reload) reload ;;
|
||||
reload) reload ;;
|
||||
status) status ;;
|
||||
status-all) status_all ;;
|
||||
condrestart) condrestart ;;
|
||||
try-restart) condrestart ;;
|
||||
start-watchdog) start_watchdog ;;
|
||||
stop-watchdog) stop_watchdog ;;
|
||||
status-watchdog) status_watchdog ;;
|
||||
start-powercontrol) start_powercontrol ;;
|
||||
stop-powercontrol) stop_powercontrol ;;
|
||||
status-powercontrol) status_powercontrol ;;
|
||||
stop-all) stop_all ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
|
||||
exit ${RETVAL}
|
||||
|
||||
#############################################################################
|
||||
# end of file
|
||||
#############################################################################
|
||||
|
68
openipmi.sysconf
Normal file
68
openipmi.sysconf
Normal file
@ -0,0 +1,68 @@
|
||||
## Path: Hardware/IPMI
|
||||
## Description: Enable standard hardware interfaces (KCS, BT, SMIC)
|
||||
## Type: yesno
|
||||
## Default: "yes"
|
||||
## Config: ipmi
|
||||
# Enable standard hardware interfaces (KCS, BT, SMIC)
|
||||
# You probably want this enabled.
|
||||
IPMI_SI=yes
|
||||
|
||||
## Path: Hardware/IPMI
|
||||
## Description: Enable /dev/ipmi0 interface, used by ipmitool, ipmicmd,
|
||||
## Type: yesno
|
||||
## Default: "yes"
|
||||
## Config: ipmi
|
||||
# Enable /dev/ipmi0 interface, used by ipmitool, ipmicmd,
|
||||
# and other userspace IPMI-using applications.
|
||||
# You probably want this enabled.
|
||||
DEV_IPMI=yes
|
||||
|
||||
## Path: Hardware/IPMI
|
||||
## Description: Enable IPMI_WATCHDOG if you want the IPMI watchdog
|
||||
## Type: yesno
|
||||
## Default: "no"
|
||||
## Config: ipmi
|
||||
# Enable IPMI_WATCHDOG if you want the IPMI watchdog
|
||||
# to reboot the system if it hangs
|
||||
IPMI_WATCHDOG=no
|
||||
|
||||
## Path: Hardware/IPMI
|
||||
## Description: Watchdog options - modinfo ipmi_watchdog for details
|
||||
## Type: string
|
||||
## Default: "timeout=60"
|
||||
## Config: ipmi
|
||||
# Watchdog options - modinfo ipmi_watchdog for details
|
||||
# watchdog timeout value in seconds
|
||||
# as there is no userspace ping application that runs during shutdown,
|
||||
# be sure to give it enough time for any device drivers to
|
||||
# do their cleanup (e.g. megaraid cache flushes)
|
||||
# without the watchdog triggering prematurely
|
||||
IPMI_WATCHDOG_OPTIONS="timeout=60"
|
||||
|
||||
## Path: Hardware/IPMI
|
||||
## Description: Enable IPMI_POWEROFF if you want the IPMI poweroff module to be loaded.
|
||||
## Type: yesno
|
||||
## Default: "no"
|
||||
## Config: ipmi
|
||||
# Enable IPMI_POWEROFF if you want the IPMI
|
||||
# poweroff module to be loaded.
|
||||
IPMI_POWEROFF=no
|
||||
|
||||
## Path: Hardware/IPMI
|
||||
## Description: Enable IPMI_POWERCYCLE if you want the system to be power-cycled on reboot
|
||||
## Type: yesno
|
||||
## Default: "no"
|
||||
## Config: ipmi
|
||||
# Enable IPMI_POWERCYCLE if you want the system to be power-cycled (power
|
||||
# down, delay briefly, power on) rather than power off, on systems
|
||||
# that support such. IPMI_POWEROFF=yes is also required.
|
||||
IPMI_POWERCYCLE=no
|
||||
|
||||
## Path: Hardware/IPMI
|
||||
## Description: Enable "legacy" interfaces for applications
|
||||
## Type: yesno
|
||||
## Default: "no"
|
||||
## Config: ipmi
|
||||
# Enable "legacy" interfaces for applications
|
||||
# Intel IMB driver interface
|
||||
IPMI_IMB=no
|
870
restore-api-compatibility.patch
Normal file
870
restore-api-compatibility.patch
Normal file
@ -0,0 +1,870 @@
|
||||
diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am
|
||||
index 9326e3ea..192623f3 100644
|
||||
--- a/cmdlang/Makefile.am
|
||||
+++ b/cmdlang/Makefile.am
|
||||
@@ -2,8 +2,6 @@
|
||||
LIB_VERSION = 0.0.5
|
||||
LD_VERSION = 0:5:0
|
||||
|
||||
-noinst_HEADERS = cmdlang.h
|
||||
-
|
||||
AM_CFLAGS = -Wall -Wsign-compare -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/include \
|
||||
-DIPMI_CHECK_LOCKS $(GLIB_CFLAGS) \
|
||||
diff --git a/cmdlang/cmd_conn.c b/cmdlang/cmd_conn.c
|
||||
index cdd700b6..338e9c77 100644
|
||||
--- a/cmdlang/cmd_conn.c
|
||||
+++ b/cmdlang/cmd_conn.c
|
||||
@@ -38,7 +38,6 @@
|
||||
#include <stdio.h>
|
||||
#include <OpenIPMI/ipmiif.h>
|
||||
#include <OpenIPMI/ipmi_cmdlang.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
static void
|
||||
con_list_handler(ipmi_domain_t *domain, int conn, void *cb_data)
|
||||
diff --git a/cmdlang/cmd_control.c b/cmdlang/cmd_control.c
|
||||
index feefe73c..06cf1c27 100644
|
||||
--- a/cmdlang/cmd_control.c
|
||||
+++ b/cmdlang/cmd_control.c
|
||||
@@ -41,7 +41,6 @@
|
||||
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
static void
|
||||
control_list_handler(ipmi_entity_t *entity, ipmi_control_t *control,
|
||||
diff --git a/cmdlang/cmd_domain.c b/cmdlang/cmd_domain.c
|
||||
index dec5765d..0ca0b25d 100644
|
||||
--- a/cmdlang/cmd_domain.c
|
||||
+++ b/cmdlang/cmd_domain.c
|
||||
@@ -45,7 +45,6 @@
|
||||
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
/* Don't pollute the namespace iwth ipmi_fru_t. */
|
||||
void ipmi_cmdlang_dump_fru_info(ipmi_cmd_info_t *cmd_info, ipmi_fru_t *fru);
|
||||
diff --git a/cmdlang/cmd_entity.c b/cmdlang/cmd_entity.c
|
||||
index e88854ac..a5ad1475 100644
|
||||
--- a/cmdlang/cmd_entity.c
|
||||
+++ b/cmdlang/cmd_entity.c
|
||||
@@ -42,7 +42,6 @@
|
||||
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
/* Don't pollute the namespace iwth ipmi_fru_t. */
|
||||
void ipmi_cmdlang_dump_fru_info(ipmi_cmd_info_t *cmd_info, ipmi_fru_t *fru);
|
||||
diff --git a/cmdlang/cmd_fru.c b/cmdlang/cmd_fru.c
|
||||
index 5cc2a1ac..cea4b70c 100644
|
||||
--- a/cmdlang/cmd_fru.c
|
||||
+++ b/cmdlang/cmd_fru.c
|
||||
@@ -43,7 +43,6 @@
|
||||
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
/* Don't pollute the namespace iwth ipmi_fru_t. */
|
||||
void ipmi_cmdlang_dump_fru_info(ipmi_cmd_info_t *cmd_info, ipmi_fru_t *fru);
|
||||
diff --git a/cmdlang/cmd_lanparm.c b/cmdlang/cmd_lanparm.c
|
||||
index b6e86701..7afd7dd2 100644
|
||||
--- a/cmdlang/cmd_lanparm.c
|
||||
+++ b/cmdlang/cmd_lanparm.c
|
||||
@@ -44,7 +44,6 @@
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
#include <OpenIPMI/internal/locked_list.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
static locked_list_t *lancs;
|
||||
|
||||
diff --git a/cmdlang/cmd_mc.c b/cmdlang/cmd_mc.c
|
||||
index 645506e7..0a3f6440 100644
|
||||
--- a/cmdlang/cmd_mc.c
|
||||
+++ b/cmdlang/cmd_mc.c
|
||||
@@ -47,7 +47,6 @@
|
||||
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
static void
|
||||
mc_list_handler(ipmi_domain_t *domain, ipmi_mc_t *mc, void *cb_data)
|
||||
diff --git a/cmdlang/cmd_pef.c b/cmdlang/cmd_pef.c
|
||||
index c8503299..47ab2bd1 100644
|
||||
--- a/cmdlang/cmd_pef.c
|
||||
+++ b/cmdlang/cmd_pef.c
|
||||
@@ -44,7 +44,6 @@
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
#include <OpenIPMI/internal/locked_list.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
static locked_list_t *pefs;
|
||||
|
||||
diff --git a/cmdlang/cmd_pet.c b/cmdlang/cmd_pet.c
|
||||
index 5730159e..77d3f90d 100644
|
||||
--- a/cmdlang/cmd_pet.c
|
||||
+++ b/cmdlang/cmd_pet.c
|
||||
@@ -40,7 +40,6 @@
|
||||
#include <OpenIPMI/ipmi_pet.h>
|
||||
#include <OpenIPMI/ipmi_mc.h>
|
||||
#include <OpenIPMI/ipmi_cmdlang.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
|
||||
static void
|
||||
diff --git a/cmdlang/cmd_sel.c b/cmdlang/cmd_sel.c
|
||||
index 660f58a7..545b12f2 100644
|
||||
--- a/cmdlang/cmd_sel.c
|
||||
+++ b/cmdlang/cmd_sel.c
|
||||
@@ -42,7 +42,6 @@
|
||||
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
static int
|
||||
discrete_event_handler(ipmi_sensor_t *sensor,
|
||||
diff --git a/cmdlang/cmd_sensor.c b/cmdlang/cmd_sensor.c
|
||||
index a4abc77c..99b8a634 100644
|
||||
--- a/cmdlang/cmd_sensor.c
|
||||
+++ b/cmdlang/cmd_sensor.c
|
||||
@@ -41,7 +41,6 @@
|
||||
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
static void
|
||||
sensor_list_handler(ipmi_entity_t *entity, ipmi_sensor_t *sensor,
|
||||
diff --git a/cmdlang/cmd_solparm.c b/cmdlang/cmd_solparm.c
|
||||
index f584f8f3..df32c3f7 100644
|
||||
--- a/cmdlang/cmd_solparm.c
|
||||
+++ b/cmdlang/cmd_solparm.c
|
||||
@@ -44,7 +44,6 @@
|
||||
/* Internal includes, do not use in your programs */
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
#include <OpenIPMI/internal/locked_list.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
static locked_list_t *solcs;
|
||||
|
||||
diff --git a/cmdlang/cmdlang.c b/cmdlang/cmdlang.c
|
||||
index b690e24c..416fce7f 100644
|
||||
--- a/cmdlang/cmdlang.c
|
||||
+++ b/cmdlang/cmdlang.c
|
||||
@@ -54,7 +54,6 @@
|
||||
#include <OpenIPMI/internal/ipmi_locks.h>
|
||||
#include <OpenIPMI/internal/ipmi_malloc.h>
|
||||
#include <OpenIPMI/internal/winsock_compat.h>
|
||||
-#include "cmdlang.h"
|
||||
|
||||
/*
|
||||
* This is the value passed to a command handler.
|
||||
@@ -2480,6 +2479,8 @@ event_done(ipmi_cmdlang_t *cmdlang)
|
||||
ipmi_mem_free(cmdlang->errstr);
|
||||
} else if (ipmi_cmdlang_event_rpt) {
|
||||
ipmi_cmdlang_event_rpt(event);
|
||||
+ } else if (ipmi_cmdlang_report_event) {
|
||||
+ ipmi_cmdlang_report_event(event);
|
||||
}
|
||||
|
||||
if (cmdlang->objstr)
|
||||
diff --git a/cmdlang/cmdlang.h b/cmdlang/cmdlang.h
|
||||
deleted file mode 100644
|
||||
index 0758cb5d..00000000
|
||||
--- a/cmdlang/cmdlang.h
|
||||
+++ /dev/null
|
||||
@@ -1,43 +0,0 @@
|
||||
-/*
|
||||
- * cmdlang.h
|
||||
- *
|
||||
- * A command interpreter for OpenIPMI
|
||||
- *
|
||||
- * Author: MontaVista Software, Inc.
|
||||
- * Corey Minyard <minyard@mvista.com>
|
||||
- * source@mvista.com
|
||||
- *
|
||||
- * Copyright 2020 MontaVista Software Inc.
|
||||
- *
|
||||
- * This program is free software; you can redistribute it and/or
|
||||
- * modify it under the terms of the GNU Lesser General Public License
|
||||
- * as published by the Free Software Foundation; either version 2 of
|
||||
- * the License, or (at your option) any later version.
|
||||
- *
|
||||
- *
|
||||
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
- *
|
||||
- * You should have received a copy of the GNU Lesser General Public
|
||||
- * License along with this program; if not, write to the Free
|
||||
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
- */
|
||||
-
|
||||
-#ifndef CMDLANG_H
|
||||
-#define CMDLANG_H
|
||||
-
|
||||
-/* Used to log errors inside the cmdlang. */
|
||||
-void ipmi_cmdlang_global_err(char *objstr,
|
||||
- char *location,
|
||||
- char *errstr,
|
||||
- int errval);
|
||||
-
|
||||
-#endif /* CMDLANG_H */
|
||||
diff --git a/include/OpenIPMI/Makefile.am b/include/OpenIPMI/Makefile.am
|
||||
index 8e86afc8..644cc84a 100644
|
||||
--- a/include/OpenIPMI/Makefile.am
|
||||
+++ b/include/OpenIPMI/Makefile.am
|
||||
@@ -8,7 +8,7 @@ pkginclude_HEADERS = \
|
||||
ipmi_conn.h ipmi_lan.h ipmi_pet.h ipmi_ui.h \
|
||||
ipmi_debug.h ipmi_lanparm.h ipmi_picmg.h ipmi_string.h \
|
||||
ipmi_sol.h ipmi_solparm.h ipmi_tcl.h deprecator.h \
|
||||
- dllvisibility.h
|
||||
+ dllvisibility.h weaksyms.h
|
||||
|
||||
SUBDIRS = internal
|
||||
|
||||
diff --git a/include/OpenIPMI/ipmi_cmdlang.h b/include/OpenIPMI/ipmi_cmdlang.h
|
||||
index 80e5cb8a..682279e9 100644
|
||||
--- a/include/OpenIPMI/ipmi_cmdlang.h
|
||||
+++ b/include/OpenIPMI/ipmi_cmdlang.h
|
||||
@@ -35,6 +35,7 @@
|
||||
#define OPENIPMI_CMDLANG_H
|
||||
|
||||
#include <OpenIPMI/dllvisibility.h>
|
||||
+#include <OpenIPMI/weaksyms.h>
|
||||
#include <OpenIPMI/selector.h>
|
||||
#include <OpenIPMI/ipmi_bits.h>
|
||||
#include <OpenIPMI/ipmi_types.h>
|
||||
@@ -44,6 +45,14 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
+#ifdef BUILDING_IPMI_CMDLANG_DLL
|
||||
+ #define IPMI_CMDLANG_WEAK(ret, sym, decl) IPMI_WEAK_DLL(ret, sym, decl)
|
||||
+ #define IPMI_CMDLANG_WEAK_DEFAULT(ret, sym, decl) IPMI_WEAK_DLL_DEFAULT(ret, sym, decl)
|
||||
+#else
|
||||
+ #define IPMI_CMDLANG_WEAK(ret, sym, decl) IPMI_WEAK_USER(ret, sym, decl)
|
||||
+ #define IPMI_CMDLANG_WEAK_DEFAULT(ret, sym, decl) IPMI_WEAK_USER(ret, sym, decl)
|
||||
+#endif
|
||||
+
|
||||
#if defined _WIN32 || defined __CYGWIN__
|
||||
#ifdef BUILDING_IPMI_CMDLANG_DLL
|
||||
#ifdef __GNUC__
|
||||
@@ -427,10 +436,15 @@ extern void (*ipmi_cmdlang_err_rpt)(char *objstr,
|
||||
char *location,
|
||||
char *errstr,
|
||||
int errval);
|
||||
+IPMI_CMDLANG_WEAK_DEFAULT(void, ipmi_cmdlang_global_err, (char *objstr,
|
||||
+ char *location,
|
||||
+ char *errstr,
|
||||
+ int errval));
|
||||
|
||||
/* Supplied by the user to report events. */
|
||||
IPMI_CMDLANG_DLL_PUBLIC
|
||||
extern void (*ipmi_cmdlang_event_rpt)(ipmi_cmdlang_event_t *event);
|
||||
+IPMI_CMDLANG_WEAK(void, ipmi_cmdlang_report_event, (ipmi_cmdlang_event_t *event));
|
||||
|
||||
/* In callbacks, you must use these to lock the cmd_info structure. */
|
||||
IPMI_CMDLANG_DLL_PUBLIC
|
||||
diff --git a/include/OpenIPMI/ipmi_posix.h b/include/OpenIPMI/ipmi_posix.h
|
||||
index f3000eca..0d7e82ee 100644
|
||||
--- a/include/OpenIPMI/ipmi_posix.h
|
||||
+++ b/include/OpenIPMI/ipmi_posix.h
|
||||
@@ -43,6 +43,19 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
+/* These are the defined OS handlers for POSIX with and without
|
||||
+ threading. If you use these (and thus link with the OpenIPMIposix
|
||||
+ or OpenIPMIpthread libraries) you must provide posix_vlog(). It is
|
||||
+ not provided by the library. */
|
||||
+/* DEPRECATED - This should no longer be used, you should use the
|
||||
+ OS-handler function to set your log handler. If you do not supply
|
||||
+ your own os_vlog handler, logs will go to stderr. If you supply a
|
||||
+ posix_vlog handler and don't call set_log_handler in the OS handler,
|
||||
+ posix_vlog() will still be used. */
|
||||
+IPMI_SEL_WEAK(void, posix_vlog, (char *format,
|
||||
+ enum ipmi_log_type_e log_type,
|
||||
+ va_list ap));
|
||||
+
|
||||
/* Non-threaded os handler operations */
|
||||
|
||||
/**********************************************************************
|
||||
diff --git a/include/OpenIPMI/selector.h b/include/OpenIPMI/selector.h
|
||||
index ca1f7f9c..d803d9f4 100644
|
||||
--- a/include/OpenIPMI/selector.h
|
||||
+++ b/include/OpenIPMI/selector.h
|
||||
@@ -46,6 +46,14 @@
|
||||
typedef int sigset_t;
|
||||
#endif
|
||||
|
||||
+#include <OpenIPMI/weaksyms.h>
|
||||
+
|
||||
+#if defined BUILDING_IPMI_SELECTOR_DLL
|
||||
+ #define IPMI_SEL_WEAK(ret, sym, decl) IPMI_WEAK_DLL(ret, sym, decl)
|
||||
+#else
|
||||
+ #define IPMI_SEL_WEAK(ret, sym, decl) IPMI_WEAK_USER(ret, sym, decl)
|
||||
+#endif
|
||||
+
|
||||
#if defined _WIN32 || defined __CYGWIN__
|
||||
#ifdef BUILDING_IPMI_SELECTOR_DLL
|
||||
#ifdef __GNUC__
|
||||
diff --git a/include/OpenIPMI/weaksyms.h b/include/OpenIPMI/weaksyms.h
|
||||
new file mode 100644
|
||||
index 00000000..07004243
|
||||
--- /dev/null
|
||||
+++ b/include/OpenIPMI/weaksyms.h
|
||||
@@ -0,0 +1,80 @@
|
||||
+/*
|
||||
+ * weaksyms.h
|
||||
+ *
|
||||
+ * MontaVista IPMI weak symbol defines
|
||||
+ *
|
||||
+ * Author: MontaVista Software, Inc.
|
||||
+ * Corey Minyard <minyard@mvista.com>
|
||||
+ * source@mvista.com
|
||||
+ *
|
||||
+ * Copyright 2003,2004,2005 MontaVista Software Inc.
|
||||
+ *
|
||||
+ * This software is available to you under a choice of one of two
|
||||
+ * licenses. You may choose to be licensed under the terms of the GNU
|
||||
+ * Lesser General Public License (GPL) Version 2 or the modified BSD
|
||||
+ * license below. The following disclamer applies to both licenses:
|
||||
+ *
|
||||
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
+` * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
+ *
|
||||
+ * GNU Lesser General Public Licence
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public License
|
||||
+ * as published by the Free Software Foundation; either version 2 of
|
||||
+ * the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with this program; if not, write to the Free
|
||||
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
+ *
|
||||
+ * Modified BSD Licence
|
||||
+ *
|
||||
+ * Redistribution and use in source and binary forms, with or without
|
||||
+ * modification, are permitted provided that the following conditions
|
||||
+ * are met:
|
||||
+ *
|
||||
+ * 1. Redistributions of source code must retain the above copyright
|
||||
+ * notice, this list of conditions and the following disclaimer.
|
||||
+ * 2. Redistributions in binary form must reproduce the above
|
||||
+ * copyright notice, this list of conditions and the following
|
||||
+ * disclaimer in the documentation and/or other materials provided
|
||||
+ * with the distribution.
|
||||
+ * 3. The name of the author may not be used to endorse or promote
|
||||
+ * products derived from this software without specific prior
|
||||
+ * written permission.
|
||||
+ */
|
||||
+
|
||||
+#ifndef __WEAKSYMS_H
|
||||
+#define __WEAKSYMS_H
|
||||
+
|
||||
+#include <stddef.h>
|
||||
+
|
||||
+#if defined _WIN32 || defined __CYGWIN__
|
||||
+ // Calling back to user code not supported, set the weak symbol to NULL always.
|
||||
+ #define IPMI_WEAK_DLL(ret, sym, decl) static ret (*sym)decl = NULL
|
||||
+ // Weak symbol with a default value, do not set to zero
|
||||
+ #define IPMI_WEAK_DLL_DEFAULT(ret, sym, decl) ret sym decl
|
||||
+ #define IPMI_WEAK_USER(ret, sym, decl) // Nothing, omit the prototype
|
||||
+#else
|
||||
+ #ifdef __GNUC__
|
||||
+ #define IPMI_WEAK_DLL(ret, sym, decl) __attribute__ ((weak)) ret sym decl
|
||||
+ #define IPMI_WEAK_DLL_DEFAULT(ret, sym, decl) IPMI_WEAK_DLL(ret, sym, decl)
|
||||
+ #define IPMI_WEAK_USER(ret, sym, decl) ret sym decl
|
||||
+ #else
|
||||
+ // Weak symbol not supported as we can not generate #pragma nor _Pragma from cpp
|
||||
+ #define IPMI_WEAK_DLL(ret, sym, decl) static ret (*sym)decl = NULL
|
||||
+ #define IPMI_WEAK_DLL_DEFAULT(ret, sym, decl) ret sym decl
|
||||
+ #define IPMI_WEAK_USER(ret, sym, decl) // Nothing, omit the prototype
|
||||
+ #endif
|
||||
+#endif
|
||||
+
|
||||
+#endif /* __WEAKSYMS_H */
|
||||
diff --git a/lanserv/Makefile.am b/lanserv/Makefile.am
|
||||
index 371ec52d..e4409423 100644
|
||||
--- a/lanserv/Makefile.am
|
||||
+++ b/lanserv/Makefile.am
|
||||
@@ -30,7 +30,7 @@ bin_PROGRAMS = ipmi_sim $(IPMILAN_PROG)
|
||||
|
||||
noinst_PROGRAMS = ipmi_checksum
|
||||
|
||||
-noinst_HEADERS = emu.h bmc.h ipmi_sim.h sol.h
|
||||
+noinst_HEADERS = emu.h bmc.h ipmi_sim.h sol.h callback.h
|
||||
|
||||
libIPMIlanserv_la_SOURCES = lanserv_ipmi.c lanserv_asf.c priv_table.c \
|
||||
lanserv_oem_force.c lanserv_config.c config.c serv.c serial_ipmi.c \
|
||||
diff --git a/lanserv/OpenIPMI/Makefile.am b/lanserv/OpenIPMI/Makefile.am
|
||||
index 80fb44ea..f9fbf2cf 100644
|
||||
--- a/lanserv/OpenIPMI/Makefile.am
|
||||
+++ b/lanserv/OpenIPMI/Makefile.am
|
||||
@@ -1,3 +1,3 @@
|
||||
|
||||
pkginclude_HEADERS = lanserv.h serserv.h serv.h extcmd.h persist.h msg.h \
|
||||
- mcserv.h ipmbserv.h lanserv_dllvisibility.h
|
||||
+ mcserv.h ipmbserv.h lanserv_dllvisibility.h lanserv_weaksyms.h
|
||||
diff --git a/lanserv/OpenIPMI/lanserv.h b/lanserv/OpenIPMI/lanserv.h
|
||||
index 57ed757e..867f2741 100644
|
||||
--- a/lanserv/OpenIPMI/lanserv.h
|
||||
+++ b/lanserv/OpenIPMI/lanserv.h
|
||||
@@ -57,6 +57,7 @@
|
||||
#define __LANSERV_H
|
||||
|
||||
#include <OpenIPMI/lanserv_dllvisibility.h>
|
||||
+#include <OpenIPMI/lanserv_weaksyms.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
@@ -236,6 +237,8 @@ typedef struct ipmi_tick_handler_s {
|
||||
struct ipmi_tick_handler_s *next;
|
||||
} ipmi_tick_handler_t;
|
||||
|
||||
+IPMI_LANSERV_WEAK(void, ipmi_register_tick_handler, (ipmi_tick_handler_t *handler));
|
||||
+
|
||||
typedef struct oem_handlers_s
|
||||
{
|
||||
void *oem_data;
|
||||
diff --git a/lanserv/OpenIPMI/lanserv_weaksyms.h b/lanserv/OpenIPMI/lanserv_weaksyms.h
|
||||
new file mode 100644
|
||||
index 00000000..e68d6bd2
|
||||
--- /dev/null
|
||||
+++ b/lanserv/OpenIPMI/lanserv_weaksyms.h
|
||||
@@ -0,0 +1,67 @@
|
||||
+/*
|
||||
+ * lanserv.h
|
||||
+ *
|
||||
+ * MontaVista IPMI LAN server include file
|
||||
+ *
|
||||
+ * Author: MontaVista Software, Inc.
|
||||
+ * Corey Minyard <minyard@mvista.com>
|
||||
+ * source@mvista.com
|
||||
+ *
|
||||
+ * Copyright 2003,2004,2005 MontaVista Software Inc.
|
||||
+ *
|
||||
+ * This software is available to you under a choice of one of two
|
||||
+ * licenses. You may choose to be licensed under the terms of the GNU
|
||||
+ * Lesser General Public License (GPL) Version 2 or the modified BSD
|
||||
+ * license below. The following disclamer applies to both licenses:
|
||||
+ *
|
||||
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
+` * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
+ *
|
||||
+ * GNU Lesser General Public Licence
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public License
|
||||
+ * as published by the Free Software Foundation; either version 2 of
|
||||
+ * the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with this program; if not, write to the Free
|
||||
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
+ *
|
||||
+ * Modified BSD Licence
|
||||
+ *
|
||||
+ * Redistribution and use in source and binary forms, with or without
|
||||
+ * modification, are permitted provided that the following conditions
|
||||
+ * are met:
|
||||
+ *
|
||||
+ * 1. Redistributions of source code must retain the above copyright
|
||||
+ * notice, this list of conditions and the following disclaimer.
|
||||
+ * 2. Redistributions in binary form must reproduce the above
|
||||
+ * copyright notice, this list of conditions and the following
|
||||
+ * disclaimer in the documentation and/or other materials provided
|
||||
+ * with the distribution.
|
||||
+ * 3. The name of the author may not be used to endorse or promote
|
||||
+ * products derived from this software without specific prior
|
||||
+ * written permission.
|
||||
+ */
|
||||
+
|
||||
+#ifndef __LANSERV_WEAKSYMS_H
|
||||
+#define __LANSERV_WEAKSYMS_H
|
||||
+
|
||||
+#include <OpenIPMI/weaksyms.h>
|
||||
+
|
||||
+#if defined BUILDING_IPMI_LANSERV_DLL
|
||||
+ #define IPMI_LANSERV_WEAK(ret, sym, decl) IPMI_WEAK_DLL(ret, sym, decl)
|
||||
+#else
|
||||
+ #define IPMI_LANSERV_WEAK(ret, sym, decl) IPMI_WEAK_USER(ret, sym, decl)
|
||||
+#endif
|
||||
+
|
||||
+#endif /* __LANSERV_WEAKSYMS_H */
|
||||
diff --git a/lanserv/OpenIPMI/mcserv.h b/lanserv/OpenIPMI/mcserv.h
|
||||
index c2a04648..de8d1440 100644
|
||||
--- a/lanserv/OpenIPMI/mcserv.h
|
||||
+++ b/lanserv/OpenIPMI/mcserv.h
|
||||
@@ -84,6 +84,19 @@ void ipmi_mc_set_chassis_control_func(lmc_data_t *mc,
|
||||
void *cb_data),
|
||||
void *cb_data);
|
||||
|
||||
+IPMI_LANSERV_WEAK(int, ipmi_mc_alloc_unconfigured, (sys_data_t *sys, unsigned char ipmb,
|
||||
+ lmc_data_t **rmc));
|
||||
+
|
||||
+IPMI_LANSERV_WEAK(unsigned char, ipmi_mc_get_ipmb, (lmc_data_t *mc));
|
||||
+IPMI_LANSERV_WEAK(channel_t **, ipmi_mc_get_channelset, (lmc_data_t *mc));
|
||||
+IPMI_LANSERV_WEAK(ipmi_sol_t *, ipmi_mc_get_sol, (lmc_data_t *mc));
|
||||
+IPMI_LANSERV_WEAK(startcmd_t *, ipmi_mc_get_startcmdinfo, (lmc_data_t *mc));
|
||||
+IPMI_LANSERV_WEAK(user_t *, ipmi_mc_get_users, (lmc_data_t *mc));
|
||||
+IPMI_LANSERV_WEAK(pef_data_t *, ipmi_mc_get_pef, (lmc_data_t *mc));
|
||||
+
|
||||
+IPMI_LANSERV_WEAK(void, ipmi_resend_atn, (channel_t *chan));
|
||||
+IPMI_LANSERV_WEAK(msg_t *, ipmi_mc_get_next_recv_q, (channel_t *chan));
|
||||
+
|
||||
/*
|
||||
* FRUs have a semaphore that can be use to grant exclusive access.
|
||||
* The semaphore is attempted to get before read and write operations,
|
||||
@@ -165,6 +178,8 @@ int check_msg_length(msg_t *msg,
|
||||
unsigned int len,
|
||||
unsigned char *rdata,
|
||||
unsigned int *rdata_len);
|
||||
+IPMI_LANSERV_WEAK(void, ipmi_set_chassis_control_prog,
|
||||
+ (lmc_data_t *mc, const char *prog));
|
||||
|
||||
void ipmi_mc_set_dev_revision(lmc_data_t *mc, unsigned char dev_revision);
|
||||
void ipmi_mc_set_fw_revision(lmc_data_t *mc, unsigned char fw_revision_major,
|
||||
@@ -172,6 +187,10 @@ void ipmi_mc_set_fw_revision(lmc_data_t *mc, unsigned char fw_revision_major,
|
||||
void ipmi_mc_set_aux_fw_revision(lmc_data_t *mc,
|
||||
unsigned char aux_fw_revision[4]);
|
||||
const char *get_lanserv_version(void);
|
||||
+IPMI_LANSERV_WEAK(int, sol_read_config,
|
||||
+ (char **tokptr, sys_data_t *sys, const char **err));
|
||||
+
|
||||
+IPMI_LANSERV_WEAK(int, ipmi_mc_users_changed, (lmc_data_t *mc));
|
||||
|
||||
/*
|
||||
* Types and functions for registering handlers with the MC emulator.
|
||||
diff --git a/lanserv/callback.h b/lanserv/callback.h
|
||||
new file mode 100644
|
||||
index 00000000..eb9f18fa
|
||||
--- /dev/null
|
||||
+++ b/lanserv/callback.h
|
||||
@@ -0,0 +1,68 @@
|
||||
+/*
|
||||
+ * callback.h
|
||||
+ *
|
||||
+ * MontaVista IPMI LAN server include file
|
||||
+ *
|
||||
+ * Author: MontaVista Software, Inc.
|
||||
+ * Corey Minyard <minyard@mvista.com>
|
||||
+ * source@mvista.com
|
||||
+ *
|
||||
+ * Copyright 2003,2004,2005 MontaVista Software Inc.
|
||||
+ *
|
||||
+ * This software is available to you under a choice of one of two
|
||||
+ * licenses. You may choose to be licensed under the terms of the GNU
|
||||
+ * Lesser General Public License (GPL) Version 2 or the modified BSD
|
||||
+ * license below. The following disclamer applies to both licenses:
|
||||
+ *
|
||||
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
+` * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
+ *
|
||||
+ * GNU Lesser General Public Licence
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public License
|
||||
+ * as published by the Free Software Foundation; either version 2 of
|
||||
+ * the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with this program; if not, write to the Free
|
||||
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
+ *
|
||||
+ * Modified BSD Licence
|
||||
+ *
|
||||
+ * Redistribution and use in source and binary forms, with or without
|
||||
+ * modification, are permitted provided that the following conditions
|
||||
+ * are met:
|
||||
+ *
|
||||
+ * 1. Redistributions of source code must retain the above copyright
|
||||
+ * notice, this list of conditions and the following disclaimer.
|
||||
+ * 2. Redistributions in binary form must reproduce the above
|
||||
+ * copyright notice, this list of conditions and the following
|
||||
+ * disclaimer in the documentation and/or other materials provided
|
||||
+ * with the distribution.
|
||||
+ * 3. The name of the author may not be used to endorse or promote
|
||||
+ * products derived from this software without specific prior
|
||||
+ * written permission.
|
||||
+ */
|
||||
+
|
||||
+#ifndef __CALLBACK_H
|
||||
+#define __CALLBACK_H
|
||||
+
|
||||
+/*
|
||||
+ * Macros to get callbacks that exist either as function pointers in some structure
|
||||
+ * or as functions in user code.
|
||||
+ * Pointers take precedence, functions exist for backward compatibility.
|
||||
+ */
|
||||
+
|
||||
+#define LANSERV_CB(obj, field, name) ( (obj)->field ? (obj)->field : (name) )
|
||||
+#define LANSERV_CB_IPMI(obj, name) LANSERV_CB(obj, name, ipmi_ ## name)
|
||||
+
|
||||
+#endif /* __CALLBACK_H */
|
||||
diff --git a/lanserv/config.c b/lanserv/config.c
|
||||
index 453750eb..d59e93fe 100644
|
||||
--- a/lanserv/config.c
|
||||
+++ b/lanserv/config.c
|
||||
@@ -65,6 +65,9 @@
|
||||
#include <OpenIPMI/serserv.h>
|
||||
#include <OpenIPMI/ipmbserv.h>
|
||||
#include <OpenIPMI/persist.h>
|
||||
+#include <OpenIPMI/mcserv.h>
|
||||
+
|
||||
+#include "callback.h"
|
||||
|
||||
void
|
||||
read_persist_users(sys_data_t *sys)
|
||||
@@ -80,11 +83,11 @@ read_persist_users(sys_data_t *sys)
|
||||
if (!mc)
|
||||
continue;
|
||||
|
||||
- p = read_persist("users.mc%2.2x", sys->mc_get_ipmb(mc));
|
||||
+ p = read_persist("users.mc%2.2x", LANSERV_CB_IPMI(sys, mc_get_ipmb)(mc));
|
||||
if (!p)
|
||||
continue;
|
||||
|
||||
- users = sys->mc_get_users(mc);
|
||||
+ users = LANSERV_CB_IPMI(sys, mc_get_users)(mc);
|
||||
for (j = 0; j <= MAX_USERS; j++) {
|
||||
void *data;
|
||||
unsigned int len;
|
||||
@@ -124,14 +127,14 @@ write_persist_users(sys_data_t *sys)
|
||||
user_t *users;
|
||||
persist_t *p;
|
||||
|
||||
- if (!mc || !sys->mc_users_changed(mc))
|
||||
+ if (!mc || !LANSERV_CB_IPMI(sys, mc_users_changed)(mc))
|
||||
continue;
|
||||
|
||||
- p = alloc_persist("users.mc%2.2x", sys->mc_get_ipmb(mc));
|
||||
+ p = alloc_persist("users.mc%2.2x", LANSERV_CB_IPMI(sys, mc_get_ipmb)(mc));
|
||||
if (!p)
|
||||
return ENOMEM;
|
||||
|
||||
- users = sys->mc_get_users(mc);
|
||||
+ users = LANSERV_CB_IPMI(sys, mc_get_users)(mc);
|
||||
for (j = 0; j <= MAX_USERS; j++) {
|
||||
add_persist_int(p, users[j].valid, "%d.valid", j);
|
||||
add_persist_int(p, users[j].link_auth, "%d.link_auth", j);
|
||||
@@ -834,12 +837,13 @@ read_config(sys_data_t *sys,
|
||||
} else if (strcmp(tok, "serial") == 0) {
|
||||
err = serserv_read_config(&tokptr, sys, &errstr);
|
||||
} else if (strcmp(tok, "sol") == 0) {
|
||||
- err = sys->sol_read_config(&tokptr, sys, &errstr);
|
||||
+ err = LANSERV_CB(sys, sol_read_config, sol_read_config)
|
||||
+ (&tokptr, sys, &errstr);
|
||||
} else if (strcmp(tok, "chassis_control") == 0) {
|
||||
char *prog;
|
||||
err = get_delim_str(&tokptr, &prog, &errstr);
|
||||
if (!err)
|
||||
- sys->set_chassis_control_prog(sys->mc, prog);
|
||||
+ LANSERV_CB_IPMI(sys, set_chassis_control_prog)(sys->mc, prog);
|
||||
} else if (strcmp(tok, "name") == 0) {
|
||||
err = get_delim_str(&tokptr, &sys->name, &errstr);
|
||||
} else if (strcmp(tok, "startcmd") == 0) {
|
||||
@@ -860,7 +864,7 @@ read_config(sys_data_t *sys,
|
||||
err = get_uchar(&tokptr, &ipmb, &errstr);
|
||||
if (!err) {
|
||||
lmc_data_t *mc;
|
||||
- err = sys->mc_alloc_unconfigured(sys, ipmb, &mc);
|
||||
+ err = LANSERV_CB_IPMI(sys, mc_alloc_unconfigured)(sys, ipmb, &mc);
|
||||
if (err == ENOMEM) {
|
||||
errstr = "Out of memory";
|
||||
err = -1;
|
||||
@@ -869,11 +873,11 @@ read_config(sys_data_t *sys,
|
||||
err = -1;
|
||||
} else {
|
||||
sys->mc = mc;
|
||||
- sys->cusers = sys->mc_get_users(mc);
|
||||
- sys->chan_set = sys->mc_get_channelset(mc);
|
||||
- sys->cpef = sys->mc_get_pef(mc);
|
||||
- sys->startcmd = sys->mc_get_startcmdinfo(mc);
|
||||
- sys->sol = sys->mc_get_sol(mc);
|
||||
+ sys->cusers = LANSERV_CB_IPMI(sys, mc_get_users)(mc);
|
||||
+ sys->chan_set = LANSERV_CB_IPMI(sys, mc_get_channelset)(mc);
|
||||
+ sys->cpef = LANSERV_CB_IPMI(sys, mc_get_pef)(mc);
|
||||
+ sys->startcmd = LANSERV_CB_IPMI(sys, mc_get_startcmdinfo)(mc);
|
||||
+ sys->sol = LANSERV_CB_IPMI(sys, mc_get_sol)(mc);
|
||||
}
|
||||
}
|
||||
} else if (strcmp(tok, "console") == 0) {
|
||||
diff --git a/lanserv/lanserv_ipmi.c b/lanserv/lanserv_ipmi.c
|
||||
index ccd60015..c3c2cdbe 100644
|
||||
--- a/lanserv/lanserv_ipmi.c
|
||||
+++ b/lanserv/lanserv_ipmi.c
|
||||
@@ -73,6 +73,9 @@
|
||||
|
||||
#include <OpenIPMI/persist.h>
|
||||
#include <OpenIPMI/extcmd.h>
|
||||
+#include <OpenIPMI/mcserv.h>
|
||||
+
|
||||
+#include "callback.h"
|
||||
|
||||
static int
|
||||
is_authval_null(uint8_t *val)
|
||||
@@ -512,7 +515,7 @@ lan_return_rsp(channel_t *chan, msg_t *msg, rsp_msg_t *rsp)
|
||||
|
||||
return_rsp(lan, msg, NULL, rsp);
|
||||
|
||||
- msg = lan->sysinfo->mc_get_next_recv_q(chan);
|
||||
+ msg = LANSERV_CB_IPMI(lan->sysinfo, mc_get_next_recv_q)(chan);
|
||||
if (!msg)
|
||||
return;
|
||||
while (msg) {
|
||||
@@ -531,7 +534,7 @@ lan_return_rsp(channel_t *chan, msg_t *msg, rsp_msg_t *rsp)
|
||||
|
||||
chan->free(chan, msg);
|
||||
|
||||
- msg = lan->sysinfo->mc_get_next_recv_q(chan);
|
||||
+ msg = LANSERV_CB_IPMI(lan->sysinfo, mc_get_next_recv_q)(chan);
|
||||
}
|
||||
if (chan->recv_in_q)
|
||||
chan->recv_in_q(chan, 0);
|
||||
@@ -729,7 +732,7 @@ handle_get_channel_cipher_suites(lanserv_data_t *lan, msg_t *msg)
|
||||
if (chan == 0xe)
|
||||
chan = lan->channel.channel_num;
|
||||
|
||||
- channels = lan->sysinfo->mc_get_channelset(lan->channel.mc);
|
||||
+ channels = LANSERV_CB_IPMI(lan->sysinfo, mc_get_channelset)(lan->channel.mc);
|
||||
channel = channels[chan];
|
||||
if (!channel) {
|
||||
return_err(lan, msg, NULL, IPMI_NOT_PRESENT_CC);
|
||||
@@ -3202,7 +3205,7 @@ ipmi_lan_init(lanserv_data_t *lan)
|
||||
|
||||
lan->tick_handler.handler = ipmi_lan_tick;
|
||||
lan->tick_handler.info = lan;
|
||||
- lan->sysinfo->register_tick_handler(&lan->tick_handler);
|
||||
+ LANSERV_CB_IPMI(lan->sysinfo, register_tick_handler)(&lan->tick_handler);
|
||||
|
||||
out:
|
||||
return rv;
|
||||
diff --git a/lanserv/marvell-bmc/marvell_mod.c b/lanserv/marvell-bmc/marvell_mod.c
|
||||
index b5b15e05..41a07b5c 100644
|
||||
--- a/lanserv/marvell-bmc/marvell_mod.c
|
||||
+++ b/lanserv/marvell-bmc/marvell_mod.c
|
||||
@@ -72,6 +72,7 @@
|
||||
#include <OpenIPMI/lanserv.h>
|
||||
#include <OpenIPMI/mcserv.h>
|
||||
|
||||
+#include "callback.h"
|
||||
#include "wiw.h"
|
||||
|
||||
#define PVERSION "2.0.12"
|
||||
@@ -3052,7 +3053,7 @@ ipmi_sim_module_init(sys_data_t *sys, const char *initstr_i)
|
||||
}
|
||||
}
|
||||
|
||||
- rv = sys->mc_alloc_unconfigured(sys, 0x20, &bmc_mc);
|
||||
+ rv = LANSERV_CB_IPMI(sys, mc_alloc_unconfigured)(sys, 0x20, &bmc_mc);
|
||||
if (rv) {
|
||||
sys->log(sys, OS_ERROR, NULL,
|
||||
"Unable to allocate an mc: %s", strerror(rv));
|
||||
@@ -3099,7 +3100,7 @@ ipmi_sim_module_init(sys_data_t *sys, const char *initstr_i)
|
||||
}
|
||||
}
|
||||
|
||||
- rv = sys->mc_alloc_unconfigured(sys, board_ipmb[num], &mc);
|
||||
+ rv = LANSERV_CB_IPMI(sys, mc_alloc_unconfigured)(sys, board_ipmb[num], &mc);
|
||||
if (rv) {
|
||||
sys->log(sys, OS_ERROR, NULL,
|
||||
"Unable to allocate an mc: %s", strerror(rv));
|
||||
@@ -3285,7 +3286,7 @@ ipmi_sim_module_post_init(sys_data_t *sys)
|
||||
*/
|
||||
unsigned char data[13];
|
||||
memset(data, 0, sizeof(data));
|
||||
- data[4] = sys->mc_get_ipmb(bmc_mc);
|
||||
+ data[4] = LANSERV_CB_IPMI(sys, mc_get_ipmb)(bmc_mc);
|
||||
data[5] = 0; /* LUN */
|
||||
data[6] = 0x04; /* Event message revision for IPMI 1.5. */
|
||||
data[7] = 0x1d; /* System boot initiated. */
|
||||
diff --git a/lanserv/serial_ipmi.c b/lanserv/serial_ipmi.c
|
||||
index 8ba8f7d0..b7255341 100644
|
||||
--- a/lanserv/serial_ipmi.c
|
||||
+++ b/lanserv/serial_ipmi.c
|
||||
@@ -63,6 +63,7 @@
|
||||
#include <OpenIPMI/ipmi_mc.h>
|
||||
#include <OpenIPMI/ipmi_msgbits.h>
|
||||
#include <OpenIPMI/serserv.h>
|
||||
+#include <OpenIPMI/mcserv.h>
|
||||
|
||||
#define EVENT_BUFFER_GLOBAL_ENABLE (1 << 2)
|
||||
#define EVENT_LOG_GLOBAL_ENABLE (1 << 3)
|
||||
@@ -1008,6 +1009,8 @@ vm_connected(serserv_data_t *si)
|
||||
si->connected = 1;
|
||||
if (si->sysinfo->resend_atn)
|
||||
si->sysinfo->resend_atn(&si->channel);
|
||||
+ else if (ipmi_resend_atn)
|
||||
+ ipmi_resend_atn(&si->channel);
|
||||
}
|
||||
|
||||
static void
|
||||
diff --git a/unix/posix_os_hnd.c b/unix/posix_os_hnd.c
|
||||
index f84ba270..54910c4b 100644
|
||||
--- a/unix/posix_os_hnd.c
|
||||
+++ b/unix/posix_os_hnd.c
|
||||
@@ -376,6 +376,8 @@ sposix_vlog(os_handler_t *handler,
|
||||
|
||||
if (log_handler)
|
||||
log_handler(handler, format, log_type, ap);
|
||||
+ else if (posix_vlog)
|
||||
+ posix_vlog((char *) format, log_type, ap);
|
||||
else
|
||||
default_vlog(format, log_type, ap);
|
||||
}
|
||||
diff --git a/unix/posix_thread_os_hnd.c b/unix/posix_thread_os_hnd.c
|
||||
index cb315c5e..3bec32f6 100644
|
||||
--- a/unix/posix_thread_os_hnd.c
|
||||
+++ b/unix/posix_thread_os_hnd.c
|
||||
@@ -377,6 +377,8 @@ sposix_vlog(os_handler_t *handler,
|
||||
|
||||
if (log_handler)
|
||||
log_handler(handler, format, log_type, ap);
|
||||
+ else if (posix_vlog)
|
||||
+ posix_vlog((char *) format, log_type, ap);
|
||||
else
|
||||
default_vlog(format, log_type, ap);
|
||||
}
|
Loading…
Reference in New Issue
Block a user