diff --git a/ipmitool.changes b/ipmitool.changes index c60eefe..ebedfe7 100644 --- a/ipmitool.changes +++ b/ipmitool.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Feb 3 11:08:48 UTC 2021 - Thomas Renninger + +- Fixes (bsc#1179133) lanplus: hanging on getting cipher suites for 10 seconds +A lanplus-don-t-retry-pre-session-Get-cipher-suites.patch + ------------------------------------------------------------------- Thu Jan 28 13:53:14 UTC 2021 - Josef Möllers diff --git a/ipmitool.spec b/ipmitool.spec index 041cc23..5524cf1 100644 --- a/ipmitool.spec +++ b/ipmitool.spec @@ -35,6 +35,7 @@ Patch5: 0005-HPM-x-compatibility-message-is-DEBUG-only.patch Patch6: 0006-Make-IANA-PEN-download-configurable-fix-uninitalized.patch Patch7: 0007-bsc#1175328-check-for-correct-fd.patch Patch8: 0008-bsc#1181063-dont-parametrize-pidfile-name.patch +Patch9: lanplus-don-t-retry-pre-session-Get-cipher-suites.patch BuildRequires: libtool BuildRequires: openssl-devel BuildRequires: readline-devel diff --git a/lanplus-don-t-retry-pre-session-Get-cipher-suites.patch b/lanplus-don-t-retry-pre-session-Get-cipher-suites.patch new file mode 100644 index 0000000..6a87db0 --- /dev/null +++ b/lanplus-don-t-retry-pre-session-Get-cipher-suites.patch @@ -0,0 +1,35 @@ +From: Václav Doležal +Subject: lanplus: don't retry pre-session Get cipher suites +References: bsc#1179133 +Patch-Mainline: +Git-commit: 0de01deddb0aca475b3929c372ca2448d6858a89 +Git-repo: https://github.com/yontalcar/ipmitool.git.git + +Some BMCs are ignoring it, causing needless delay. + +Addresses: https://github.com/ipmitool/ipmitool/issues/199 + +Signed-off-by: Václav Doležal + + +Signed-off-by: +diff --git a/src/plugins/lanplus/lanplus.c b/src/plugins/lanplus/lanplus.c +index f5aba5e..06b29a0 100644 +--- a/src/plugins/lanplus/lanplus.c ++++ b/src/plugins/lanplus/lanplus.c +@@ -3390,9 +3390,13 @@ ipmi_find_best_cipher_suite(struct ipmi_intf *intf) + }; + const size_t nr_preferred = ARRAY_SIZE(cipher_order_preferred); + size_t ipref, i; ++ int rc; ++ int retry_old = intf->ssn_params.retry; + +- if (ipmi_get_channel_cipher_suites(intf, "ipmi", IPMI_LAN_CHANNEL_E, +- suites, &nr_suites) < 0) ++ ipmi_intf_session_set_retry(intf, 1); ++ rc = ipmi_get_channel_cipher_suites(intf, "ipmi", IPMI_LAN_CHANNEL_E, suites, &nr_suites); ++ ipmi_intf_session_set_retry(intf, retry_old); ++ if (rc < 0) + { + /* default legacy behavior - fall back to cipher suite 3 */ + return IPMI_LANPLUS_CIPHER_SUITE_3;