2122 Commits

Author SHA1 Message Date
Bing-Hua Wang
4d4f29f0b6 sel: Remove redundant "Reserve SEL"
There is no need to reserve SEL when doing "sel list" and "sel get"
since we don't do partial get in both commands, and we didn't even use
the reservation ID returned by "Reserve SEL".

Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2022-02-07 14:35:28 +03:00
Patrick Venture
5ac7f6a54e zero initialize the recv structure on the stack
Zero initialize the recv structure used by openipmi_read().
2022-02-05 23:55:26 +03:00
Patrick Venture
a24a512bdd zero initialize the recv structure on the stack
This was caught via a sanitized build where the recv was used with stack data in some cases.
2022-02-05 23:40:08 +03:00
Alexander Amelkin
39ca56bf33 ci: Add support for MacOS-11
GitHub has made macos-11 virtual environment available.
Enable it for ipmitool.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-11-03 16:30:34 +03:00
Alexander Amelkin
08151adef3 ci: Remove ubuntu-16.04 support
GitHub has removed support for ubuntu 16.04 virtual environment
since Sep 20, 2021. We just follow.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-11-03 16:30:34 +03:00
jason63716
86ef8fb091 sdr: Fix modifier unit
Previously instead of the modifier unit, the base unit was printed.
2021-11-03 16:04:41 +03:00
Patrick Huesmann
66cda7e18f Fix compile error
Signed-off-by: Patrick Huesmann <info@patrick-huesmann.de>
2021-09-15 16:39:55 +03:00
Patrick Huesmann
15418696ea Refactor bridging level detection to dedicated function
Signed-off-by: Patrick Huesmann <info@patrick-huesmann.de>
2021-09-15 16:39:55 +03:00
Patrick Huesmann
7c47cf75f4 Fix double bridge detection in get_max_(req|rsp)_data_size()
Signed-off-by: Patrick Huesmann <info@patrick-huesmann.de>
2021-09-15 16:39:55 +03:00
Lei YU
b7adc1dcaf ipmi_mc: Fix the IPM_DEV_FWREV1_MAJOR_MASK
The IPM_DEV_FWREV1_MAJOR_MASK was incorrectly defined as 0x3F.
The spec indicates that the major firmware revision has 0~6 valid bits,
so the mask shall be 0x7F.

Tested: Verify a BMC that has a major version that is large than 0x3F,
        and ipmitool shows the correct major version.

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
2021-07-14 15:27:00 +03:00
Josef Möllers
11c7605c0d helper: Fix stderr file descriptor
The third file descriptor is STDERR_FILENO, not STDOUT_FILENO
2021-06-22 23:55:49 +03:00
Thomas Renninger
5cf436056f Fix codefactor-io / CodeFactor warnings
Use $(...) notation instead of legacy backticked `...`. (SC2006)
2021-06-22 23:45:59 +03:00
Thomas Renninger
cdac4e07f7 Use /run instead of /var/run
In FHS 3.0, /var/run is replaced by /run:

