diff options
-rw-r--r-- | qarsh.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -396,9 +396,12 @@ run_remote_cmd(char *cmdline) qp->qp_dallow.qp_remfd); } } else if (qp->qp_type == QP_RETURNCODE) { /* qarshd hit an error while writing to stdin */ - fprintf(stderr, "Remote command hit I/O error: %s\n", qp->qp_returncode.qp_strerror); - close(fileno(stdin)); - allowed_in = -1; + if (qp->qp_returncode.qp_rc == -1 && qp->qp_returncode.qp_errno == EPIPE) { + close(fileno(stdin)); + allowed_in = -1; + } else { + fprintf(stderr, "Remote command hit I/O error: %s\n", qp->qp_returncode.qp_strerror); + } } else { fprintf(stderr, "Unexpected packet type %s\n", qp_packet_type(qp->qp_type)); } |