Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
- Copyright (C) 1997 - 2000 Pekka Riikonen
+ Copyright (C) 1997 - 2001 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
SilcPKCS pkcs;
SilcPublicKey public_key;
- unsigned short cmd_ident; /* Current command identifier, 0 not used */
long last_receive; /* Time last received data */
long last_sent; /* Time last sent data */
unsigned char registered; /* Boolean whether connection is registered */
Current initial vector. Initial vector is received always along
with the channel packet. By default this is filled with NULL.
+ SilcHmac hmac;
+
+ HMAC of the channel.
+
*/
struct SilcChannelEntryStruct {
char *channel_name;
unsigned char *key;
unsigned int key_len;
unsigned char iv[SILC_CIPHER_MAX_IV_SIZE];
+ SilcHmac hmac;
};
/*
silc_idlist_find_server_by_id(SilcIDList id_list, SilcServerID *id,
SilcIDCacheEntry *ret_entry);
SilcServerEntry
+silc_idlist_find_server_by_name(SilcIDList id_list, char *name,
+ SilcIDCacheEntry *ret_entry);
+SilcServerEntry
+silc_idlist_find_server_by_conn(SilcIDList id_list, char *hostname,
+ int port, SilcIDCacheEntry *ret_entry);
+SilcServerEntry
silc_idlist_replace_server_id(SilcIDList id_list, SilcServerID *old_id,
SilcServerID *new_id);
void silc_idlist_del_server(SilcIDList id_list, SilcServerEntry entry);
silc_idlist_add_client(SilcIDList id_list, unsigned char *nickname,
char *username, char *userinfo, SilcClientID *id,
SilcServerEntry router, void *connection);
-void silc_idlist_del_client(SilcIDList id_list, SilcClientEntry entry);
+int silc_idlist_del_client(SilcIDList id_list, SilcClientEntry entry);
SilcClientEntry *
silc_idlist_get_clients_by_nickname(SilcIDList id_list, char *nickname,
char *server, unsigned int *clients_count);
SilcChannelEntry
silc_idlist_add_channel(SilcIDList id_list, char *channel_name, int mode,
SilcChannelID *id, SilcServerEntry router,
- SilcCipher channel_key);
-void silc_idlist_del_channel(SilcIDList id_list, SilcChannelEntry entry);
+ 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,
SilcIDCacheEntry *ret_entry);
SilcChannelEntry
silc_idlist_find_channel_by_id(SilcIDList id_list, SilcChannelID *id,
SilcIDCacheEntry *ret_entry);
+SilcChannelEntry
+silc_idlist_replace_channel_id(SilcIDList id_list, SilcChannelID *old_id,
+ SilcChannelID *new_id);
#endif