From d9aaf72fcfb9924722b99e0ffa9ff684835fc6d0 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 13 May 2014 12:03:11 +0200 Subject: [PATCH 3/3] search-manager: allow user to pass TargetEntityType=NONE when requesting Fix https://bugs.freedesktop.org/show_bug.cgi?id=77030 --- src/search-manager.c | 9 +++++++++ tests/twisted/search/search_helper.py | 1 + 2 files changed, 10 insertions(+) diff --git a/src/search-manager.c b/src/search-manager.c index 66a25a3..430f3fa 100644 --- a/src/search-manager.c +++ b/src/search-manager.c @@ -318,6 +318,7 @@ gabble_search_manager_foreach_channel (TpChannelManager *manager, static const gchar * const search_channel_fixed_properties[] = { TP_PROP_CHANNEL_CHANNEL_TYPE, + TP_PROP_CHANNEL_TARGET_ENTITY_TYPE, NULL }; @@ -337,6 +338,7 @@ gabble_search_manager_type_foreach_channel_class (GType type, table = tp_asv_new ( TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH1, + TP_PROP_CHANNEL_TARGET_ENTITY_TYPE, G_TYPE_UINT, TP_ENTITY_TYPE_NONE, NULL); func (type, table, search_channel_allowed_properties, user_data); @@ -468,6 +470,8 @@ gabble_search_manager_create_channel (TpChannelManager *manager, GError *error = NULL; const gchar *channel_type; const gchar *server; + TpEntityType entity_type; + gboolean valid; channel_type = tp_asv_get_string (request_properties, TP_PROP_CHANNEL_CHANNEL_TYPE); @@ -475,6 +479,11 @@ gabble_search_manager_create_channel (TpChannelManager *manager, if (tp_strdiff (channel_type, TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH1)) return FALSE; + entity_type = tp_asv_get_uint32 (request_properties, + TP_PROP_CHANNEL_TARGET_ENTITY_TYPE, &valid); + if (valid && entity_type != TP_ENTITY_TYPE_NONE) + return FALSE; + if (tp_channel_manager_asv_has_unknown_properties (request_properties, search_channel_fixed_properties, search_channel_allowed_properties, &error)) diff --git a/tests/twisted/search/search_helper.py b/tests/twisted/search/search_helper.py index 3f9b201..ae08a95 100644 --- a/tests/twisted/search/search_helper.py +++ b/tests/twisted/search/search_helper.py @@ -10,6 +10,7 @@ def call_create(q, conn, server): request = dbus.Dictionary( { cs.CHANNEL_TYPE: cs.CHANNEL_TYPE_CONTACT_SEARCH, + cs.TARGET_ENTITY_TYPE: cs.HT_NONE, }, signature='sv') if server is not None: -- 1.9.0