From b82f48662651692cb80137c0c027cfc12a5677db Mon Sep 17 00:00:00 2001 From: Stefan Becker Date: Thu, 15 Dec 2011 22:08:36 +0200 Subject: [PATCH] svc: parameterize sipe_svc_ab_entry_request() Add parameters for number for search item and return items so that it works also for contact searches. --- src/core/sipe-buddy.c | 14 ++++++++++++-- src/core/sipe-svc.c | 14 ++++++++------ src/core/sipe-svc.h | 4 ++++ 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/core/sipe-buddy.c b/src/core/sipe-buddy.c index 69cdb42d..b2e2539b 100644 --- a/src/core/sipe-buddy.c +++ b/src/core/sipe-buddy.c @@ -501,6 +501,8 @@ struct ms_dlx_data; struct ms_dlx_data { gchar *search; gchar *other; + guint entries; + guint max_returns; sipe_svc_callback *callback; /* must call ms_dlx_free() */ void (*failed_callback)(struct sipe_core_private *sipe_private, @@ -530,6 +532,8 @@ static void ms_dlx_webticket(struct sipe_core_private *sipe_private, auth_uri, wsse_security, mdd->search, + mdd->entries, + mdd->max_returns, mdd->callback, mdd)) { /* callback data passed down the line */ @@ -603,6 +607,8 @@ void sipe_core_buddy_search(struct sipe_core_public *sipe_public, struct ms_dlx_data *mdd = g_new0(struct ms_dlx_data, 1); mdd->search = g_strdup(""); /* TBD... */ + mdd->entries = 1; + mdd->max_returns = 100; mdd->callback = search_ab_entry_response; mdd->failed_callback = search_ab_entry_failed; @@ -961,10 +967,14 @@ void sipe_core_buddy_get_info(struct sipe_core_public *sipe_public, if (sipe_private->dlx_uri) { struct ms_dlx_data *mdd = g_new0(struct ms_dlx_data, 1); - mdd->search = g_strdup_printf("msRTCSIP-PrimaryUserAddress" - "%s", + mdd->search = g_strdup_printf("" + " msRTCSIP-PrimaryUserAddress" + " %s" + "", who); mdd->other = g_strdup(who); + mdd->entries = 1; + mdd->max_returns = 1; mdd->callback = get_info_ab_entry_response; mdd->failed_callback = get_info_ab_entry_failed; diff --git a/src/core/sipe-svc.c b/src/core/sipe-svc.c index b7ae6568..e68ae8a2 100644 --- a/src/core/sipe-svc.c +++ b/src/core/sipe-svc.c @@ -341,6 +341,8 @@ gboolean sipe_svc_ab_entry_request(struct sipe_core_private *sipe_private, const gchar *uri, const gchar *wsse_security, const gchar *search, + guint entries, + guint max_returns, sipe_svc_callback *callback, gpointer callback_data) { @@ -351,19 +353,19 @@ gboolean sipe_svc_ab_entry_request(struct sipe_core_private *sipe_private, " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\"" ">" " " - " " - " " - " %s" - " " + " " + " %s" " " " " " false" - " 1" + " %d" " displayName,msRTCSIP-PrimaryUserAddress,title,telephoneNumber,homePhone,mobile,otherTelephone,mail,company,country" " " " " "", - search); + entries, + search, + max_returns); ret = new_soap_req(sipe_private, uri, diff --git a/src/core/sipe-svc.h b/src/core/sipe-svc.h index d4f32b25..83421e68 100644 --- a/src/core/sipe-svc.h +++ b/src/core/sipe-svc.h @@ -72,6 +72,8 @@ gboolean sipe_svc_get_and_publish_cert(struct sipe_core_private *sipe_private, * @param uri service URI * @param wsse_security predefined authentication token * @param search [MS-DLX] AbEntryRequest.ChangeSearchQuery in XML + * @param entries array entries in search XML string + * @param max_returns how many entries to return * @param callback callback function * @param callback_data callback data * @return @c TRUE if search was triggered @@ -80,6 +82,8 @@ gboolean sipe_svc_ab_entry_request(struct sipe_core_private *sipe_private, const gchar *uri, const gchar *wsse_security, const gchar *search, + guint entries, + guint max_returns, sipe_svc_callback *callback, gpointer callback_data); -- 2.11.4.GIT