not allow any command to be exeucted more than once in about
2 seconds. This is result of normal time().
+ char fast_command
+
+ Counter to check command bursts. By default, up to 5 commands
+ are allowed before limiting the execution. See command flags
+ for more detail.
+
SilcServerEntry router
This is a pointer to the server list. This is the router server whose
cell this client is coming from. This is used to route messages to
this client.
- SilcCipher session_key
-
- The actual session key established by key exchange protcol between
- connecting parties. This is used for both encryption and decryption.
-
- SilcPKCS pkcs
+ SilcList channels
- PKCS of the client. This maybe NULL.
-
- SilcHmac hmac
-
- MAC key used to compute MAC's for packets.
+ List of channels this client has joined.
void *connection
int mode;
long last_command;
+ char fast_command;
/* Pointer to the router */
SilcServerEntry router;
Current initial vector. Initial vector is received always along
with the channel packet. By default this is filled with NULL.
- char *hmac;
+ SilcHmac hmac;
- HMAC of the channel. Server only saves the name of the HMAC as
- it never actually needs to compute the MAC.
+ HMAC of the channel.
*/
struct SilcChannelEntryStruct {
unsigned char *key;
unsigned int key_len;
unsigned char iv[SILC_CIPHER_MAX_IV_SIZE];
- char *hmac;
+ SilcHmac hmac;
};
/*
SilcClientEntry
silc_idlist_replace_client_id(SilcIDList id_list, SilcClientID *old_id,
SilcClientID *new_id);
+void silc_idlist_client_destructor(SilcIDCache cache,
+ SilcIDCacheEntry entry);
SilcChannelEntry
silc_idlist_add_channel(SilcIDList id_list, char *channel_name, int mode,
SilcChannelID *id, SilcServerEntry router,
- SilcCipher channel_key, char *hmac);
+ SilcCipher channel_key, SilcHmac hmac);
int silc_idlist_del_channel(SilcIDList id_list, SilcChannelEntry entry);
SilcChannelEntry
silc_idlist_find_channel_by_name(SilcIDList id_list, char *name,