26 #ifndef _SSH_CALLBACK_H
27 #define _SSH_CALLBACK_H
29 #include <libssh/libssh.h>
50 typedef void (*ssh_callback_int) (
int code,
void *user);
60 typedef int (*ssh_callback_data) (
const void *data,
size_t len,
void *user);
62 typedef void (*ssh_callback_int_int) (
int code,
int errno_code,
void *user);
64 typedef int (*ssh_message_callback) (ssh_session, ssh_message message,
void *user);
65 typedef int (*ssh_channel_callback_int) (ssh_channel channel,
int code,
void *user);
66 typedef int (*ssh_channel_callback_data) (ssh_channel channel,
int code,
void *data,
size_t len,
void *user);
82 int echo,
int verify,
void *userdata);
91 const char *message,
void *userdata);
111 ssh_message message,
void *userdata);
172 #define SSH_SOCKET_FLOW_WRITEWILLBLOCK 1
173 #define SSH_SOCKET_FLOW_WRITEWONTBLOCK 2
175 #define SSH_SOCKET_EXCEPTION_EOF 1
176 #define SSH_SOCKET_EXCEPTION_ERROR 2
178 #define SSH_SOCKET_CONNECTED_OK 1
179 #define SSH_SOCKET_CONNECTED_ERROR 2
180 #define SSH_SOCKET_CONNECTED_TIMEOUT 3
189 #define ssh_callbacks_init(p) do {\
190 (p)->size=sizeof(*(p)); \
202 #define ssh_callbacks_exists(p,c) (\
203 (p != NULL) && ( (char *)&((p)-> c) < (char *)(p) + (p)->size ) && \
220 #define SSH_PACKET_USED 1
223 #define SSH_PACKET_NOT_USED 2
233 #define SSH_PACKET_CALLBACK(name) \
234 int name (ssh_session session, uint8_t type, ssh_buffer packet, void *user)
236 struct ssh_packet_callbacks_struct {
249 typedef struct ssh_packet_callbacks_struct *ssh_packet_callbacks;
351 struct ssh_channel_callbacks_struct {
383 typedef struct ssh_channel_callbacks_struct *ssh_channel_callbacks;
407 ssh_channel_callbacks cb);
415 typedef int (*ssh_thread_callback) (
void **lock);
417 typedef unsigned long (*ssh_thread_id_callback) (void);
418 struct ssh_threads_callbacks_struct {
420 ssh_thread_callback mutex_init;
421 ssh_thread_callback mutex_destroy;
422 ssh_thread_callback mutex_lock;
423 ssh_thread_callback mutex_unlock;
424 ssh_thread_id_callback thread_id;
446 LIBSSH_API
struct ssh_threads_callbacks_struct *ssh_threads_get_pthread(
void);