1
1

torture: Added a function to setup a sftp session.

Этот коммит содержится в:
Andreas Schneider 2011-02-06 14:58:28 +01:00
родитель 215c41710e
Коммит 38d6d38c1f
2 изменённых файлов: 69 добавлений и 0 удалений

Просмотреть файл

@ -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;

Просмотреть файл

@ -44,6 +44,12 @@ struct argument_s {
int verbose;
};
struct torture_sftp {
ssh_session ssh;
sftp_session sftp;
char *testdir;
};
void torture_cmdline_parse(int argc, char **argv, struct argument_s *arguments);
int torture_rmdirs(const char *path);
@ -58,6 +64,9 @@ ssh_session torture_ssh_session(const char *host,
const char *user,
const char *password);
struct torture_sftp *torture_sftp_session(ssh_session session);
void torture_sftp_close(struct torture_sftp *t);
/*
* This function must be defined in every unit test file.
*/