Fix blocking issue when calling recvmsg 99/317599/1
authorWootak Jung <wootak.jung@samsung.com>
Mon, 6 Jan 2025 00:03:19 +0000 (09:03 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Mon, 6 Jan 2025 00:03:19 +0000 (09:03 +0900)
Change-Id: Iaf09449b3015e91af585e0156280ae23365ee667
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
bt-api/bt-l2cap-le-server.c

index 482993b8220c13d0713bec2bc0bbc0d4a78b61dd..28fe66524b2db5a06ea86e81c6d8626634fa7923 100644 (file)
@@ -371,9 +371,9 @@ static int __sock_read(int server_fd, char *buf, unsigned int len,
        msg.msg_controllen = sizeof(cmsgbuf);
 
        for (retryCount = 0; retryCount < 5; retryCount++) {
-               ret = recvmsg(server_fd, &msg, 0);
+               ret = recvmsg(server_fd, &msg, MSG_DONTWAIT);
                BT_DBG("recvmsg ret = %d", ret);
-               if (ret < 0 && errno == EINTR)
+               if (ret < 0 && (errno == EINTR || errno == EAGAIN))
                        continue;
                else
                        break;