From b8d9ada3020f97ceb53e3b61e4984346bc61cdc5 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Tue, 17 Jan 2006 18:13:41 +0000 Subject: [PATCH] fix retry handling for SOL --- ipmitool/lib/ipmi_sol.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/ipmitool/lib/ipmi_sol.c b/ipmitool/lib/ipmi_sol.c index de8fab8..ed55481 100644 --- a/ipmitool/lib/ipmi_sol.c +++ b/ipmitool/lib/ipmi_sol.c @@ -1247,19 +1247,26 @@ processSolUserInput( if (length) { struct ipmi_rs * rsp; + int try = 0; + + while (try < intf->session->retry) { - v2_payload.payload.sol_packet.character_count = length; - rsp = intf->send_sol(intf, &v2_payload); + v2_payload.payload.sol_packet.character_count = length; + rsp = intf->send_sol(intf, &v2_payload); + + if (rsp) + { + break; + } + + usleep(5000); + try++; + } if (! rsp) { - rsp = intf->send_sol(intf, &v2_payload); - lprintf(LOG_ERR, "Error sending SOL data: RETRY"); - if (! rsp) - { - lprintf(LOG_ERR, "Error sending SOL data: FAIL"); - retval = -1; - } + lprintf(LOG_ERR, "Error sending SOL data: FAIL"); + retval = -1; } /* If the sequence number is set we know we have new data */