client entry. This entry also includes the private message keys if
they are used. */
typedef struct SilcClientEntryStruct {
- char *nickname; /* nickname[@server] */
+ char *nickname; /* nickname */
char *username; /* username[@host] */
char *server; /* SILC server name */
+ char *realname;
unsigned int num;
SilcClientID *id;
with the remote client. */
SilcCipher send_key;
SilcCipher receive_key;
-} SilcClientEntryObject;
-
-typedef SilcClientEntryObject *SilcClientEntry;
+} *SilcClientEntry;
/* Client and its mode on a channel */
-typedef struct {
+typedef struct SilcChannelUserStruct {
SilcClientEntry client;
unsigned int mode;
-} SilcChannelUsers;
+ struct SilcChannelUserStruct *next;
+} *SilcChannelUser;
/* Channel entry context. This is allocate for every channel client has
joined to. This includes for example the channel specific keys */
unsigned int mode;
int on_channel;
- SilcChannelUsers *clients;
- unsigned int clients_count;
+ /* Joined clients */
+ SilcList clients;
/* Channel keys */
SilcCipher channel_key;
unsigned char *key;
unsigned int key_len;
unsigned char iv[SILC_CIPHER_MAX_IV_SIZE];
-} SilcChannelEntryObject;
+} *SilcChannelEntry;
-typedef SilcChannelEntryObject *SilcChannelEntry;
+/* Command identifier used by ID list routines when sending WHOIS/IDENTIFY
+ commands to routers. */
+#define SILC_IDLIST_IDENT 3333
/* Prototypes */
SilcClientConnection conn,
char *nickname,
char *server,
- unsigned int num);
+ unsigned int num,
+ int query);
SilcClientEntry silc_idlist_get_client_by_id(SilcClient client,
SilcClientConnection conn,
- SilcClientID *client_id,
- int query);
+ SilcClientID *client_id);
SilcChannelEntry silc_idlist_get_channel(SilcClient client,
SilcClientConnection conn,
char *channel);