Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 1997 - 2007 Pekka Riikonen
+ Copyright (C) 1997 - 2008 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
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcIDIPStruct {
unsigned char data[16]; /* IP data (in MSB first order) */
SilcUInt8 data_len; /* Length of the data (4 or 16) */
} SilcIDIP;
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcServerIDStruct {
SilcIDIP ip; /* n bit IP address */
SilcUInt16 port; /* 16 bit port */
SilcUInt16 rnd; /* 16 bit random number */
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcClientIDStruct {
SilcIDIP ip; /* n bit IP address */
unsigned char rnd; /* 8 bit random number */
unsigned char hash[CLIENTID_HASH_LEN]; /* 88 bit MD5 hash */
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcChannelIDStruct {
SilcIDIP ip; /* n bit IP address */
SilcUInt16 port; /* 16 bit port */
SilcUInt16 rnd; /* 16 bit random number */
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcIDStruct {
union {
SilcServerID server_id;
SilcChannelID channel_id;
***/
void *silc_id_dup(const void *id, SilcIdType type);
+/****f* silccore/SilcIDAPI/silc_hash_id
+ *
+ * SYNOPSIS
+ *
+ * SilcUInt32 silc_hash_id(void *key, void *user_context);
+ *
+ * DESCRIPTION
+ *
+ * Hash a ID. The `user_context' is the ID type. Can be used with
+ * SilcHashTable.
+ *
+ ***/
+SilcUInt32 silc_hash_id(void *key, void *user_context);
+
+/****f* silccore/SilcIDAPI/silc_hash_client_id_hash
+ *
+ * SYNOPSIS
+ *
+ * SilcUInt32 silc_hash_client_id_hash(void *key, void *user_context)
+ *
+ * DESCRIPTION
+ *
+ * Hash Client ID's hash. Can be used with SilcHashTable.
+ *
+ ***/
+SilcUInt32 silc_hash_client_id_hash(void *key, void *user_context);
+
+/****f* silccore/SilcIDAPI/silc_hash_id_compare
+ *
+ * SYNOPSIS
+ *
+ * SilcBool silc_hash_id_compare(void *key1, void *key2,
+ * void *user_context);
+ *
+ * DESCRIPTION
+ *
+ * Compares two ID's. May be used as SilcHashTable comparison function.
+ * The Client ID's compares only the hash of the Client ID not any other
+ * part of the Client ID. Other ID's are fully compared. Can be
+ * used with SilcHashTable.
+ *
+ ***/
+SilcBool silc_hash_id_compare(void *key1, void *key2, void *user_context);
+
+/****f* silccore/SilcIDAPI/silc_hash_id_compare_full
+ *
+ * SYNOPSIS
+ *
+ * SilcBool silc_hash_id_compare_full(void *key1, void *key2,
+ * void *user_context)
+ *
+ * DESCRIPTION
+ *
+ * Compares two ID's. May be used as SilcHashTable comparison function.
+ * To compare full ID's instead of only partial, like the
+ * silc_hash_id_compare does, use this function. Can be used with
+ * SilcHashTable.
+ *
+ ***/
+SilcBool silc_hash_id_compare_full(void *key1, void *key2, void *user_context);
+
+/****f* silccore/SilcIDAPI/silc_hash_client_id_compare
+ *
+ * SYNOPSIS
+ *
+ * SilcBool silc_hash_client_id_compare(void *key1, void *key2,
+ * void *user_context);
+ *
+ * DESCRIPTION
+ *
+ * Compare two Client ID's entirely and not just the hash from the ID.
+ * Can be used with SilcHashTable.
+ *
+ ***/
+SilcBool silc_hash_client_id_compare(void *key1, void *key2,
+ void *user_context);
+
#endif