1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-07-29 13:01:13 +03:00

torture: Added a function to setup a sftp session.

This commit is contained in:
Andreas Schneider
2011-02-06 14:58:28 +01:00
parent 215c41710e
commit 38d6d38c1f
2 changed files with 69 additions and 0 deletions

View File

@ -198,6 +198,66 @@ failed:
return NULL;
}
struct torture_sftp *torture_sftp_session(ssh_session session) {
struct torture_sftp *t;
char template[] = "/tmp/ssh_torture_XXXXXX";
char *p;
if (session == NULL) {
return NULL;
}
t = malloc(sizeof(struct torture_sftp *));
if (t == NULL) {
return NULL;
}
t->ssh = session;
t->sftp = sftp_new(session);
if (t->sftp == NULL) {
goto failed;
}
p = mkdtemp(template);
if (p == NULL) {
goto failed;
}
t->testdir = strdup(p);
if (t->testdir == NULL) {
goto failed;
}
return t;
failed:
if (t->sftp != NULL) {
sftp_free(t->sftp);
}
ssh_disconnect(t->ssh);
ssh_free(t->ssh);
return NULL;
}
void torture_sftp_close(struct torture_sftp *t) {
if (t == NULL) {
return;
}
if (t->sftp != NULL) {
sftp_free(t->sftp);
}
if (t->ssh != NULL) {
if (ssh_is_connected(t->ssh)) {
ssh_disconnect(t->ssh);
}
}
free(t->testdir);
free(t);
}
int main(int argc, char **argv) {
struct argument_s arguments;