X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcclient%2Fclient_internal.h;h=a297182024c827335a6caf89aa4e7ac4de015e22;hp=91243d8f0564da73ad522eedad4bfbbcf41647a4;hb=805fddcf6431e784f9f77114782a90c9d12f9cbe;hpb=66b9316f5d654e08655def94f56cfe2898754361 diff --git a/lib/silcclient/client_internal.h b/lib/silcclient/client_internal.h index 91243d8f..a2971820 100644 --- a/lib/silcclient/client_internal.h +++ b/lib/silcclient/client_internal.h @@ -29,6 +29,8 @@ #include "client_channel.h" #include "client_notify.h" #include "client_keyagr.h" +#include "client_ftp.h" +#include "client_listener.h" /****************************** Definitions *********************************/ @@ -47,16 +49,7 @@ typedef struct { SilcSKE ske; SilcSKEVerifyCbCompletion completion; void *completion_context; -} *VerifyKeyContext; - -/* Structure to hold away messages set by user. This is mainly created - for future extensions where away messages could be set according filters - such as nickname and hostname. For now only one away message can - be set in one connection. */ -struct SilcClientAwayStruct { - char *away; - struct SilcClientAwayStruct *next; -}; +} *SilcVerifyKeyContext; /* Command and command reply context used to hold registered commands in the SILC client. */ @@ -105,7 +98,7 @@ typedef struct SilcClientCommandContextStruct { /* Internal context for the client->internal pointer in the SilcClient. */ struct SilcClientInternalStruct { SilcFSMStruct fsm; /* Client's FSM */ - SilcFSMEventStruct wait_event; /* Event signaller */ + SilcFSMEventStruct wait_event; /* Event signaller */ SilcClientOperations *ops; /* Client operations */ SilcClientParams *params; /* Client parameters */ SilcPacketEngine packet_engine; /* Packet engine */ @@ -115,7 +108,7 @@ struct SilcClientInternalStruct { char *silc_client_version; /* Version set by application */ SilcClientRunning running; /* Running/Stopped callback */ void *running_context; /* Context for runnign callback */ - SilcAtomic16 conns; /* Number of connections in client */ + SilcAtomic32 conns; /* Number of connections in client */ SilcUInt16 next_session_id; /* Next FTP session ID */ /* Events */ @@ -143,12 +136,15 @@ struct SilcClientConnectionInternalStruct { SilcAsyncOperation op; /* Protocols async operation */ SilcAsyncOperation cop; /* Async operation for application */ SilcHashTable attrs; /* Configured user attributes */ + SilcStream user_stream; /* Low level stream in connecting */ char *disconnect_message; /* Disconnection message */ + char *away_message; /* Away message */ SilcIDCache client_cache; /* Client entry cache */ SilcIDCache channel_cache; /* Channel entry cache */ SilcIDCache server_cache; /* Server entry cache */ + SilcUInt32 remote_version; /* Remote SILC protocol version */ SilcAtomic16 cmd_ident; /* Current command identifier */ SilcUInt8 retry_count; /* Packet retry counter */ SilcUInt8 retry_timer; /* Packet retry timer */ @@ -166,10 +162,6 @@ struct SilcClientConnectionInternalStruct { unsigned int registering : 1; /* Set when registering to network */ unsigned int rekey_responder : 1; /* Set when rekeying as responder */ unsigned int auth_request : 1; /* Set when requesting auth method */ - - SilcClientAway *away; - SilcClientFtpSession active_session; - SilcHashTable privmsg_wait; /* Waited private messages */ }; SILC_FSM_STATE(silc_client_connection_st_run); @@ -180,29 +172,23 @@ SILC_FSM_STATE(silc_client_disconnect); SILC_FSM_STATE(silc_client_st_stop); void silc_client_del_connection(SilcClient client, SilcClientConnection conn); -SilcBool silc_client_del_client(SilcClient client, SilcClientConnection conn, - SilcClientEntry client_entry); -SilcBool silc_client_del_channel(SilcClient client, SilcClientConnection conn, - SilcChannelEntry channel); -SilcBool silc_client_del_server(SilcClient client, SilcClientConnection conn, - SilcServerEntry server); -SilcUInt16 silc_client_command_send_argv(SilcClient client, - SilcClientConnection conn, - SilcCommand command, - SilcClientCommandReply reply, - void *reply_context, - SilcUInt32 argc, - unsigned char **argv, - SilcUInt32 *argv_lens, - SilcUInt32 *argv_types); -void silc_client_command_free(SilcClientCommandContext cmd); void silc_client_fsm_destructor(SilcFSM fsm, void *fsm_context, void *destructor_context); - -void silc_client_ftp(SilcClient client, SilcClientConnection conn, - SilcPacket packet); -void silc_client_connection_auth_request(SilcClient client, - SilcClientConnection conn, - SilcPacket packet); - -#endif +void silc_client_command_free(SilcClientCommandContext cmd); +SilcClientConnection +silc_client_add_connection(SilcClient client, + SilcConnectionType conn_type, + SilcBool connect, + SilcClientConnectionParams *params, + SilcPublicKey public_key, + SilcPrivateKey private_key, + char *remote_host, int port, + SilcClientConnectCallback callback, + void *context); +void silc_client_attributes_process(SilcClient client, + SilcClientConnection conn, + SilcDList attrs, + SilcPKCSSignCb sign_cb, + void *context); + +#endif /* CLIENT_INTERNAL_H */