);
};
+/*! AO2 comparison function for bridges moh container */
+static int bridges_channel_compare(void *obj, void *arg, int flags)
+{
+ const struct stasis_app_bridge_channel_wrapper *object_left = obj;
+ const struct stasis_app_bridge_channel_wrapper *object_right = arg;
+ const char *right_key = arg;
+ int cmp;
+
+ switch (flags & OBJ_SEARCH_MASK) {
+ case OBJ_SEARCH_OBJECT:
+ right_key = object_right->bridge_id;
+ case OBJ_SEARCH_KEY:
+ cmp = strcmp(object_left->bridge_id, right_key);
+ break;
+ case OBJ_SEARCH_PARTIAL_KEY:
+ cmp = strncmp(object_left->bridge_id, right_key, strlen(right_key));
+ break;
+ default:
+ cmp = 0;
+ break;
+ }
+ if (cmp) {
+ return 0;
+ }
+ return CMP_MATCH;
+}
+
static void stasis_app_bridge_channel_wrapper_destructor(void *obj)
{
struct stasis_app_bridge_channel_wrapper *wrapper = obj;
BRIDGES_NUM_BUCKETS, bridges_hash, NULL, bridges_compare);
app_bridges_moh = ao2_container_alloc_hash(
AO2_ALLOC_OPT_LOCK_MUTEX, 0,
- 37, bridges_channel_hash_fn, NULL, NULL);
+ 37, bridges_channel_hash_fn, NULL, bridges_channel_compare);
app_bridges_playback = ao2_container_alloc_hash(
AO2_ALLOC_OPT_LOCK_MUTEX, AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT,
37, bridges_channel_hash_fn, bridges_channel_sort_fn, NULL);