Moved SILC protocol ID utility functions to SILC core library.
authorPekka Riikonen <priikone@silcnet.org>
Tue, 8 Jan 2008 15:14:17 +0000 (15:14 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Tue, 8 Jan 2008 15:14:17 +0000 (15:14 +0000)
CHANGES.RUNTIME
lib/silcutil/silcutil.c
lib/silcutil/silcutil.h

index 9ce124dd32587e722365e66230b108b3f5b97a81..f6aa92764fb5f535f9b74c7c9e11d2cc3dc19886 100644 (file)
@@ -1,3 +1,9 @@
+Tue Jan  8 17:08:28 EET 2008  Pekka Riikonen <priikone@silcnet.org>
+
+       * Moved SILC protocol ID specific utility functions to SILC
+         core library from utility library.  Affected files are
+         lib/silcutil/silcutil.[ch].
+
 Tue Jan  8 09:41:57 EET 2008  Pekka Riikonen <priikone@silcnet.org>
 
         * Fixed printable fingerprint bufferoverlfow, RedHat bug 372021.
index 07688e36c55ce90fa864ad9fa443662095e6a007..75e85f933fbecc049e1251b132f6b338714590d2 100644 (file)
@@ -4,7 +4,7 @@
 
   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
@@ -224,110 +224,13 @@ char *silc_format(char *fmt, ...)
   va_list args;
   char buf[8192];
 
-  memset(buf, 0, sizeof(buf));
   va_start(args, fmt);
-  silc_vsnprintf(buf, sizeof(buf) - 1, fmt, args);
+  silc_vsnprintf(buf, sizeof(buf), fmt, args);
   va_end(args);
 
   return silc_strdup(buf);
 }
 
-/* Hash a ID. The `user_context' is the ID type. */
-
-SilcUInt32 silc_hash_id(void *key, void *user_context)
-{
-  SilcIdType id_type = (SilcIdType)SILC_PTR_TO_32(user_context);
-  SilcUInt32 h = 0;
-  int i;
-
-  switch (id_type) {
-  case SILC_ID_CLIENT:
-    {
-      SilcClientID *id = (SilcClientID *)key;
-
-      /* The client ID is hashed by hashing the hash of the ID
-        (which is a truncated MD5 hash of the nickname) so that we
-        can access the entry from the cache with both Client ID but
-        with just a hash from the ID as well. */
-      return silc_hash_client_id_hash(id->hash, NULL);
-    }
-    break;
-  case SILC_ID_SERVER:
-    {
-      SilcServerID *id = (SilcServerID *)key;
-
-      h = id->port * id->rnd;
-      for (i = 0; i < id->ip.data_len; i++)
-       h ^= id->ip.data[i];
-
-      return h;
-    }
-    break;
-  case SILC_ID_CHANNEL:
-    {
-      SilcChannelID *id = (SilcChannelID *)key;
-
-      h = id->port * id->rnd;
-      for (i = 0; i < id->ip.data_len; i++)
-       h ^= id->ip.data[i];
-
-      return h;
-    }
-    break;
-  default:
-    break;
-  }
-
-  return h;
-}
-
-/* Hash Client ID's hash. */
-
-SilcUInt32 silc_hash_client_id_hash(void *key, void *user_context)
-{
-  int i;
-  unsigned char *hash = key;
-  SilcUInt32 h = 0, g;
-
-  for (i = 0; i < CLIENTID_HASH_LEN; i++) {
-    h = (h << 4) + hash[i];
-    if ((g = h & 0xf0000000)) {
-      h = h ^ (g >> 24);
-      h = h ^ g;
-    }
-  }
-
-  return h;
-}
-
-/* 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. */
-
-SilcBool silc_hash_id_compare(void *key1, void *key2, void *user_context)
-{
-  SilcIdType id_type = (SilcIdType)SILC_PTR_TO_32(user_context);
-  return (id_type == SILC_ID_CLIENT ?
-         SILC_ID_COMPARE_HASH((SilcClientID *)key1, (SilcClientID *)key2) :
-         SILC_ID_COMPARE_TYPE(key1, key2, id_type));
-}
-
-/* Compares two ID's. Compares full IDs. */
-
-SilcBool silc_hash_id_compare_full(void *key1, void *key2, void *user_context)
-{
-  SilcIdType id_type = (SilcIdType)SILC_PTR_TO_32(user_context);
-  return SILC_ID_COMPARE_TYPE(key1, key2, id_type);
-}
-
-/* Compare two Client ID's entirely and not just the hash from the ID. */
-
-SilcBool silc_hash_client_id_compare(void *key1, void *key2,
-                                    void *user_context)
-{
-  return SILC_ID_COMPARE_TYPE(key1, key2, SILC_ID_CLIENT);
-}
-
 /* Creates fingerprint from data, usually used with SHA1 digests */
 
 char *silc_fingerprint(const unsigned char *data, SilcUInt32 data_len)
@@ -569,8 +472,6 @@ SilcBool silc_hex2data(const char *hex, unsigned char *data,
   if (ret_data_len)
     *ret_data_len = i;
 
-  SILC_LOG_HEXDUMP(("len %d", i), data, i);
-
   return TRUE;
 }
 
@@ -599,7 +500,5 @@ SilcBool silc_data2hex(const unsigned char *data, SilcUInt32 data_len,
     *cp++ = l + (l > 9 ? 'A' - 10 : '0');
   }
 
-  SILC_LOG_DEBUG(("HEX string: '%s'", hex));
-
   return TRUE;
 }
index 4524a80b0c6642237c0599e10c8fedc17ffb7603..726c67f4f455c6161d0ac3d20ce4573d03196aef 100644 (file)
@@ -4,7 +4,7 @@
 
   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
@@ -131,79 +131,6 @@ void silc_parse_command_line(unsigned char *buffer,
  ***/
 char *silc_format(char *fmt, ...);
 
-/****f* silcutil/SilcUtilAPI/silc_hash_id
- *
- * SYNOPSIS
- *
- *    SilcUInt32 silc_hash_id(void *key, void *user_context);
- *
- * DESCRIPTION
- *
- *    Hash a ID. The `user_context' is the ID type.
- *
- ***/
-SilcUInt32 silc_hash_id(void *key, void *user_context);
-
-/****f* silcutil/SilcUtilAPI/silc_hash_client_id_hash
- *
- * SYNOPSIS
- *
- *    SilcUInt32 silc_hash_client_id_hash(void *key, void *user_context)
- *
- * DESCRIPTION
- *
- *    Hash Client ID's hash.
- *
- ***/
-SilcUInt32 silc_hash_client_id_hash(void *key, void *user_context);
-
-/****f* silcutil/SilcUtilAPI/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.
- *
- ***/
-SilcBool silc_hash_id_compare(void *key1, void *key2, void *user_context);
-
-/****f* silcutil/SilcUtilAPI/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.
- *
- ***/
-SilcBool silc_hash_id_compare_full(void *key1, void *key2, void *user_context);
-
-/****f* silcutil/SilcUtilAPI/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.
- *
- ***/
-SilcBool silc_hash_client_id_compare(void *key1, void *key2,
-                                    void *user_context);
-
 /****f* silcutil/SilcUtilAPI/silc_fingerprint
  *
  * SYNOPSIS