diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/torture.c | 44 | ||||
-rw-r--r-- | tests/torture.h | 5 |
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/torture.c b/tests/torture.c index 74640031..726db214 100644 --- a/tests/torture.c +++ b/tests/torture.c @@ -393,6 +393,50 @@ failed: return NULL; } +#ifdef WITH_SERVER + +ssh_bind torture_ssh_bind(const char *addr, + const unsigned int port, + const char *private_key_file) { + int rc; + ssh_bind sshbind = NULL; + + sshbind = ssh_bind_new(); + if (sshbind == NULL) { + goto out; + } + + rc = ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_BINDADDR, addr); + if (rc != 0) { + goto out_free; + } + + rc = ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_BINDPORT, &port); + if (rc != 0) { + goto out_free; + } + + rc = ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_HOSTKEY, + private_key_file); + if (rc != 0) { + goto out_free; + } + + rc = ssh_bind_listen(sshbind); + if (rc != SSH_OK) { + goto out_free; + } + + goto out; + out_free: + ssh_bind_free(sshbind); + sshbind = NULL; + out: + return sshbind; +} + +#endif + #ifdef WITH_SFTP struct torture_sftp *torture_sftp_session(ssh_session session) { diff --git a/tests/torture.h b/tests/torture.h index bfad2c97..b4eab587 100644 --- a/tests/torture.h +++ b/tests/torture.h @@ -35,6 +35,7 @@ #include <setjmp.h> #include "libssh/priv.h" +#include "libssh/server.h" #include "libssh/sftp.h" #include <cmocka.h> @@ -66,6 +67,10 @@ ssh_session torture_ssh_session(const char *host, const char *user, const char *password); +ssh_bind torture_ssh_bind(const char *addr, + const unsigned int port, + const char *private_key_file); + struct torture_sftp *torture_sftp_session(ssh_session session); void torture_sftp_close(struct torture_sftp *t); |