summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/callbacks.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/callbacks.c b/src/callbacks.c
index 51747d3..dc3ecb4 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -26,6 +26,22 @@
#include "libssh/callbacks.h"
#include "libssh/session.h"
+
+/* LEGACY */
+static void ssh_legacy_log_callback(int priority,
+ const char *function,
+ const char *buffer,
+ void *userdata)
+{
+ ssh_session session = (ssh_session)userdata;
+ ssh_log_callback log_fn = session->common.callbacks->log_function;
+ void *log_data = log_data = session->common.callbacks->userdata;
+
+ (void)function; /* unused */
+
+ log_fn(session, priority, buffer, log_data);
+}
+
int ssh_set_callbacks(ssh_session session, ssh_callbacks cb) {
if (session == NULL || cb == NULL) {
return SSH_ERROR;
@@ -39,6 +55,12 @@ int ssh_set_callbacks(ssh_session session, ssh_callbacks cb) {
}
session->common.callbacks = cb;
+ /* LEGACY */
+ if (ssh_get_log_callback() == NULL && cb->log_function) {
+ ssh_set_log_callback(ssh_legacy_log_callback);
+ ssh_set_log_userdata(session);
+ }
+
return 0;
}