From 6d77f698f26c94809fe370ba1c6269a5ce9d0482 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Mon, 27 Jun 2005 22:15:05 +0000 Subject: [PATCH] allow SOL port to be sent in network byte order since some BMCs do this --- ipmitool/lib/ipmi_sol.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ipmitool/lib/ipmi_sol.c b/ipmitool/lib/ipmi_sol.c index 32131ee..5521281 100644 --- a/ipmitool/lib/ipmi_sol.c +++ b/ipmitool/lib/ipmi_sol.c @@ -1497,10 +1497,20 @@ ipmi_sol_activate(struct ipmi_intf * intf) intf->session->timeout = 3; + /* NOTE: the spec does allow for SOL traffic to be sent on + * a different port. we do not yet support that feature. */ if (intf->session->sol_data.port != intf->session->port) { - lprintf(LOG_ERR, "Error: BMC requests SOL session on different port"); - return -1; + /* try byteswapping port in case BMC sent it incorrectly */ + uint16_t portswap = BSWAP_16(intf->session->sol_data.port); + + if (portswap == intf->session->port) { + intf->session->sol_data.port = portswap; + } + else { + lprintf(LOG_ERR, "Error: BMC requests SOL session on different port"); + return -1; + } }