aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-10-10 10:46:28 +0200
committerAndreas Schneider <mail@cynapses.org>2009-10-10 10:51:56 +0200
commitbe75fac7ff4e66ededa6d4353d99507fab4ebf42 (patch)
tree878f8fedfcdc584b708b3e8858f4b0fb1d20a78a
parent6ec65c6f9d1aefddaccf0a9816dae0b68a46ea33 (diff)
downloadlibssh-be75fac7ff4e66ededa6d4353d99507fab4ebf42.tar.gz
libssh-be75fac7ff4e66ededa6d4353d99507fab4ebf42.tar.xz
libssh-be75fac7ff4e66ededa6d4353d99507fab4ebf42.zip
Add a function to set the callback structure to the session.
-rw-r--r--include/libssh/callback.h7
-rw-r--r--libssh/CMakeLists.txt1
-rw-r--r--libssh/callbacks.c37
3 files changed, 39 insertions, 6 deletions
diff --git a/include/libssh/callback.h b/include/libssh/callback.h
index 51a2ece9..25f071a7 100644
--- a/include/libssh/callback.h
+++ b/include/libssh/callback.h
@@ -82,12 +82,7 @@ typedef struct ssh_callbacks_struct * ssh_callbacks;
p->size=sizeof(*p); \
} while(0);
-LIBSSH_API int ssh_set_auth_callback(ssh_session session, ssh_auth_callback cb,
- void *userdata);
-LIBSSH_API int ssh_set_log_callback(ssh_session session,
- ssh_log_callback cb, void *userdata);
-LIBSSH_API int ssh_set_status_callback(ssh_session session, void (*callback)
- (void *arg, float status), void *arg);
+LIBSSH_API int ssh_set_callbacks(ssh_session session, ssh_callbacks cb);
#ifdef __cplusplus
}
diff --git a/libssh/CMakeLists.txt b/libssh/CMakeLists.txt
index 1def4d98..7a4093da 100644
--- a/libssh/CMakeLists.txt
+++ b/libssh/CMakeLists.txt
@@ -72,6 +72,7 @@ set(libssh_SRCS
auth.c
base64.c
buffer.c
+ callbacks.c
channels.c
client.c
config.c
diff --git a/libssh/callbacks.c b/libssh/callbacks.c
new file mode 100644
index 00000000..7553ca61
--- /dev/null
+++ b/libssh/callbacks.c
@@ -0,0 +1,37 @@
+/*
+ * callbacks.c - callback functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include "libssh/callbacks.h"
+#include "libssh/session.h"
+
+int ssh_set_callbacks(ssh_session session, ssh_callbacks cb) {
+ if (session == NULL || cb == NULL) {
+ return -1;
+ }
+
+ session->callbacks = cb;
+
+ return 0;
+}