23 #include "libssh/priv.h"    24 #include "libssh/kex.h"    25 #include "libssh/packet.h"    26 #include "libssh/pcap.h"    27 #include "libssh/auth.h"    28 #include "libssh/channels.h"    29 #include "libssh/poll.h"    32 enum ssh_session_state_e {
    33   SSH_SESSION_STATE_NONE=0,
    34   SSH_SESSION_STATE_CONNECTING,
    35   SSH_SESSION_STATE_SOCKET_CONNECTED,
    36   SSH_SESSION_STATE_BANNER_RECEIVED,
    37   SSH_SESSION_STATE_INITIAL_KEX,
    38   SSH_SESSION_STATE_KEXINIT_RECEIVED,
    40   SSH_SESSION_STATE_AUTHENTICATING,
    41   SSH_SESSION_STATE_AUTHENTICATED,
    42   SSH_SESSION_STATE_ERROR,
    43   SSH_SESSION_STATE_DISCONNECTED
    49   DH_STATE_NEWKEYS_SENT,
    53 enum ssh_pending_call_e {
    54   SSH_PENDING_CALL_NONE = 0,
    55   SSH_PENDING_CALL_CONNECT,
    56   SSH_PENDING_CALL_AUTH_NONE,
    57   SSH_PENDING_CALL_AUTH_PASSWORD,
    58   SSH_PENDING_CALL_AUTH_OFFER_PUBKEY,
    59   SSH_PENDING_CALL_AUTH_PUBKEY,
    60   SSH_PENDING_CALL_AUTH_AGENT,
    61   SSH_PENDING_CALL_AUTH_KBDINT_INIT,
    62   SSH_PENDING_CALL_AUTH_KBDINT_SEND,
    63   SSH_PENDING_CALL_AUTH_GSSAPI_MIC
    67 #define SSH_SESSION_FLAG_BLOCKING 1    70 #define SSH_SESSION_FLAG_AUTHENTICATED 2    74 #define SSH_TIMEOUT_INFINITE -1    76 #define SSH_TIMEOUT_USER -2    78 #define SSH_TIMEOUT_DEFAULT -3    80 #define SSH_TIMEOUT_NONBLOCKING 0    83 struct ssh_common_struct {
    84     struct error_struct error;
    85     ssh_callbacks callbacks; 
    89 struct ssh_session_struct {
    90     struct ssh_common_struct common;
    91     struct ssh_socket_struct *socket;
   114     ssh_buffer in_buffer;
   116     ssh_buffer out_buffer;
   120     enum ssh_pending_call_e pending_call_state;
   121     enum ssh_session_state_e session_state;
   123     enum ssh_dh_state_e dh_handshake_state;
   124     enum ssh_auth_service_state_e auth_service_state;
   125     enum ssh_auth_state_e auth_state;
   126     enum ssh_channel_request_state_e global_req_state;
   127     struct ssh_agent_state_struct *agent_state;
   128     struct ssh_auth_auto_state_struct *auth_auto_state;
   137     int first_kex_follows_guess_wrong;
   139     ssh_buffer in_hashbuf;
   140     ssh_buffer out_hashbuf;
   141     struct ssh_crypto_struct *current_crypto;
   142     struct ssh_crypto_struct *next_crypto;  
   144     struct ssh_list *channels; 
   146     int exec_channel_opened; 
   151     struct ssh_kbdint_struct *kbdint;
   152     struct ssh_gssapi_struct *gssapi;
   161         enum ssh_keytypes_e hostkey;
   165     struct ssh_list *ssh_message_list; 
   166     int (*ssh_message_callback)( 
struct ssh_session_struct *session, ssh_message msg, 
void *userdata);
   167     void *ssh_message_callback_data;
   168     ssh_server_callbacks server_callbacks;
   169     void (*ssh_connection_callback)( 
struct ssh_session_struct *session);
   170     struct ssh_packet_callbacks_struct default_packet_callbacks;
   171     struct ssh_list *packet_callbacks;
   173     ssh_poll_ctx default_poll_ctx;
   176     ssh_pcap_context pcap_ctx; 
   179         struct ssh_list *identity;
   185         char *wanted_methods[10];
   188         unsigned long timeout; 
   189         unsigned long timeout_usec;
   192         int StrictHostKeyChecking;
   195         char compressionlevel;
   196         char *gss_server_identity;
   197         char *gss_client_identity;
   198         int gss_delegate_creds;
   201     ssh_counter socket_counter;
   202     ssh_counter raw_counter;
   210 typedef int (*ssh_termination_function)(
void *user);
   211 int ssh_handle_packets(ssh_session session, 
int timeout);
   212 int ssh_handle_packets_termination(ssh_session session, 
int timeout,
   213     ssh_termination_function fct, 
void *user);
   214 void ssh_socket_exception_callback(
int code, 
int errno_code, 
void *user);
 These are the callbacks exported by the socket structure They are called by the socket module when a ...
Definition: callbacks.h:363