Moved SILC protocol ID utility functions to SILC core library.
[runtime.git] / lib / silcutil / silcutil.c
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;
 }