From 071d57f957bcf3a5f2d0e8ca770be524ebe92d16 Mon Sep 17 00:00:00 2001 From: john30 Date: Thu, 14 May 2015 11:43:23 +0200 Subject: [PATCH] fix for readonly, immediately give up reading on send error or device error --- src/ebusd/bushandler.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ebusd/bushandler.cpp b/src/ebusd/bushandler.cpp index 64573d6a..129e1aaa 100644 --- a/src/ebusd/bushandler.cpp +++ b/src/ebusd/bushandler.cpp @@ -156,7 +156,7 @@ result_t BusHandler::sendAndWait(SymbolString& master, SymbolString& slave) if (result == RESULT_OK) break; - if (!success || result == RESULT_ERR_NO_SIGNAL) { + if (!success || result == RESULT_ERR_NO_SIGNAL || result == RESULT_ERR_SEND || result == RESULT_ERR_DEVICE) { logError(lf_bus, "%s, give up", getResultCode(result)); break; } @@ -316,6 +316,9 @@ result_t BusHandler::handleSymbol() else { sending = false; timeout = SYN_TIMEOUT; + if (startRequest != NULL && m_nextRequests.remove(startRequest)) { + m_currentRequest = startRequest; // force the failed request to be notified + } setState(bs_skip, result); } }