mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-12 11:10:28 +09:00
tests: Allow to generate unencrypted PCAP files from testsuite
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Daiki Ueno <dueno@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
committed by
Andreas Schneider
parent
d4e5644e21
commit
b3ae5e06ee
@@ -55,7 +55,8 @@ static int session_setup(void **state)
|
|||||||
rc = setuid(pwd->pw_uid);
|
rc = setuid(pwd->pw_uid);
|
||||||
assert_return_code(rc, errno);
|
assert_return_code(rc, errno);
|
||||||
|
|
||||||
s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER,
|
s->ssh.session = torture_ssh_session(s,
|
||||||
|
TORTURE_SSH_SERVER,
|
||||||
NULL,
|
NULL,
|
||||||
TORTURE_SSH_USER_ALICE,
|
TORTURE_SSH_USER_ALICE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
@@ -55,7 +55,8 @@ static int session_setup(void **state)
|
|||||||
rc = setuid(pwd->pw_uid);
|
rc = setuid(pwd->pw_uid);
|
||||||
assert_return_code(rc, errno);
|
assert_return_code(rc, errno);
|
||||||
|
|
||||||
s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER,
|
s->ssh.session = torture_ssh_session(s,
|
||||||
|
TORTURE_SSH_SERVER,
|
||||||
NULL,
|
NULL,
|
||||||
TORTURE_SSH_USER_ALICE,
|
TORTURE_SSH_USER_ALICE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
@@ -60,7 +60,8 @@ static int session_setup(void **state)
|
|||||||
rc = setuid(pwd->pw_uid);
|
rc = setuid(pwd->pw_uid);
|
||||||
assert_return_code(rc, errno);
|
assert_return_code(rc, errno);
|
||||||
|
|
||||||
s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER,
|
s->ssh.session = torture_ssh_session(s,
|
||||||
|
TORTURE_SSH_SERVER,
|
||||||
NULL,
|
NULL,
|
||||||
TORTURE_SSH_USER_ALICE,
|
TORTURE_SSH_USER_ALICE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ static int session_setup(void **state)
|
|||||||
rc = setuid(pwd->pw_uid);
|
rc = setuid(pwd->pw_uid);
|
||||||
assert_return_code(rc, errno);
|
assert_return_code(rc, errno);
|
||||||
|
|
||||||
s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER,
|
s->ssh.session = torture_ssh_session(s,
|
||||||
|
TORTURE_SSH_SERVER,
|
||||||
NULL,
|
NULL,
|
||||||
TORTURE_SSH_USER_ALICE,
|
TORTURE_SSH_USER_ALICE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ static int session_setup(void **state)
|
|||||||
rc = setuid(pwd->pw_uid);
|
rc = setuid(pwd->pw_uid);
|
||||||
assert_return_code(rc, errno);
|
assert_return_code(rc, errno);
|
||||||
|
|
||||||
s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER,
|
s->ssh.session = torture_ssh_session(s,
|
||||||
|
TORTURE_SSH_SERVER,
|
||||||
NULL,
|
NULL,
|
||||||
TORTURE_SSH_USER_ALICE,
|
TORTURE_SSH_USER_ALICE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ static int session_setup(void **state)
|
|||||||
rc = setuid(pwd->pw_uid);
|
rc = setuid(pwd->pw_uid);
|
||||||
assert_return_code(rc, errno);
|
assert_return_code(rc, errno);
|
||||||
|
|
||||||
s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER,
|
s->ssh.session = torture_ssh_session(s,
|
||||||
|
TORTURE_SSH_SERVER,
|
||||||
NULL,
|
NULL,
|
||||||
TORTURE_SSH_USER_ALICE,
|
TORTURE_SSH_USER_ALICE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ static int session_setup(void **state)
|
|||||||
rc = setuid(pwd->pw_uid);
|
rc = setuid(pwd->pw_uid);
|
||||||
assert_return_code(rc, errno);
|
assert_return_code(rc, errno);
|
||||||
|
|
||||||
s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER,
|
s->ssh.session = torture_ssh_session(s,
|
||||||
|
TORTURE_SSH_SERVER,
|
||||||
NULL,
|
NULL,
|
||||||
TORTURE_SSH_USER_ALICE,
|
TORTURE_SSH_USER_ALICE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ static int session_setup(void **state)
|
|||||||
rc = setuid(pwd->pw_uid);
|
rc = setuid(pwd->pw_uid);
|
||||||
assert_return_code(rc, errno);
|
assert_return_code(rc, errno);
|
||||||
|
|
||||||
s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER,
|
s->ssh.session = torture_ssh_session(s,
|
||||||
|
TORTURE_SSH_SERVER,
|
||||||
NULL,
|
NULL,
|
||||||
TORTURE_SSH_USER_ALICE,
|
TORTURE_SSH_USER_ALICE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
@@ -244,7 +244,8 @@ int torture_terminate_process(const char *pidfile)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssh_session torture_ssh_session(const char *host,
|
ssh_session torture_ssh_session(struct torture_state *s,
|
||||||
|
const char *host,
|
||||||
const unsigned int *port,
|
const unsigned int *port,
|
||||||
const char *user,
|
const char *user,
|
||||||
const char *password) {
|
const char *password) {
|
||||||
@@ -261,6 +262,12 @@ ssh_session torture_ssh_session(const char *host,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WITH_PCAP
|
||||||
|
if (s != NULL && s->plain_pcap != NULL) {
|
||||||
|
ssh_set_pcap_file(session, s->plain_pcap);
|
||||||
|
}
|
||||||
|
#endif /* WITH_PCAP */
|
||||||
|
|
||||||
if (ssh_options_set(session, SSH_OPTIONS_HOST, host) < 0) {
|
if (ssh_options_set(session, SSH_OPTIONS_HOST, host) < 0) {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
@@ -497,11 +504,23 @@ void torture_setup_socket_dir(void **state)
|
|||||||
struct torture_state *s;
|
struct torture_state *s;
|
||||||
const char *p;
|
const char *p;
|
||||||
size_t len;
|
size_t len;
|
||||||
char *env = getenv("TORTURE_GENERATE_PCAP");
|
char *env = NULL;
|
||||||
|
int rc;
|
||||||
|
|
||||||
s = malloc(sizeof(struct torture_state));
|
s = calloc(1, sizeof(struct torture_state));
|
||||||
assert_non_null(s);
|
assert_non_null(s);
|
||||||
|
|
||||||
|
#ifdef WITH_PCAP
|
||||||
|
env = getenv("TORTURE_PLAIN_PCAP_FILE");
|
||||||
|
if (env != NULL && env[0] != '\0') {
|
||||||
|
s->plain_pcap = ssh_pcap_file_new();
|
||||||
|
assert_non_null(s->plain_pcap);
|
||||||
|
|
||||||
|
rc = ssh_pcap_file_open(s->plain_pcap, env);
|
||||||
|
assert_int_equal(rc, SSH_OK);
|
||||||
|
}
|
||||||
|
#endif /* WITH_PCAP */
|
||||||
|
|
||||||
s->socket_dir = torture_make_temp_dir(TORTURE_SOCKET_DIR);
|
s->socket_dir = torture_make_temp_dir(TORTURE_SOCKET_DIR);
|
||||||
assert_non_null(s->socket_dir);
|
assert_non_null(s->socket_dir);
|
||||||
|
|
||||||
@@ -533,6 +552,7 @@ void torture_setup_socket_dir(void **state)
|
|||||||
|
|
||||||
setenv("SOCKET_WRAPPER_DIR", p, 1);
|
setenv("SOCKET_WRAPPER_DIR", p, 1);
|
||||||
setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "170", 1);
|
setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "170", 1);
|
||||||
|
env = getenv("TORTURE_GENERATE_PCAP");
|
||||||
if (env != NULL && env[0] == '1') {
|
if (env != NULL && env[0] == '1') {
|
||||||
setenv("SOCKET_WRAPPER_PCAP_FILE", s->pcap_file, 1);
|
setenv("SOCKET_WRAPPER_PCAP_FILE", s->pcap_file, 1);
|
||||||
}
|
}
|
||||||
@@ -781,6 +801,12 @@ void torture_teardown_socket_dir(void **state)
|
|||||||
strerror(errno));
|
strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef WITH_PCAP
|
||||||
|
if (s->plain_pcap != NULL) {
|
||||||
|
ssh_pcap_file_free(s->plain_pcap);
|
||||||
|
}
|
||||||
|
s->plain_pcap = NULL;
|
||||||
|
#endif /* WITH_PCAP */
|
||||||
|
|
||||||
free(s->srv_config);
|
free(s->srv_config);
|
||||||
free(s->socket_dir);
|
free(s->socket_dir);
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ struct torture_state {
|
|||||||
ssh_session session;
|
ssh_session session;
|
||||||
struct torture_sftp *tsftp;
|
struct torture_sftp *tsftp;
|
||||||
} ssh;
|
} ssh;
|
||||||
|
#ifdef WITH_PCAP
|
||||||
|
ssh_pcap_file plain_pcap;
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef ZERO_STRUCT
|
#ifndef ZERO_STRUCT
|
||||||
@@ -93,7 +96,8 @@ int torture_terminate_process(const char *pidfile);
|
|||||||
*/
|
*/
|
||||||
int torture_libssh_verbosity(void);
|
int torture_libssh_verbosity(void);
|
||||||
|
|
||||||
ssh_session torture_ssh_session(const char *host,
|
ssh_session torture_ssh_session(struct torture_state *s,
|
||||||
|
const char *host,
|
||||||
const unsigned int *port,
|
const unsigned int *port,
|
||||||
const char *user,
|
const char *user,
|
||||||
const char *password);
|
const char *password);
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ static void *client_thread(void *arg) {
|
|||||||
(void)arg;
|
(void)arg;
|
||||||
|
|
||||||
usleep(200);
|
usleep(200);
|
||||||
session = torture_ssh_session("localhost",
|
session = torture_ssh_session(NULL, "localhost",
|
||||||
&test_port,
|
&test_port,
|
||||||
"foo", "bar");
|
"foo", "bar");
|
||||||
assert_non_null(session);
|
assert_non_null(session);
|
||||||
|
|||||||
Reference in New Issue
Block a user