Просмотр исходного кода

coroipcc: check recvmsg result in socket_recv

According specification recvmsg can return 0, which means that
connection is closed. We had this check, but limited only for systems
other then Linux. recvmsg can return 0 even on Linux, so check is now
applied on all systems.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
(cherry picked from commit 2e5dc5f322a5a852d31f5775debbf51e062695ba)
Jan Friesse 14 лет назад
Родитель
Сommit
4b94d493a2
1 измененных файлов с 2 добавлено и 4 удалено
  1. 2 4
      lib/coroipcc.c

+ 2 - 4
lib/coroipcc.c

@@ -227,15 +227,13 @@ retry_recv:
 			goto res_exit;
 		}
 	}
-#if defined(COROSYNC_SOLARIS) || defined(COROSYNC_BSD) || defined(COROSYNC_DARWIN)
-	/* On many OS poll never return POLLHUP or POLLERR.
-	 * EOF is detected when recvmsg return 0.
+	/*
+	 * EOF is also detected when recvmsg return 0.
 	 */
 	if (result == 0) {
 		res = CS_ERR_LIBRARY;
 		goto res_exit;
 	}
-#endif
 
 	processed += result;
 	if (processed != len) {