From df373efc5688b6c320316d30b5f4398d37f4fe61 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sun, 14 Jul 2013 14:08:37 +0200 Subject: [PATCH] callbacks: Still support the legacy callback. --- src/callbacks.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/callbacks.c b/src/callbacks.c index 51747d32..dc3ecb46 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; }