This triggered POLLHUP too early on Mac.
@ -124,12 +124,6 @@ Client::_send_cmds(const int argc, const char **argv)
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;
@ -220,14 +220,15 @@ void
cmd.resize(n + 1024);
ssize_t n_read = read(fd, &cmd[n], cmd.size() - n);
if (n_read < 0) {
if (n_read <= 0) {
_cleanup(fd);
return nullptr;
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;