torture: Added a function to setup a sftp session.
Этот коммит содержится в:
родитель
215c41710e
Коммит
38d6d38c1f
@ -198,6 +198,66 @@ failed:
|
|||||||
return NULL;
|
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) {
|
int main(int argc, char **argv) {
|
||||||
struct argument_s arguments;
|
struct argument_s arguments;
|
||||||
|
|
||||||
|
@ -44,6 +44,12 @@ struct argument_s {
|
|||||||
int verbose;
|
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);
|
void torture_cmdline_parse(int argc, char **argv, struct argument_s *arguments);
|
||||||
|
|
||||||
int torture_rmdirs(const char *path);
|
int torture_rmdirs(const char *path);
|
||||||
@ -58,6 +64,9 @@ ssh_session torture_ssh_session(const char *host,
|
|||||||
const char *user,
|
const char *user,
|
||||||
const char *password);
|
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.
|
* This function must be defined in every unit test file.
|
||||||
*/
|
*/
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user