25 #ifndef _SSH_CALLBACK_H    26 #define _SSH_CALLBACK_H    28 #include <libssh/libssh.h>    49 typedef void (*ssh_callback_int) (
int code, 
void *user);
    59 typedef int (*ssh_callback_data) (
const void *data, 
size_t len, 
void *user);
    61 typedef void (*ssh_callback_int_int) (
int code, 
int errno_code, 
void *user);
    64 typedef int (*ssh_channel_callback_int) (
ssh_channel channel, 
int code, 
void *user);
    65 typedef int (*ssh_channel_callback_data) (
ssh_channel channel, 
int code, 
void *data, 
size_t len, 
void *user);
    75     const char *message, 
void *userdata);
   125       const char * originator_address, 
int originator_port, 
void *userdata);
   232         char signature_state, 
void *userdata);
   282 typedef int (*ssh_gssapi_accept_sec_ctx_callback) (
ssh_session session,
   296 typedef int (*ssh_gssapi_verify_mic_callback) (
ssh_session session,
   297         ssh_string mic, 
void *mic_buffer, 
size_t mic_buffer_size, 
void *userdata);
   347   ssh_gssapi_verify_mic_callback gssapi_verify_mic_function;
   403 #define SSH_SOCKET_FLOW_WRITEWILLBLOCK 1   404 #define SSH_SOCKET_FLOW_WRITEWONTBLOCK 2   406 #define SSH_SOCKET_EXCEPTION_EOF         1   407 #define SSH_SOCKET_EXCEPTION_ERROR     2   409 #define SSH_SOCKET_CONNECTED_OK             1   410 #define SSH_SOCKET_CONNECTED_ERROR      2   411 #define SSH_SOCKET_CONNECTED_TIMEOUT    3   420 #define ssh_callbacks_init(p) do {\   421     (p)->size=sizeof(*(p)); \   433 #define ssh_callbacks_exists(p,c) (\   434   (p != NULL) && ( (char *)&((p)-> c) < (char *)(p) + (p)->size ) && \   454 #define ssh_callbacks_execute_list(list, cbtype, c, ...)      \   456         struct ssh_iterator *i = ssh_list_get_iterator(list); \   459             cb = ssh_iterator_value(cbtype, i);               \   460             if (ssh_callbacks_exists(cb, c))                  \   461                 cb-> c (__VA_ARGS__, cb->userdata);           \   486 #define ssh_callbacks_iterate(_cb_list, _cb_type, _cb_name)           \   488         struct ssh_iterator *_cb_i = ssh_list_get_iterator(_cb_list); \   490         for (; _cb_i != NULL; _cb_i = _cb_i->next) {                  \   491             _cb = ssh_iterator_value(_cb_type, _cb_i);                \   492             if (ssh_callbacks_exists(_cb, _cb_name))   494 #define ssh_callbacks_iterate_exec(_cb_name, ...) \   495                 _cb->_cb_name(__VA_ARGS__, _cb->userdata)   497 #define ssh_callbacks_iterate_end() \   514 #define SSH_PACKET_USED 1   517 #define SSH_PACKET_NOT_USED 2   527 #define SSH_PACKET_CALLBACK(name) \   528     int name (ssh_session session, uint8_t type, ssh_buffer packet, void *user)   662                                             int width, 
int height,
   663                                             int pxwidth, 
int pwheight,
   696                                             int single_connection,
   697                                             const char *auth_protocol,
   698                                             const char *auth_cookie,
   699                                             uint32_t screen_number,
   714                                             int width, 
int height,
   715                                             int pxwidth, 
int pwheight,
   744                                             const char *env_name,
   745                                             const char *env_value,
   757                                             const char *subsystem,
   914 typedef int (*ssh_thread_callback) (
void **lock);
   916 typedef unsigned long (*ssh_thread_id_callback) (void);
   919   ssh_thread_callback mutex_init;
   920   ssh_thread_callback mutex_destroy;
   921   ssh_thread_callback mutex_lock;
   922   ssh_thread_callback mutex_unlock;
   923   ssh_thread_id_callback thread_id;
 ssh_service_request_callback service_request_function
Definition: callbacks.h:334
ssh_channel_exit_status_callback channel_exit_status_function
Definition: callbacks.h:803
void(* ssh_status_callback)(ssh_session session, float status, void *userdata)
SSH Connection status callback. 
Definition: callbacks.h:102
ssh_channel_env_request_callback channel_env_request_function
Definition: callbacks.h:835
void(* ssh_channel_auth_agent_req_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH auth-agent-request from the client. This request is sent by a client when agent forwarding is ava...
Definition: callbacks.h:683
ssh_channel_pty_window_change_callback channel_pty_window_change_function
Definition: callbacks.h:827
Definition: callbacks.h:378
ssh_log_callback log_function
Definition: callbacks.h:156
uint8_t start
Definition: callbacks.h:532
int(* ssh_channel_pty_window_change_callback)(ssh_session session, ssh_channel channel, int width, int height, int pxwidth, int pwheight, void *userdata)
SSH channel PTY windows change (terminal size) from a client. 
Definition: callbacks.h:712
Definition: callbacks.h:777
Definition: callbacks.h:142
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. Called when data is available on a channel. 
Definition: callbacks.h:579
int(* ssh_service_request_callback)(ssh_session session, const char *service, void *userdata)
Handles an SSH service request. 
Definition: callbacks.h:244
size_t size
Definition: callbacks.h:306
ssh_channel_open_request_auth_agent_callback channel_open_request_auth_agent_function
Definition: callbacks.h:171
ssh_callback_data data
Definition: callbacks.h:387
ssh_gssapi_select_oid_callback gssapi_select_oid_function
Definition: callbacks.h:341
ssh_channel_signal_callback channel_signal_function
Definition: callbacks.h:799
Definition: messages.h:84
ssh_channel_write_wontblock_callback channel_write_wontblock_function
Definition: callbacks.h:843
int(* ssh_auth_none_callback)(ssh_session session, const char *user, void *userdata)
SSH authentication callback. Tries to authenticates user with the "none" method which is anonymous or...
Definition: callbacks.h:201
int(* ssh_auth_password_callback)(ssh_session session, const char *user, const char *password, void *userdata)
SSH authentication callback. 
Definition: callbacks.h:188
Definition: channels.h:62
ssh_auth_gssapi_mic_callback auth_gssapi_mic_function
Definition: callbacks.h:324
size_t size
Definition: callbacks.h:779
void * userdata
Definition: callbacks.h:148
int(* ssh_channel_pty_request_callback)(ssh_session session, ssh_channel channel, const char *term, int width, int height, int pxwidth, int pwheight, void *userdata)
SSH channel PTY request from a client. 
Definition: callbacks.h:659
ssh_channel_shell_request_callback channel_shell_request_function
Definition: callbacks.h:815
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:510
void(* connect_status_function)(void *userdata, float status)
Definition: callbacks.h:161
ssh_auth_callback auth_function
Definition: callbacks.h:152
ssh_channel_x11_req_callback channel_x11_req_function
Definition: callbacks.h:823
ssh_channel_exit_signal_callback channel_exit_signal_function
Definition: callbacks.h:807
LIBSSH_API int ssh_set_callbacks(ssh_session session, ssh_callbacks cb)
Set the session callback functions. 
Definition: callbacks.c:48
Definition: callbacks.h:530
Definition: session.h:102
ssh_channel(* ssh_channel_open_request_auth_agent_callback)(ssh_session session, void *userdata)
Handles an SSH new channel open "auth-agent" request. This happens when the server sends back an "aut...
Definition: callbacks.h:136
ssh_channel_open_request_x11_callback channel_open_request_x11_function
Definition: callbacks.h:168
ssh_packet_callback * callbacks
Definition: callbacks.h:536
ssh_channel_pty_request_callback channel_pty_request_function
Definition: callbacks.h:811
ssh_channel_subsystem_request_callback channel_subsystem_request_function
Definition: callbacks.h:839
ssh_channel(* ssh_channel_open_request_session_callback)(ssh_session session, void *userdata)
Handles an SSH new channel open session request. 
Definition: callbacks.h:254
Definition: callbacks.h:917
int(* ssh_channel_env_request_callback)(ssh_session session, ssh_channel channel, const char *env_name, const char *env_value, void *userdata)
SSH channel environment request from a client. 
Definition: callbacks.h:742
void(* ssh_global_request_callback)(ssh_session session, ssh_message message, void *userdata)
SSH global request callback. All global request will go through this callback. 
Definition: callbacks.h:112
uint8_t n_callbacks
Definition: callbacks.h:534
ssh_channel_close_callback channel_close_function
Definition: callbacks.h:795
ssh_auth_password_callback auth_password_function
Definition: callbacks.h:314
LIBSSH_API int ssh_set_channel_callbacks(ssh_channel channel, ssh_channel_callbacks cb)
Set the channel callback functions. 
Definition: callbacks.c:104
void * userdata
Definition: callbacks.h:382
void * user
Definition: callbacks.h:540
void * userdata
Definition: callbacks.h:310
LIBSSH_API int ssh_set_server_callbacks(ssh_session session, ssh_server_callbacks cb)
Set the session server callback functions. 
Definition: callbacks.c:133
Definition: callbacks.h:304
void(* ssh_logging_callback)(int priority, const char *function, const char *buffer, void *userdata)
SSH log callback. 
Definition: callbacks.h:90
ssh_auth_pubkey_callback auth_pubkey_function
Definition: callbacks.h:329
void(* ssh_channel_x11_req_callback)(ssh_session session, ssh_channel channel, int single_connection, const char *auth_protocol, const char *auth_cookie, uint32_t screen_number, void *userdata)
SSH X11 request from the client. This request is sent by a client when X11 forwarding is requested(an...
Definition: callbacks.h:694
ssh_callback_int controlflow
Definition: callbacks.h:391
void(* ssh_channel_eof_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH channel eof callback. Called when a channel receives EOF. 
Definition: callbacks.h:592
int(* ssh_channel_shell_request_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH channel Shell request from a client. 
Definition: callbacks.h:673
LIBSSH_API ssh_logging_callback ssh_get_log_callback(void)
Get the pointer to the logging callback function. 
Definition: log.c:210
int(* ssh_auth_pubkey_callback)(ssh_session session, const char *user, struct ssh_key_struct *pubkey, char signature_state, void *userdata)
SSH authentication callback. 
Definition: callbacks.h:231
ssh_global_request_callback global_request_function
Definition: callbacks.h:165
LIBSSH_API int ssh_add_channel_callbacks(ssh_channel channel, ssh_channel_callbacks cb)
Add channel callback functions. 
Definition: callbacks.c:109
LIBSSH_API int ssh_remove_channel_callbacks(ssh_channel channel, ssh_channel_callbacks cb)
Remove a channel callback. 
Definition: callbacks.c:114
ssh_gssapi_accept_sec_ctx_callback gssapi_accept_sec_ctx_function
Definition: callbacks.h:344
ssh_channel_eof_callback channel_eof_function
Definition: callbacks.h:791
void(* ssh_channel_close_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH channel close callback. Called when a channel is closed by remote peer. 
Definition: callbacks.h:602
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. Called when a channel has received an exit signal. 
Definition: callbacks.h:639
ssh_channel_exec_request_callback channel_exec_request_function
Definition: callbacks.h:831
LIBSSH_API int ssh_set_log_callback(ssh_logging_callback cb)
Set the logging callback function. 
Definition: log.c:200
ssh_auth_none_callback auth_none_function
Definition: callbacks.h:319
void(* ssh_log_callback)(ssh_session session, int priority, const char *message, void *userdata)
SSH log callback. All logging messages will go through this callback. 
Definition: callbacks.h:74
int(* ssh_channel_subsystem_request_callback)(ssh_session session, ssh_channel channel, const char *subsystem, void *userdata)
SSH channel subsystem request from a client. 
Definition: callbacks.h:755
void(* ssh_channel_signal_callback)(ssh_session session, ssh_channel channel, const char *signal, void *userdata)
SSH channel signal callback. Called when a channel has received a signal. 
Definition: callbacks.h:613
void(* ssh_channel_exit_status_callback)(ssh_session session, ssh_channel channel, int exit_status, void *userdata)
SSH channel exit status callback. Called when a channel has received an exit status. 
Definition: callbacks.h:624
ssh_callback_int_int exception
Definition: callbacks.h:395
LIBSSH_API int ssh_threads_set_callbacks(struct ssh_threads_callbacks_struct *cb)
Set the thread callbacks structure. 
Definition: threads.c:71
int(* ssh_auth_gssapi_mic_callback)(ssh_session session, const char *user, const char *principal, void *userdata)
SSH authentication callback. Tries to authenticates user with the "gssapi-with-mic" method...
Definition: callbacks.h:215
int(* ssh_channel_write_wontblock_callback)(ssh_session session, ssh_channel channel, size_t bytes, void *userdata)
SSH channel write will not block (flow control). 
Definition: callbacks.h:772
size_t size
Definition: callbacks.h:144
ssh_callback_int_int connected
Definition: callbacks.h:399
ssh_channel_data_callback channel_data_function
Definition: callbacks.h:787
ssh_channel_auth_agent_req_callback channel_auth_agent_req_function
Definition: callbacks.h:819
ssh_channel_open_request_session_callback channel_open_request_session_function
Definition: callbacks.h:338
void * userdata
Definition: callbacks.h:783
ssh_channel(* ssh_channel_open_request_x11_callback)(ssh_session session, const char *originator_address, int originator_port, void *userdata)
Handles an SSH new channel open X11 request. This happens when the server sends back an X11 connectio...
Definition: callbacks.h:124
int(* ssh_channel_exec_request_callback)(ssh_session session, ssh_channel channel, const char *command, void *userdata)
SSH channel Exec request from a client. 
Definition: callbacks.h:726