aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/CMakeLists.txt2
-rw-r--r--tests/ssh_ping.c14
2 files changed, 15 insertions, 1 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index b8a1421d..31a16a39 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -181,7 +181,7 @@ if (CLIENT_TESTING OR SERVER_TESTING)
# ssh_ping
add_executable(ssh_ping ssh_ping.c)
target_compile_options(ssh_ping PRIVATE ${DEFAULT_C_COMPILE_FLAGS})
- target_link_libraries(ssh_ping ssh::ssh)
+ target_link_libraries(ssh_ping ssh::static)
# homedir will be used in passwd
set(HOMEDIR ${CMAKE_CURRENT_BINARY_DIR}/home)
diff --git a/tests/ssh_ping.c b/tests/ssh_ping.c
index c3fc1f9a..bdb3cea0 100644
--- a/tests/ssh_ping.c
+++ b/tests/ssh_ping.c
@@ -14,15 +14,19 @@ The goal is to show the API in action. It's not a reference on how terminal
clients must be made or how a client should react.
*/
+#include "config.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <libssh/libssh.h>
+#include <libssh/kex.h>
int main(int argc, char **argv)
{
const char *banner = NULL;
ssh_session session = NULL;
+ const char *hostkeys = NULL;
int rc = 1;
bool process_config = false;
@@ -32,6 +36,8 @@ int main(int argc, char **argv)
goto out;
}
+ ssh_init();
+
session = ssh_new();
if (session == NULL) {
goto out;
@@ -54,6 +60,13 @@ int main(int argc, char **argv)
goto out;
}
+ /* Enable all supported algorithms (including DSA) */
+ hostkeys = ssh_kex_get_supported_method(SSH_HOSTKEYS);
+ rc = ssh_options_set(session, SSH_OPTIONS_HOSTKEYS, hostkeys);
+ if (rc < 0) {
+ goto out;
+ }
+
rc = ssh_connect(session);
if (rc != SSH_OK) {
fprintf(stderr, "Connection failed : %s\n", ssh_get_error(session));
@@ -71,6 +84,7 @@ int main(int argc, char **argv)
out:
ssh_free(session);
+ ssh_finalize();
return rc;
}