the server SILC will ever need. These are also the informations
that is broadcasted between servers and routers in the SILC network.
+ char *server_info
+ char *motd
+
+ Server info (from INFO command) saved temporarily and motd (from
+ MOTD command) saved temporarily.
+
SilcServerEntry router
This is a pointer back to the server list. This is the router server
int server_type;
SilcServerID *id;
char *server_info;
+ char *motd;
/* Pointer to the router */
SilcServerEntry router;
char username
- Client's (meaning user's) real name. This is defined in following
- manner:
+ Client's usename. This is defined in the following manner:
Server type List type Contents
====================================================
Default cipher of the channel. If this is NULL then server picks
the cipher to be used. This can be set at SILC_COMMAND_JOIN.
+ char *hmac_name
+
+ Default hmac of the channel. If this is NULL then server picks
+ the cipher to be used. This can be set at SILC_COMMAND_JOIN.
+
+ SilcPublicKey founder_key
+ SilcAuthMethod founder_method
+ unsigned char *founder_passwd
+ unsigned int founder_passwd_len
+
+ If the SILC_CMODE_FOUNDER_AUTH has been set then these will include
+ the founder's public key, authentication method and the password
+ if the method is SILC_AUTH_PASSWORD. If it is SILC_AUTH_PUBLIC_KEY
+ then the `founder_passwd' is NULL.
+
SilcServerEntry router
This is a pointer to the server list. This is the router server
int global_users;
char *topic;
char *cipher;
+ char *hmac_name;
- /* Data that is related to different channel modes. */
- struct {
- unsigned int user_limit;
- unsigned char *passphrase;
- unsigned char *ban_list;
- unsigned char *invite_list;
- unsigned char *cipher;
- unsigned int key_len;
- } mode_data;
+ SilcPublicKey founder_key;
+ SilcAuthMethod founder_method;
+ unsigned char *founder_passwd;
+ unsigned int founder_passwd_len;
+
+ unsigned int user_limit;
+ unsigned char *passphrase;
+ char *invite_list;
+ char *ban_list;
/* List of users on channel */
SilcList user_list;
void silc_idlist_del_server(SilcIDList id_list, SilcServerEntry entry);
SilcClientEntry
silc_idlist_add_client(SilcIDList id_list, unsigned char *nickname,
- char *username, char *userinfo, SilcClientID *id,
+ unsigned int nickname_len, char *username,
+ char *userinfo, SilcClientID *id,
SilcServerEntry router, void *connection);
int silc_idlist_del_client(SilcIDList id_list, SilcClientEntry entry);
SilcClientEntry *
SilcHash md5hash,
unsigned int *clients_count);
SilcClientEntry
-silc_idlist_find_client_by_nickname(SilcIDList id_list, char *nickname,
- char *server,
- SilcIDCacheEntry *ret_entry);
-SilcClientEntry
silc_idlist_find_client_by_hash(SilcIDList id_list, char *nickname,
SilcHash md5hash, SilcIDCacheEntry *ret_entry);
SilcClientEntry
SilcChannelEntry
silc_idlist_replace_channel_id(SilcIDList id_list, SilcChannelID *old_id,
SilcChannelID *new_id);
+SilcChannelEntry *
+silc_idlist_get_channels(SilcIDList id_list, SilcChannelID *channel_id,
+ unsigned int *channels_count);
#endif