Merge commit 'origin/silc.1.1.branch'
[silc.git] / lib / silcclient / client_internal.h
index 414aa4cfb295bef2198f87867334b8f7aca166ae..a297182024c827335a6caf89aa4e7ac4de015e22 100644 (file)
@@ -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 *********************************/
 
@@ -106,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 */
@@ -134,14 +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 */
-  void *prv_waiter;                     /* Private message packet waiter */
 
   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 */
@@ -172,5 +175,20 @@ void silc_client_del_connection(SilcClient client, SilcClientConnection conn);
 void silc_client_fsm_destructor(SilcFSM fsm, void *fsm_context,
                                void *destructor_context);
 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 */