From bcec5e22a27d00171b8120fec928d799a1396149 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 12 Mar 2014 04:50:42 +0500 Subject: [PATCH] FS-6342 --resolve regression from 804ef7709dbf1ca69b0106578015a78bd2168b70 Missed part of properly implementing the case-insensitive mode on the hash causing the dp lookup xml not to match XML --- src/include/switch_hashtable.h | 5 +++++ src/switch_core_hash.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/include/switch_hashtable.h b/src/include/switch_hashtable.h index 4056064a32..7bf0ea86a0 100644 --- a/src/include/switch_hashtable.h +++ b/src/include/switch_hashtable.h @@ -199,6 +199,11 @@ static inline int switch_hash_equalkeys(void *k1, void *k2) return strcmp((char *) k1, (char *) k2) ? 0 : 1; } +static inline int switch_hash_equalkeys_ci(void *k1, void *k2) +{ + return strcasecmp((char *) k1, (char *) k2) ? 0 : 1; +} + static inline uint32_t switch_hash_default(void *ky) { unsigned char *str = (unsigned char *) ky; diff --git a/src/switch_core_hash.c b/src/switch_core_hash.c index 56aee60620..80be156114 100644 --- a/src/switch_core_hash.c +++ b/src/switch_core_hash.c @@ -38,7 +38,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_hash_init_case(switch_hash_t **hash, switch_bool_t case_sensitive) { - return switch_create_hashtable(hash, 16, case_sensitive ? switch_hash_default : switch_hash_default_ci, switch_hash_equalkeys); + if (case_sensitive) { + return switch_create_hashtable(hash, 16, switch_hash_default, switch_hash_equalkeys); + } else { + return switch_create_hashtable(hash, 16, switch_hash_default_ci, switch_hash_equalkeys_ci); + } }