xfer = xfer_download_init(fh, offset);
while (!xfer_done(xfer)) {
void *vbuf;
- int ret, len;
+ int len;
int wpos, wlen;
xfer_download_queue(xfer);
struct sftp_request *req;
uint64 offset;
RFile *file;
- int ret, err, eof;
+ int ret, err = 0, eof;
struct fxp_attrs attrs;
long permissions;
if (!ret) {
printf("read size of %s: %s\n", outfname, fxp_error());
+ err = 1;
goto cleanup;
}
if (!(attrs.flags & SSH_FILEXFER_ATTR_SIZE)) {
printf("read size of %s: size was not given\n", outfname);
- ret = 0;
+ err = 1;
goto cleanup;
}
offset = attrs.size;
* FIXME: we can use FXP_FSTAT here to get the file size, and
* thus put up a progress bar.
*/
- ret = 1;
xfer = xfer_upload_init(fh, offset);
- err = eof = 0;
+ eof = 0;
while ((!err && !eof) || !xfer_done(xfer)) {
char buffer[4096];
int len, ret;
cleanup:
req = fxp_close_send(fh);
pktin = sftp_wait_for_reply(req);
- fxp_close_recv(pktin, req);
+ ret = fxp_close_recv(pktin, req);
+ if (!ret) {
+ if (!err) {
+ printf("error while closing: %s", fxp_error());
+ err = 1;
+ }
+ }
close_rfile(file);
- return ret;
+ return (err == 0) ? 1 : 0;
}
/* ----------------------------------------------------------------------
back->send(backhandle, buf, len);
return 1;
}
+int sftp_sendbuffer(void)
+{
+ return back->sendbuffer(backhandle);
+}
/*
* Short description of parameters.
argv += i;
back = NULL;
+ platform_psftp_post_option_setup();
+
/*
* If the loaded session provides a hostname, and a hostname has not
* otherwise been specified, pop it in `userhost' so that