Disconnect channel when peer performs shutdown 83/230083/1
authorBoram Bae <boram21.bae@samsung.com>
Tue, 7 Apr 2020 09:17:20 +0000 (18:17 +0900)
committerBoram Bae <boram21.bae@samsung.com>
Wed, 8 Apr 2020 00:55:36 +0000 (09:55 +0900)
Change-Id: Iaccbd1d23b9000f20f9cef3a536948847a174985
Signed-off-by: Boram Bae <boram21.bae@samsung.com>
src/shared/channel.cpp

index f39cd8d..020d5fb 100644 (file)
@@ -284,8 +284,12 @@ bool channel::read_sync(message &msg, bool select)
 
        /* header */
        size = m_socket->recv(&header, sizeof(message_header), select);
-       retv_if(size <= 0, false);
-
+       if (size <= 0) {
+               if (size == -1) {
+                       disconnect();
+               }
+               return false;
+       }
        /* check error from header */
        if (m_handler && header.err != 0) {
                m_handler->error_caught(this, header.err);
@@ -301,7 +305,12 @@ bool channel::read_sync(message &msg, bool select)
 
        if (header.length > 0) {
                size = m_socket->recv(&buf, header.length, select);
-               retv_if(size <= 0, false);
+               if (size <= 0) {
+                       if (size == -1) {
+                               disconnect();
+                       }
+                       return false;
+               }
        }
 
        buf[header.length] = '\0';