Fix read errno handling in Socket class 84/29884/2
authorMarcin Niesluchowski <m.niesluchow@samsung.com>
Wed, 5 Nov 2014 11:40:35 +0000 (12:40 +0100)
committerMarcin Niesluchowski <m.niesluchow@samsung.com>
Fri, 7 Nov 2014 10:57:54 +0000 (02:57 -0800)
Cynara Socket class treats ECONNRESET (socket closed transmiting RST
instead of FIN) during read as unknown error. Handle it as disconnection.

Change-Id: Iecbfa5c32c7ef8b6b5da97170269aa86e2740c22

src/common/sockets/Socket.cpp

index 0c33a7e..5a57a54 100644 (file)
@@ -269,6 +269,9 @@ bool Socket::receiveFromServer(BinaryQueue &queue) {
                 case EWOULDBLOCK:
 #endif
                     return true;
+                case ECONNRESET:
+                    LOGW("read returned -1 with ECONNRESET / Connection closed by server.");
+                    return false;
                 default:
                     LOGE("'read' function error [%d] : <%s>", err, strerror(err));
                     throw UnexpectedErrorException(err, strerror(err));