return r;
}
+void sftp_cleanup_request(void)
+{
+ if (sftp_requests == NULL) {
+ freetree234(sftp_requests);
+ sftp_requests = NULL;
+ }
+}
+
void sftp_register(struct sftp_request *req)
{
req->registered = 1;
void xfer_download_queue(struct fxp_xfer *xfer)
{
- while (xfer->req_totalsize < xfer->req_maxsize && !xfer->eof) {
+ while (xfer->req_totalsize < xfer->req_maxsize &&
+ !xfer->eof && !xfer->err) {
/*
* Queue a new read request.
*/
#endif
} else if (rr->retlen < 0) {
/* some error other than EOF; signal it back to caller */
+ xfer_set_error(xfer);
+ rr->complete = -1;
return -1;
}