diff options
Diffstat (limited to 'qacp.c')
-rw-r--r-- | qacp.c | 14 |
1 files changed, 5 insertions, 9 deletions
@@ -125,7 +125,6 @@ qacp_sendonefile(const char *host, const char *srcfile, const char *destfile) { struct qa_packet *qp; int fd; - int remfd; ssize_t nbytes; off_t offset; struct stat sb; @@ -160,17 +159,13 @@ qacp_sendonefile(const char *host, const char *srcfile, const char *destfile) /* Await our return code from qarshd */ qp = recv_packet(qacp_fd); if (qp && qp->qp_type == QP_RETURNCODE) { - if (qp->qp_returncode.qp_rc == 0) { - remfd = qp->qp_returncode.qp_errno; - } else if (qp->qp_returncode.qp_rc == -1) { + if (qp->qp_returncode.qp_rc != 0) { fprintf(stderr, "Remote side failed: %s\n", qp->qp_returncode.qp_strerror); - goto sendone_error; - } else { - fprintf(stderr, "Unexpected return code %d\n", - qp->qp_returncode.qp_rc); + qpfree(qp); goto sendone_error; } + qpfree(qp); } else { fprintf(stderr, "Did not receive response to recvfile\n"); goto sendone_failure; @@ -183,7 +178,7 @@ qacp_sendonefile(const char *host, const char *srcfile, const char *destfile) fprintf(stderr, "read() error: %s\n", strerror(errno)); qp = make_qp_returncode(-1, errno, strerror(errno)); } else { - qp = make_qp_data(remfd, offset, nbytes, buf); + qp = make_qp_data(0, offset, nbytes, buf); } send_packet(qacp_fd, qp); offset += nbytes; @@ -592,6 +587,7 @@ sendfiles(char **argv, int argc, int fileidx, short recursive) free(rstatp); } + free(freeme); free(ruser); free(rmtpath); |