Code auditing weekend results and fixes committing.
[silc.git] / apps / silcd / idlist.h
index 47448b95465c78db971c3bc132743c4523bb9b57..6b865eb957a0dfd9d41711020683c836beab9c6a 100644 (file)
@@ -4,7 +4,7 @@
 
   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
@@ -53,12 +53,10 @@ typedef struct {
   SilcPKCS pkcs;
   SilcPublicKey public_key;
 
-  /* Time when last received or sent data */
-  long last_receive;
-  long last_sent;
-
-  /* Boolean value whether connection is registered */
-  int registered;
+  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 */
 } *SilcIDListData, SilcIDListDataStruct;
 
 /* 
@@ -275,7 +273,7 @@ struct SilcClientEntryStruct {
   /* Generic data structure. DO NOT add anything before this! */
   SilcIDListDataStruct data;
 
-  char *nickname;
+  unsigned char *nickname;
   char *username;
   char *userinfo;
   SilcClientID *id;
@@ -463,26 +461,34 @@ silc_idlist_add_server(SilcIDList id_list,
                       SilcServerID *id, SilcServerEntry router,
                       void *connection);
 SilcServerEntry
-silc_idlist_find_server_by_id(SilcIDList id_list, SilcServerID *id);
+silc_idlist_find_server_by_id(SilcIDList id_list, SilcServerID *id,
+                             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);
 SilcClientEntry
-silc_idlist_add_client(SilcIDList id_list, char *nickname, char *username,
-                      char *userinfo, SilcClientID *id, 
+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);
 SilcClientEntry *
 silc_idlist_get_clients_by_nickname(SilcIDList id_list, char *nickname,
                                    char *server, unsigned int *clients_count);
+SilcClientEntry *
+silc_idlist_get_clients_by_hash(SilcIDList id_list, char *nickname,
+                               SilcHash md5hash,
+                               unsigned int *clients_count);
 SilcClientEntry
 silc_idlist_find_client_by_nickname(SilcIDList id_list, char *nickname,
-                                   char *server);
+                                   char *server,
+                                   SilcIDCacheEntry *ret_entry);
 SilcClientEntry
 silc_idlist_find_client_by_hash(SilcIDList id_list, char *nickname,
-                               SilcHash md5hash);
+                               SilcHash md5hash, SilcIDCacheEntry *ret_entry);
 SilcClientEntry
-silc_idlist_find_client_by_id(SilcIDList id_list, SilcClientID *id);
+silc_idlist_find_client_by_id(SilcIDList id_list, SilcClientID *id,
+                             SilcIDCacheEntry *ret_entry);
 SilcClientEntry
 silc_idlist_replace_client_id(SilcIDList id_list, SilcClientID *old_id,
                              SilcClientID *new_id);
@@ -492,8 +498,10 @@ silc_idlist_add_channel(SilcIDList id_list, char *channel_name, int mode,
                        SilcCipher channel_key);
 void silc_idlist_del_channel(SilcIDList id_list, SilcChannelEntry entry);
 SilcChannelEntry
-silc_idlist_find_channel_by_name(SilcIDList id_list, char *name);
+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);
+silc_idlist_find_channel_by_id(SilcIDList id_list, SilcChannelID *id,
+                              SilcIDCacheEntry *ret_entry);
 
 #endif