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);
ssh_auth_callback auth_function
This functions will be called if e.g.
Definition: callbacks.h:126
void(* ssh_channel_exit_status_callback)(ssh_session session, ssh_channel channel, int exit_status, void *userdata)
SSH channel exit status callback.
Definition: callbacks.h:328
These are the callbacks exported by the socket structure They are called by the socket module when a ...
Definition: callbacks.h:147
The structure to replace libssh functions with appropriate callbacks.
Definition: callbacks.h:116
void(* ssh_channel_eof_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH channel eof callback.
Definition: callbacks.h:296
ssh_callback_int controlflow
This function will be called each time a controlflow state changes, i.e.
Definition: callbacks.h:160
int(* ssh_channel_data_callback)(ssh_session session, ssh_channel channel, void *data, uint32_t len, int is_stderr, void *userdata)
SSH channel data callback.
Definition: callbacks.h:283
void * userdata
User-provided data.
Definition: callbacks.h:122
void(* connect_status_function)(void *userdata, float status)
This function gets called during connection time to indicate the percentage of connection steps compl...
Definition: callbacks.h:135
void(* ssh_channel_exit_signal_callback)(ssh_session session, ssh_channel channel, const char *signal, int core, const char *errmsg, const char *lang, void *userdata)
SSH channel exit signal callback.
Definition: callbacks.h:343
ssh_callback_data data
This function will be called each time data appears on socket.
Definition: callbacks.h:156
void(* ssh_channel_close_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH channel close callback.
Definition: callbacks.h:306
LIBSSH_API int ssh_set_callbacks(ssh_session session, ssh_callbacks cb)
Set the session callback functions.
Definition: callbacks.c:29
LIBSSH_API struct ssh_threads_callbacks_struct * ssh_threads_get_noop(void)
returns a pointer on the noop threads callbacks, to be used with ssh_threads_set_callbacks.
Definition: threads.c:52
ssh_callback_int_int exception
This function will be called each time an exception appears on socket.
Definition: callbacks.h:164
ssh_global_request_callback global_request_function
This function will be called each time a global request is received.
Definition: callbacks.h:139
size_t size
DON'T SET THIS use ssh_callbacks_init() instead.
Definition: callbacks.h:118
void(* ssh_channel_signal_callback)(ssh_session session, ssh_channel channel, const char *signal, void *userdata)
SSH channel signal callback.
Definition: callbacks.h:317
LIBSSH_API int ssh_set_channel_callbacks(ssh_channel channel, ssh_channel_callbacks cb)
Set the channel callback functions.
Definition: callbacks.c:45
void(* ssh_log_callback)(ssh_session session, int priority, const char *message, void *userdata)
SSH log callback.
Definition: callbacks.h:90
void(* ssh_global_request_callback)(ssh_session session, ssh_message message, void *userdata)
SSH global request callback.
Definition: callbacks.h:110
int(* ssh_auth_callback)(const char *prompt, char *buf, size_t len, int echo, int verify, void *userdata)
SSH authentication callback.
Definition: callbacks.h:81
void * userdata
User-provided data.
Definition: callbacks.h:151
int(* ssh_packet_callback)(ssh_session session, uint8_t type, ssh_buffer packet, void *user)
Prototype for a packet callback, to be called when a new packet arrives.
Definition: callbacks.h:216
void(* ssh_status_callback)(ssh_session session, float status, void *userdata)
SSH Connection status callback.
Definition: callbacks.h:100
LIBSSH_API int ssh_threads_set_callbacks(struct ssh_threads_callbacks_struct *cb)
sets the thread callbacks necessary if your program is using libssh in a multithreaded fashion...
Definition: threads.c:160
ssh_callback_int_int connected
This function is called when the ssh_socket_connect was used on the socket on nonblocking state...
Definition: callbacks.h:168
ssh_log_callback log_function
This function will be called each time a loggable event happens.
Definition: callbacks.h:130