diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2013-07-14 14:08:37 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2013-07-14 14:12:08 +0200 |
commit | df373efc5688b6c320316d30b5f4398d37f4fe61 (patch) | |
tree | eb62afd3d6759ca3e8f9efef15b7a2cae5573c5d | |
parent | e3b4f27aa999515727c64e5e78bc2eaccf93077f (diff) | |
download | libssh-df373efc5688b6c320316d30b5f4398d37f4fe61.tar.gz libssh-df373efc5688b6c320316d30b5f4398d37f4fe61.tar.xz libssh-df373efc5688b6c320316d30b5f4398d37f4fe61.zip |
callbacks: Still support the legacy callback.
-rw-r--r-- | src/callbacks.c | 22 |
1 files changed, 22 insertions, 0 deletions
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; } |