FIX: Suprocess loops endlessly when the control socket closes.

recvmsg(3) returns 0 if the connection partner has shut down its socket.
The communicate function considered 0 a successful message, though, and
keeps calling recvmsg(3) again and again.
This commit is contained in:
Tobias Blass 2018-06-20 21:35:15 +02:00 committed by Tobias Blass
parent cc89906ddf
commit 482fc48c74

View file

@ -130,7 +130,7 @@ static void communicate(int sock) {
int drm_fd = -1; int drm_fd = -1;
bool running = true; bool running = true;
while (running && recv_msg(sock, &drm_fd, &msg, sizeof(msg)) >= 0) { while (running && recv_msg(sock, &drm_fd, &msg, sizeof(msg)) > 0) {
switch (msg.type) { switch (msg.type) {
case MSG_OPEN: case MSG_OPEN:
errno = 0; errno = 0;