+
+
+Structure SilcClientConnection
+
+
+NAME
+
+
+ typedef struct SilcClientConnectionStruct { ... }
+ *SilcClientConnection
+
+
+DESCRIPTION
+
+
+ This structure represents a connection. It is allocated and freed by
+ the library. It is returned to application in SilcClientConnectCallback.
+ It includes all the important data for the session such as local
+ client entry (which includes current nickname), local and remote IDs,
+ and other information. All strings in the structure are UTF-8 encoded.
+
+
+SOURCE
+
+ struct SilcClientConnectionStruct {
+ SilcClientEntry local_entry; /* Our own Client Entry */
+ SilcClientID *local_id; /* Our current Client ID */
+
+ char *remote_host; /* Remote host name */
+ int remote_port; /* Remote port */
+ SilcID remote_id; /* Remote ID */
+
+ SilcChannelEntry current_channel; /* Current joined channel */
+ SilcPublicKey public_key; /* Public key used in this connection */
+ SilcPrivateKey private_key; /* Private key */
+ SilcPacketStream stream; /* Connection to remote host */
+ SilcConnectionType type; /* Connection type */
+ SilcClientConnectCallback callback; /* Connection callback */
+ void *callback_context; /* Connection context */
+ SilcClient client; /* Pointer back to SilcClient */
+
+ /* Current say() operation associated context, identifies the client,
+ channel or server the message is related to. Application can use
+ this information to target the message better. */
+ union {
+ SilcClientEntry client_entry;
+ SilcChannelEntry channel_entry;
+ SilcServerEntry server_entry;
+ };
+ SilcIdType context_type; /* Defines which pointer is set
+ in the union. If SILC_ID_NONE
+ pointer is NULL. */
+
+ /* Application specific data. Application may set here whatever it wants. */
+ void *context;
+
+ /* Internal data for client library. Application cannot access this. */
+ SilcClientConnectionInternal internal;
+ };
+
+ |