https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05s13.html
2021-06-22 23:45:59 +03:00
Alexander Amelkin
cd57365fc4
oem: Update product IDs for YADRO
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-06-18 17:45:28 +03:00
Alexander Amelkin
351dad24a2 lan: Add processing of get/set specific CCs
Both 'Set/Get LAN Configuration Parameter' commands may return
command-specific codes that weren't properly parsed and were
reported as 'Unknown' before. This is fixed now.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-06-15 21:12:49 +03:00
Alexander Amelkin
fb47ae8d7c lan: Refactor pointer style
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-06-15 21:12:49 +03:00
Thomas Abraham
50479484a2 doc: update lanplus doc to reflect default cipher suite change
Modify the documentation to reflect commit 7772254b ("lanplus: Auto-select
'best' cipher suite available") which changed the default cipher suite for
lanplus from 3 to 17
2021-06-06 18:57:38 +03:00
Alexander Amelkin
9a1c0e68ba
ekanalyzer: Fix internal use area off-by-one bug
The length of internal use area printed by ekanalyzer
didn't take in account the version byte.
The data printed was also 1 byte longer than needed.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-05-21 02:39:16 +03:00
Alexander Amelkin
1f429f1ed7 ekanalyzer frushow: Fix internal area size calc
When there was no chassis and board areas, the internal use
are size was calculated incorrectly.

Additionally, it is possible that the internal area is actually
located after all other areas or that areas are arranged in
a different order than their offsets in the header. All those
cases weren't properly handled.

Now that is fixed.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-05-21 01:16:16 +03:00
Alexander Amelkin
59b7d6cf8f sel: Fix "power supply inactive" flag offset
There was a wrong offset for the "Power Supply Inactive" flag,
hence the trigger on this event type could not be set.

Resolves ipmitool/ipmitool#280

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-27 08:36:58 +03:00
Alexander Amelkin
6b1ce6c1ac ci: Add support for Ubuntu 20.04
- Add ubuntu-20.04 target
- Disable building of Solaris-specific `bmc` interface on Ubuntu
- Rename `ubuntu` matrix to `linux`

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Alexander Amelkin
6a3ded7333 ci: Fix Ubuntu builds
GitHub machines sometimes aren't immediately updated after
Ubuntu repos update. That leads to failed CI builds due
to inability to install some packages.

Add a call to `apt update` to update the package database
before installing anything.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Alexander Amelkin
61bb233c5b Fix compiler warning
Move #ifdef from the inside to the outside of assert()'s
to get rid of this compiler warning:

warning: embedding a directive within macro arguments has undefined
behavior [-Wembedded-directive]

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Alexander Amelkin
fb176a1995 Fix compiler warning
Drop some unused variables detected by the compiler

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Alexander Amelkin
d88bbf3c41 Fix compiler warning
Refactor plugin ipmi_intf structure initialization for some
plugins to stop the compiler complaining like this:

warning: use of GNU old-style field designator
extension [-Wgnu-designator]

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Bing-Hua Wang
69cdef116a ci: Update for GitHub Actions v2.274.2
set-env and add-path have been removed since GitHub Actions v2.274.2. [1]
Switch to Environment Files instead. [2]

[1] https://github.blog/changelog/2020-11-09-github-actions-removing-set-env-and-add-path-commands-on-november-16/
[2] https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#environment-files
2021-04-08 11:29:25 +03:00
Bing-Hua Wang
9a86189425 free: Fix implicit function declarations
GitHub Actions macOS environment now has Xcode 12.0.1. [1]
Xcode 12 Clang enables -Werror=implicit-function-declaration by
default [2] and breaks the ipmitool build on macOS. [3]

[1] https://github.com/actions/virtual-environments/issues/1712
[2] https://developer.apple.com/documentation/xcode-release-notes/xcode-12-release-notes
    "Clang now reports an error when you use a function without an
    explicit declaration when building C or Objective-C code for macOS
    (-Werror=implicit-function-declaration flag is on)."
[3] https://github.com/ipmitool/ipmitool/pull/252/checks?check_run_id=1389463134
    "checking for ld used by gcc... /Applications/Xcode_12.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
    <snip>
    free.c:66:13: error: implicit declaration of function 'getuid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            if (getuid() != 0) {
                ^
    free.c:170:26: error: implicit declaration of function 'ipmi_get_oem' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            intf->manufacturer_id = ipmi_get_oem(intf);"
                                ^

Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2021-04-08 11:29:25 +03:00
Bing-Hua Wang
5a36080f92 Use "#pragma once" for headers
Some of the header guard names in ipmitool duplicated with the ones in
freeipmi.

* ipmitool/ipmi_fru.h and freeipmi/fru/ipmi-fru.h both uses IPMI_FRU_H
* ipmitool/ipmi_sdr.h and freeipmi/sdr/ipmi-sdr.h both uses IPMI_SDR_H
* ipmitool/ipmi_sel.h and freeipmi/sel/ipmi-sel.h both uses IPMI_SEL_H

This is problematic as including the 1st will prevent the 2nd from being
included, leading to the loss of any declarations, inline definitions,
or other "#includes" in the 2nd header.

For example, including ipmitool/ipmi_sel.h and freeipmi/freeipmi.h fails
to build.

$ cat test.c
 #include <ipmitool/ipmi_sel.h>
 #include <freeipmi/freeipmi.h>
$ gcc test.c -I${HOME}/src/oss/ipmitool/include
In file included from /usr/include/freeipmi/freeipmi.h:90,
                 from test.c:2:
/usr/include/freeipmi/sdr/oem/ipmi-sdr-oem-intel-node-manager.h:48:44: error: unknown type name 'ipmi_sdr_ctx_t'; did you mean 'ipmi_fru_ctx_t'?
   48 | int ipmi_sdr_oem_parse_intel_node_manager (ipmi_sdr_ctx_t ctx,
      |                                            ^~~~~~~~~~~~~~
      |                                            ipmi_fru_ctx_t

Remove header guards and use "#pragma once" instead. In this way, we
don't have to do manual management to avoid name clashes.
* src/plugins/lan/md5.h is left as is being an external header
  originally.
* src/plugins/imb/imbapi.h is a convoluted header consisting of multiple
  header guards. Let's just add "#pragma once" and leave header guards
  as is for now.

Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2021-04-08 11:29:25 +03:00
Bing-Hua Wang
682fec09ef Remove unneeded execution bits from C source files and a header file
Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2021-04-08 11:29:25 +03:00
Bing-Hua Wang
e7550f722c Convert line endings to LF
The following commands is used on Linux to convert line endings to LF.

git config core.autocrlf input
git add --renormalize .
git config --unset core.autocrlf

It turns out there was only ipmi_kontronoem.h not using LF.

Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2021-04-08 11:29:25 +03:00
Shitalkumar Gandhi
d674bfdc9a Fixed compiler warning.
This patch has been added to fix "error: comparison between signed
and unsigned integer expressions [-Werror=sign-compare]"

Signed-off-by: Shitalkumar Gandhi <shitalkumar.gandhi@seagate.com>
2021-02-24 14:10:42 +03:00
Gilles Buloz
050f5da631 RPM support: fixed broken build due to use of headers from kernel
When building an RPM, --with-kerneldir is passed to ./configure. This adds
the include path /lib/modules/<kversion>/build/include that may break the
build but is not present when building with "make" so useless.
For instance while building ipmi_sel.c with kernel 5.3.7-301.fc31.x86_64 :
/lib/modules/5.3.7-301.fc31.x86_64/build/include/linux/stddef.h:11:2: error:
expected identifier before numeric constant
   11 |  false = 0,
      |  ^~~~~

Signed-off-by: Gilles Buloz <gilles.buloz@kontron.com>
2020-10-22 18:00:36 +03:00
Heiko Thiery
7fd7c0f2ba imbapi: replace __FUNCTION__ to eleminate compiler warnings
imbapi.c:1393:52: warning: ISO C does not support ‘__FUNCTION__’ predefined identifier [-Wpedantic]
  lprintf(LOG_DEBUG, "%s: munmap(0x%x,%d) success", __FUNCTION__,

Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2020-10-04 22:12:47 +03:00
Heiko Thiery
e78144d2c7 lanplus: remove unused variable
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2020-10-04 22:12:47 +03:00
Alexander Amelkin
7108884793 hpmfwupg: Clean up / refactor
- Drop a useless `extern` definition
- Remove static variable `errorCount` from header, move it to
  the c file where it is actually used if needed

Related to ipmitool/ipmitool#220

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-10-01 20:27:31 +03:00
Alexander Amelkin
1245aaa387 fru: Fix crashes on 6-bit ASCII strings
Fix calculation of the buffer size for decoded 6-bit ASCII
strings. Previously the program could allocate too a short buffer
that caused buffer overflows and segmentation fault crashes on
certain FRU contents.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-09-16 13:26:53 +03:00
Alexander Amelkin
50d8c36edf Refix 6e037d6bfbbb93b349c8ca331ebde03a837f76bf
Restore using strncmp() for "options=" and similar
substrings.

Resolves ipmitool/ipmitool#223

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-08-07 10:53:06 +03:00
Alexander Amelkin
aee377bead
oem: Add product ID for YADRO VEGMAN
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-23 13:41:11 +03:00
Ypnose
b302d8202c configure.ac: add '--location' for curl to follow location 2020-07-21 22:40:04 +03:00
Ypnose
3452cf1ca2 configure.ac: replace '-#' by '--progress-bar' with curl 2020-07-21 22:40:04 +03:00
Alexander Amelkin
f3ffa616e6
log: refix 16f937a1: Add missing header changes
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-21 17:35:11 +03:00
Alexander Amelkin
16f937a117 Add version info to debug output
- Initialize the log at the start of ipmi_main() to allow for proper
  logging at the start;
- Remove the unused log_level_get() function;
- Update log_level_set() to take verbosity instead of log level
  (default verbosity is 0, which is LOG_NOTICE log level),
  use the function to update log level as `-v` is encountered
  in command line;
- Move IANA PEN list debugging to verbosity 6. The list is too long
  to see it in each debug output of verbosity 5 that is used for
  debugging lan/lanplus packets;
- For verbosity >= 2 (that is `-vv`) add the ipmitool version
  information at the start.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-17 15:57:06 +03:00
Alexander Amelkin
3a1a9cb283 doc, ci: Fix an error in package name for Windows
it's dos2unix, not unix2dos

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-16 19:26:46 +03:00
Alexander Amelkin
239ef6a4ef
doc: Fix a small typo in INSTALL
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-06 12:55:00 +03:00
Gilles Buloz
c6a0baee84 RPM support: updated spec file changelog
Updated specfile changelog according to the Changelog file

Signed-off-by: Gilles Buloz <gilles.buloz@kontron.com>
2020-07-04 01:48:50 +03:00
Gilles Buloz
bc13db6304 RPM support: simplified build process
Simplified target "rpm" of Makefile, and removed rpmrc and rpmmacros to use
default settings and those from the spec file such as Distribution that has
been changed to "GitHub Build" instead of "Sourceforge Build".

Signed-off-by: Gilles Buloz <gilles.buloz@kontron.com>
2020-07-04 01:48:50 +03:00
Gilles Buloz
8838e4b0e2 RPM support: fixed broken RPM build
The command "make rpm" was failing for the following reasons :
- setting the build directory to ./rpmbuild/ instead of default
  ~/rpmbuild/ was ignored.
- errors in the spec file : wrong dates and characters in the
  changelog, and unpackaged files under misc/*
- debug package built even if unneeded but failing to build because
  of missing requisites.
Using "rpmbuild -tb ipmitool-*.tar.gz" instead of 'make rpm" builds
under ~/rpmbuild/ but also fails because of the last two reasons.

Signed-off-by: Gilles Buloz <gilles.buloz@kontron.com>
2020-07-04 01:48:50 +03:00
Alexander Amelkin
055719b7b9 doc: Update INSTALL with Windows info
The documentation now contains instructions on how to build on
Windows. The instructions have been verified and added to
a continous integration workflow with the previous commit,
so Windows buildability will from now on be automatically verified.

Resolves: ipmitool/ipmitool#148 (ipmitool for win with FreeIPMI)
          ipmitool/ipmitool#200 (windows build error)
          ipmitool/ipmitool#201 (windows build error)
          ipmitool/ipmitool#203 (no lanplus on windows)

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-04 00:26:38 +03:00
Alexander Amelkin
38b120eb5a ci: Add Windows/cygwin config
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-04 00:26:38 +03:00
Alexander Amelkin
01b53a013b doc: Update INSTALL for new CI
Update according to the new GitHub CI build configuration.
Add information regarding prerequisites for macOS X 10.15.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-04 00:26:38 +03:00