summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qarsh.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/qarsh.c b/qarsh.c
index 2683591..9081ee3 100644
--- a/qarsh.c
+++ b/qarsh.c
@@ -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));
}