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);
63 typedef int (*ssh_message_callback) (ssh_session, ssh_message message,
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);
113 ssh_message message,
void *userdata);
125 const char * originator_address,
int originator_port,
void *userdata);
217 char signature_state,
void *userdata);
252 typedef ssh_string (*ssh_gssapi_select_oid_callback) (ssh_session session,
const char *user,
253 int n_oid, ssh_string *oids,
void *userdata);
267 typedef int (*ssh_gssapi_accept_sec_ctx_callback) (ssh_session session,
268 ssh_string input_token, ssh_string *output_token,
void *userdata);
281 typedef int (*ssh_gssapi_verify_mic_callback) (ssh_session session,
282 ssh_string mic,
void *mic_buffer,
size_t mic_buffer_size,
void *userdata);
332 ssh_gssapi_verify_mic_callback gssapi_verify_mic_function;
388 #define SSH_SOCKET_FLOW_WRITEWILLBLOCK 1
389 #define SSH_SOCKET_FLOW_WRITEWONTBLOCK 2
391 #define SSH_SOCKET_EXCEPTION_EOF 1
392 #define SSH_SOCKET_EXCEPTION_ERROR 2
394 #define SSH_SOCKET_CONNECTED_OK 1
395 #define SSH_SOCKET_CONNECTED_ERROR 2
396 #define SSH_SOCKET_CONNECTED_TIMEOUT 3
405 #define ssh_callbacks_init(p) do {\
406 (p)->size=sizeof(*(p)); \
418 #define ssh_callbacks_exists(p,c) (\
419 (p != NULL) && ( (char *)&((p)-> c) < (char *)(p) + (p)->size ) && \
436 #define SSH_PACKET_USED 1
439 #define SSH_PACKET_NOT_USED 2
449 #define SSH_PACKET_CALLBACK(name) \
450 int name (ssh_session session, uint8_t type, ssh_buffer packet, void *user)
452 struct ssh_packet_callbacks_struct {
465 typedef struct ssh_packet_callbacks_struct *ssh_packet_callbacks;
584 int width,
int height,
585 int pxwidth,
int pwheight,
618 int single_connection,
619 const char *auth_protocol,
620 const char *auth_cookie,
621 uint32_t screen_number,
636 int width,
int height,
637 int pxwidth,
int pwheight,
666 const char *env_name,
667 const char *env_value,
679 const char *subsystem,
683 struct ssh_channel_callbacks_struct {
748 typedef struct ssh_channel_callbacks_struct *ssh_channel_callbacks;
772 ssh_channel_callbacks cb);
780 typedef int (*ssh_thread_callback) (
void **lock);
782 typedef unsigned long (*ssh_thread_id_callback) (void);
783 struct ssh_threads_callbacks_struct {
785 ssh_thread_callback mutex_init;
786 ssh_thread_callback mutex_destroy;
787 ssh_thread_callback mutex_lock;
788 ssh_thread_callback mutex_unlock;
789 ssh_thread_id_callback thread_id;
818 LIBSSH_API
struct ssh_threads_callbacks_struct *ssh_threads_get_pthread(
void);