Browse Source

On Posix: Don't shutdown (half) the connection from the client.

This triggered POLLHUP too early on Mac.
sbg
Mara Bos 6 years ago committed by Julian Oes
parent
commit
c882ca9389
  1. 6
      platforms/posix/src/px4_daemon/client.cpp
  2. 5
      platforms/posix/src/px4_daemon/server.cpp

6
platforms/posix/src/px4_daemon/client.cpp

@ -124,12 +124,6 @@ Client::_send_cmds(const int argc, const char **argv)
buf += n_sent; buf += n_sent;
} }
// Let the server know we're done writing.
if (shutdown(_fd, SHUT_WR) < 0) {
PX4_ERR("shutdown() failed: %s", strerror(errno));
return -1;
}
return 0; return 0;
} }

5
platforms/posix/src/px4_daemon/server.cpp

@ -220,14 +220,15 @@ void
cmd.resize(n + 1024); cmd.resize(n + 1024);
ssize_t n_read = read(fd, &cmd[n], cmd.size() - n); ssize_t n_read = read(fd, &cmd[n], cmd.size() - n);
if (n_read < 0) { if (n_read <= 0) {
_cleanup(fd); _cleanup(fd);
return nullptr; return nullptr;
} }
cmd.resize(n + n_read); cmd.resize(n + n_read);
if (n_read == 0) { // Command ends in 0x00 (no tty) or 0x01 (tty).
if (!cmd.empty() && cmd.back() < 2) {
break; break;
} }
} }

Loading…
Cancel
Save