struct sftp_request *req;
uint64 offset;
RFile *file;
- int ret, err = 0, eof;
+ int err = 0, eof;
struct fxp_attrs attrs;
long permissions;
if (restart) {
char decbuf[30];
struct fxp_attrs attrs;
+ int ret;
req = fxp_fstat_send(fh);
pktin = sftp_wait_for_reply(req);
cleanup:
req = fxp_close_send(fh);
pktin = sftp_wait_for_reply(req);
- fxp_close_recv(pktin, req);
+ if (!fxp_close_recv(pktin, req)) {
+ if (!err) {
+ printf("error while closing: %s", fxp_error());
+ err = 1;
+ }
+ }
close_rfile(file);
if (dirh == NULL) {
printf("Unable to open %s: %s\n", dir, fxp_error());
+ return 0;
} else {
nnames = namesize = 0;
ournames = NULL;
printf(" -hostkey aa:bb:cc:...\n");
printf(" manually specify a host key (may be repeated)\n");
printf(" -batch disable all interactive prompts\n");
+ printf(" -proxycmd command\n");
+ printf(" use 'command' as local proxy\n");
printf(" -sshlog file\n");
printf(" -sshrawlog file\n");
printf(" log protocol details to a file\n");
static void version(void)
{
- printf("psftp: %s\n", ver);
- cleanup_exit(1);
+ char *buildinfo_text = buildinfo("\n");
+ printf("psftp: %s\n%s\n", ver, buildinfo_text);
+ sfree(buildinfo_text);
+ exit(0);
}
/*
back = &ssh_backend;
+ logctx = log_init(NULL, conf);
+ console_provide_logctx(logctx);
+
+ platform_psftp_pre_conn_setup();
+
err = back->init(NULL, &backhandle, conf,
conf_get_str(conf, CONF_host),
conf_get_int(conf, CONF_port),
fprintf(stderr, "ssh_init: %s\n", err);
return 1;
}
- logctx = log_init(NULL, conf);
back->provide_logctx(backhandle, logctx);
- console_provide_logctx(logctx);
while (!back->sendok(backhandle)) {
if (back->exitcode(backhandle) >= 0)
return 1;
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