From abf77904a0fff3e46431683e5fd85e4bccf41c46 Mon Sep 17 00:00:00 2001 From: Jean-Michel Audet Date: Mon, 29 Sep 2008 18:24:02 +0000 Subject: [PATCH] - Add retries to SOL KeepAlive functionnality --- ipmitool/lib/ipmi_sol.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ipmitool/lib/ipmi_sol.c b/ipmitool/lib/ipmi_sol.c index f3bd50b..2e85702 100644 --- a/ipmitool/lib/ipmi_sol.c +++ b/ipmitool/lib/ipmi_sol.c @@ -92,6 +92,7 @@ static struct termios _saved_tio; static int _in_raw_mode = 0; static int _disable_keepalive = 0; static int _use_sol_for_keepalive = 0; +static int _keepalive_retries = 0; extern int verbose; @@ -1413,6 +1414,12 @@ ipmi_sol_keepalive_using_getdeviceid(struct ipmi_intf * intf) if (end.tv_sec - _start_keepalive.tv_sec > SOL_KEEPALIVE_TIMEOUT) { ret = intf->keepalive(intf); + if ( (ret!=0) && (_keepalive_retries < SOL_KEEPALIVE_RETRIES) ) { + ret = 0; + _keepalive_retries++; + } + else if ((ret==0) && (_keepalive_retries > 0)) + _keepalive_retries = 0; gettimeofday(&_start_keepalive, 0); } return ret;