|
14 | 14 | # License along with this library; if not, write to the Free Software |
15 | 15 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130 |
16 | 16 |
|
17 | | -from c_ssh cimport ssh_session, ssh_buffer, ssh_string, uint8_t |
| 17 | +from c_ssh cimport ssh_session, ssh_channel, ssh_buffer, ssh_string, \ |
| 18 | + uint32_t, uint8_t, ssh_key_struct, ssh_auth_callback, ssh_message |
18 | 19 |
|
19 | 20 | cdef extern from "libssh/include/callbacks.h" nogil: |
| 21 | + ctypedef void (*ssh_callback_int) (int code, void *user) |
| 22 | + ctypedef int (*ssh_callback_data) (const void *data, size_t len, void *user) |
| 23 | + ctypedef void (*ssh_callback_int_int) ( |
| 24 | + int code, int errno_code, void *user) |
| 25 | + ctypedef int (*ssh_message_callback) ( |
| 26 | + ssh_session, ssh_message message, void *user) |
| 27 | + ctypedef int (*ssh_channel_callback_int) ( |
| 28 | + ssh_channel channel, int code, void *user) |
| 29 | + ctypedef int (*ssh_channel_callback_data) ( |
| 30 | + ssh_channel channel, int code, void *data, size_t len, void *user) |
| 31 | + |
| 32 | + ctypedef void (*ssh_log_callback) (ssh_session session, int priority, |
| 33 | + const char *message, void *userdata) |
| 34 | + ctypedef void (*ssh_logging_callback) (int priority, |
| 35 | + const char *function, |
| 36 | + const char *buffer, |
| 37 | + void *userdata) |
| 38 | + |
| 39 | + ctypedef void (*ssh_status_callback) (ssh_session session, float status, |
| 40 | + void *userdata) |
| 41 | + |
| 42 | + ctypedef void (*ssh_global_request_callback) (ssh_session session, |
| 43 | + ssh_message message, void *userdata) |
| 44 | + |
| 45 | + ctypedef ssh_channel (*ssh_channel_open_request_x11_callback) ( |
| 46 | + ssh_session session, |
| 47 | + const char * originator_address, int originator_port, void *userdata) |
| 48 | + |
| 49 | + ctypedef ssh_channel (*ssh_channel_open_request_auth_agent_callback) ( |
| 50 | + ssh_session session, void *userdata) |
| 51 | + |
| 52 | + struct ssh_callbacks_struct: |
| 53 | + size_t size |
| 54 | + void *userdata |
| 55 | + ssh_auth_callback auth_function |
| 56 | + ssh_log_callback log_function |
| 57 | + void (*connect_status_function)(void *userdata, float status) |
| 58 | + ssh_global_request_callback global_request_function |
| 59 | + ssh_channel_open_request_x11_callback channel_open_request_x11_function |
| 60 | + ssh_channel_open_request_auth_agent_callback channel_open_request_auth_agent_function |
| 61 | + ctypedef ssh_callbacks_struct *ssh_callbacks |
| 62 | + |
| 63 | + ctypedef int (*ssh_auth_password_callback) ( |
| 64 | + ssh_session session, const char *user, const char *password, |
| 65 | + void *userdata) |
| 66 | + ctypedef int (*ssh_auth_none_callback) ( |
| 67 | + ssh_session session, const char *user, void *userdata) |
| 68 | + ctypedef int (*ssh_auth_gssapi_mic_callback) ( |
| 69 | + ssh_session session, const char *user, const char *principal, |
| 70 | + void *userdata) |
| 71 | + ctypedef int (*ssh_auth_pubkey_callback) ( |
| 72 | + ssh_session session, const char *user, ssh_key_struct *pubkey, |
| 73 | + char signature_state, void *userdata) |
| 74 | + ctypedef int (*ssh_service_request_callback) ( |
| 75 | + ssh_session session, const char *service, void *userdata) |
| 76 | + ctypedef ssh_channel (*ssh_channel_open_request_session_callback) ( |
| 77 | + ssh_session session, void *userdata) |
| 78 | + |
20 | 79 | ctypedef ssh_string (*void) (ssh_session, const char*, |
21 | 80 | int, ssh_string *, void *) |
22 | | - ctypedef int (*ssh_packet_callback) (ssh_session session, uint8_t type, ssh_buffer packet, void *user) |
| 81 | + ctypedef int (*ssh_gssapi_accept_sec_ctx_callback) (ssh_session session, |
| 82 | + ssh_string input_token, ssh_string *output_token, void *userdata) |
| 83 | + ctypedef int (*ssh_gssapi_verify_mic_callback) ( |
| 84 | + ssh_session session, |
| 85 | + ssh_string mic, void *mic_buffer, size_t mic_buffer_size, void *userdata) |
| 86 | + |
| 87 | + ctypedef ssh_string (*ssh_gssapi_select_oid_callback) ( |
| 88 | + ssh_session session, const char *user, |
| 89 | + int n_oid, ssh_string *oids, void *userdata) |
| 90 | + |
| 91 | + struct ssh_server_callbacks_struct: |
| 92 | + size_t size |
| 93 | + void *userdata |
| 94 | + ssh_auth_password_callback auth_password_function |
| 95 | + ssh_auth_none_callback auth_none_function |
| 96 | + ssh_auth_gssapi_mic_callback auth_gssapi_mic_function |
| 97 | + ssh_auth_pubkey_callback auth_pubkey_function |
| 98 | + ssh_service_request_callback service_request_function |
| 99 | + ssh_channel_open_request_session_callback channel_open_request_session_function |
| 100 | + ssh_gssapi_select_oid_callback gssapi_select_oid_function |
| 101 | + ssh_gssapi_accept_sec_ctx_callback gssapi_accept_sec_ctx_function |
| 102 | + ssh_gssapi_verify_mic_callback gssapi_verify_mic_function |
| 103 | + ctypedef ssh_server_callbacks_struct *ssh_server_callbacks |
| 104 | + int ssh_set_server_callbacks(ssh_session session, ssh_server_callbacks cb) |
| 105 | + struct ssh_socket_callbacks_struct: |
| 106 | + void *userdata |
| 107 | + ssh_callback_data data |
| 108 | + ssh_callback_int controlflow |
| 109 | + ssh_callback_int_int exception |
| 110 | + ssh_callback_int_int connected |
| 111 | + ctypedef ssh_socket_callbacks_struct *ssh_socket_callbacks |
| 112 | + |
| 113 | + enum: |
| 114 | + SSH_SOCKET_FLOW_WRITEWILLBLOCK |
| 115 | + SSH_SOCKET_FLOW_WRITEWONTBLOCK |
| 116 | + SSH_SOCKET_EXCEPTION_EOF |
| 117 | + SSH_SOCKET_EXCEPTION_ERROR |
| 118 | + SSH_SOCKET_CONNECTED_OK |
| 119 | + SSH_SOCKET_CONNECTED_ERROR |
| 120 | + SSH_SOCKET_CONNECTED_TIMEOUT |
| 121 | + ctypedef int (*ssh_packet_callback) ( |
| 122 | + ssh_session session, uint8_t type, ssh_buffer packet, void *user) |
| 123 | + enum: |
| 124 | + SSH_PACKET_USED |
| 125 | + SSH_PACKET_NOT_USED |
| 126 | + |
23 | 127 | struct ssh_packet_callbacks_struct: |
24 | 128 | uint8_t start |
25 | 129 | uint8_t n_callbacks |
| 130 | + ssh_packet_callback *callbacks |
26 | 131 | void *user |
27 | 132 | ctypedef ssh_packet_callbacks_struct *ssh_packet_callbacks |
| 133 | + int ssh_set_callbacks(ssh_session session, ssh_callbacks cb) |
| 134 | + ctypedef int (*ssh_channel_data_callback) (ssh_session session, |
| 135 | + ssh_channel channel, |
| 136 | + void *data, |
| 137 | + uint32_t len, |
| 138 | + int is_stderr, |
| 139 | + void *userdata) |
| 140 | + ctypedef void (*ssh_channel_eof_callback) (ssh_session session, |
| 141 | + ssh_channel channel, |
| 142 | + void *userdata) |
| 143 | + ctypedef void (*ssh_channel_close_callback) (ssh_session session, |
| 144 | + ssh_channel channel, |
| 145 | + void *userdata) |
| 146 | + ctypedef void (*ssh_channel_signal_callback) (ssh_session session, |
| 147 | + ssh_channel channel, |
| 148 | + const char *signal, |
| 149 | + void *userdata) |
| 150 | + ctypedef void (*ssh_channel_exit_status_callback) (ssh_session session, |
| 151 | + ssh_channel channel, |
| 152 | + int exit_status, |
| 153 | + void *userdata) |
| 154 | + ctypedef void (*ssh_channel_exit_signal_callback) (ssh_session session, |
| 155 | + ssh_channel channel, |
| 156 | + const char *signal, |
| 157 | + int core, |
| 158 | + const char *errmsg, |
| 159 | + const char *lang, |
| 160 | + void *userdata) |
| 161 | + ctypedef int (*ssh_channel_pty_request_callback) (ssh_session session, |
| 162 | + ssh_channel channel, |
| 163 | + const char *term, |
| 164 | + int width, int height, |
| 165 | + int pxwidth, int pwheight, |
| 166 | + void *userdata) |
| 167 | + ctypedef int (*ssh_channel_shell_request_callback) (ssh_session session, |
| 168 | + ssh_channel channel, |
| 169 | + void *userdata) |
| 170 | + ctypedef void (*ssh_channel_auth_agent_req_callback) (ssh_session session, |
| 171 | + ssh_channel channel, |
| 172 | + void *userdata) |
| 173 | + ctypedef void (*ssh_channel_x11_req_callback) (ssh_session session, |
| 174 | + ssh_channel channel, |
| 175 | + int single_connection, |
| 176 | + const char *auth_protocol, |
| 177 | + const char *auth_cookie, |
| 178 | + uint32_t screen_number, |
| 179 | + void *userdata) |
| 180 | + ctypedef int (*ssh_channel_pty_window_change_callback) ( |
| 181 | + ssh_session session, ssh_channel channel, int width, int height, |
| 182 | + int pxwidth, int pwheight, void *userdata); |
| 183 | + ctypedef int (*ssh_channel_exec_request_callback) (ssh_session session, |
| 184 | + ssh_channel channel, |
| 185 | + const char *command, |
| 186 | + void *userdata) |
| 187 | + |
| 188 | + ctypedef int (*ssh_channel_env_request_callback) (ssh_session session, |
| 189 | + ssh_channel channel, |
| 190 | + const char *env_name, |
| 191 | + const char *env_value, |
| 192 | + void *userdata) |
| 193 | + |
| 194 | + ctypedef int (*ssh_channel_subsystem_request_callback) (ssh_session session, |
| 195 | + ssh_channel channel, |
| 196 | + const char *subsystem, |
| 197 | + void *userdata) |
| 198 | + ctypedef int (*ssh_channel_write_wontblock_callback) (ssh_session session, |
| 199 | + ssh_channel channel, |
| 200 | + size_t bytes, |
| 201 | + void *userdata) |
| 202 | + |
| 203 | + struct ssh_channel_callbacks_struct: |
| 204 | + size_t size |
| 205 | + void *userdata |
| 206 | + ssh_channel_data_callback channel_data_function |
| 207 | + ssh_channel_eof_callback channel_eof_function |
| 208 | + ssh_channel_close_callback channel_close_function |
| 209 | + ssh_channel_signal_callback channel_signal_function |
| 210 | + ssh_channel_exit_status_callback channel_exit_status_function |
| 211 | + ssh_channel_exit_signal_callback channel_exit_signal_function |
| 212 | + ssh_channel_pty_request_callback channel_pty_request_function |
| 213 | + ssh_channel_shell_request_callback channel_shell_request_function |
| 214 | + ssh_channel_auth_agent_req_callback channel_auth_agent_req_function |
| 215 | + ssh_channel_x11_req_callback channel_x11_req_function |
| 216 | + ssh_channel_pty_window_change_callback channel_pty_window_change_function |
| 217 | + ssh_channel_exec_request_callback channel_exec_request_function |
| 218 | + ssh_channel_env_request_callback channel_env_request_function |
| 219 | + ssh_channel_subsystem_request_callback channel_subsystem_request_function |
| 220 | + ssh_channel_write_wontblock_callback channel_write_wontblock_function |
| 221 | + |
| 222 | + ctypedef ssh_channel_callbacks_struct *ssh_channel_callbacks |
| 223 | + int ssh_set_channel_callbacks(ssh_channel channel, |
| 224 | + ssh_channel_callbacks cb) |
| 225 | + int ssh_add_channel_callbacks(ssh_channel channel, |
| 226 | + ssh_channel_callbacks cb) |
| 227 | + int ssh_remove_channel_callbacks(ssh_channel channel, |
| 228 | + ssh_channel_callbacks cb) |
| 229 | + ctypedef int (*ssh_thread_callback) (void **lock) |
| 230 | + ctypedef unsigned long (*ssh_thread_id_callback) (); |
| 231 | + struct ssh_threads_callbacks_struct: |
| 232 | + const char *type |
| 233 | + ssh_thread_callback mutex_init |
| 234 | + ssh_thread_callback mutex_destroy |
| 235 | + ssh_thread_callback mutex_lock |
| 236 | + ssh_thread_callback mutex_unlock |
| 237 | + ssh_thread_id_callback thread_id |
| 238 | + int ssh_threads_set_callbacks(ssh_threads_callbacks_struct *cb) |
| 239 | + ssh_threads_callbacks_struct *ssh_threads_get_pthread() |
| 240 | + ssh_threads_callbacks_struct *ssh_threads_get_noop() |
| 241 | + int ssh_set_log_callback(ssh_logging_callback cb) |
| 242 | + ssh_logging_callback ssh_get_log_callback() |
0 commit comments