Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp5331483ybv; Tue, 11 Feb 2020 13:40:34 -0800 (PST) X-Google-Smtp-Source: APXvYqyllc/wZoQczlE1L/a+Iw1U1gkxOlAwpXk+g1+sfTVMeJ1y73KufB49YlqrPDzxi73d0SGd X-Received: by 2002:a9d:4b05:: with SMTP id q5mr6536087otf.57.1581457234763; Tue, 11 Feb 2020 13:40:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581457234; cv=none; d=google.com; s=arc-20160816; b=MHWSVLmur/Ej8sk5DHpSctqiTTcTY76VTLSDa58mYUWzBkNf1lhWvsOVDaEcfUrAIF 8GlA9aIs6qmn6+b6WgyyPWXKs2bSGMs35w7m6luFY51qGzY3I49q5cya6fJ8djvpHkP3 hUD+DCSntOS6RBQrUMtYWHgeAG50Ne5w6uuj4OSNYyIVXoksvBO49W/8VL0+bvbHA3C3 ujJo/vyjTx+TLpvpAavdv8BWsHhtEcAb5kl4P9R37bhCLrnEpxgqeTgh3JZ5KwEWK25c 48FtDy8Fu5EQnGOSU04ot9E1R0JkkxG6MyHGR1qdeN3rlSY6Ft9181QUNAYZztuQO/ln sXhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=SYZT81OlGTWcN0jtwAOfQIAD9I9KBu+11E308lphCzs=; b=Bvx7W5dagcgm0Db/hoh1yZhmcudJuk85TbpZ2IaDkvdwsHIiMtX9qwtQwSU0ME1OeD Rn1YNDDp/XCI2iUjKDvGrw00f2opRc7IqMD6zI8XlRodaswRKxJnOKSS2YdMOt5TxEOh Cga3dYp/Rdyk3QiqjTcTytsNdb9UU12+hJsk/jo/K2HAJ3nkx2YXP3iu/HEssYSRlmJa 9wBoTde0mJ0UYixKh6DP2pplk3tyoevGSSI5kPRy1UkB0kBGTf9hpuLimUUmlNG6kUHe fV4GgKb+QM8FYn25WJbTGRwI7xfLFzv+1rXuyJuzJjS/2PPGxPD1sXFqVR4d8i+YSXk2 +ZBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ixo0D9Xg; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b21si3317846ots.38.2020.02.11.13.40.08; Tue, 11 Feb 2020 13:40:34 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ixo0D9Xg; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728339AbgBKT2A (ORCPT + 99 others); Tue, 11 Feb 2020 14:28:00 -0500 Received: from mail-oi1-f196.google.com ([209.85.167.196]:45844 "EHLO mail-oi1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728202AbgBKT2A (ORCPT ); Tue, 11 Feb 2020 14:28:00 -0500 Received: by mail-oi1-f196.google.com with SMTP id v19so13900836oic.12 for ; Tue, 11 Feb 2020 11:27:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=SYZT81OlGTWcN0jtwAOfQIAD9I9KBu+11E308lphCzs=; b=ixo0D9XgaWnTDk8qIeRPXzE2qDTVTbdWeTw9MbTkIzO/BC62pJ1aXWIfMPHroCLW2m ZLm/BpC1q3eUHsLkNo0qM3JvA2D9tjOFMtAqLd1HA6Q1g2rUU5BjacGmJ3V2vZhJsyKO rOnPxrgjRYYEFEdONkzA2nuYYMnPZwpvMyw4gu9GOq49iHIMll8fdjJmfCwkxWEJwNEt 67GD+4uk8OJ6AxO6wsW3wkTcedxBT6cAfThXzqgyJk65hioXSy3doLqviYQSbCGal5AK RC5Riku5sLNRUUxZRyISfoDjyd7jJVjLHBDvb+8BzSKKTFiFEczDUM0YYnNRdgFbY2di Gcow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=SYZT81OlGTWcN0jtwAOfQIAD9I9KBu+11E308lphCzs=; b=WItYxLVJywkf26g3QyB8LEsTn8+RmjZrKtYr1u5KSFDizsYoKfkO1M4Q5EIlifoMn4 4ZIZZO1J1zdbWukPTjBuSsMTxwglUD/HFedD0zMVEZlEAL1DP4kHty92mffpcOCyrr8k J8qg4LAAaeLAMHibf9WyqQ9+wJT/GjLEe88zR4MIN7uN/N+vJhAEr3TbQWOsCRsgF55h GOdaowXgVuBKB5cAHz5YsSENVznPq+Xb6aissktZgjgEyqrZNexd0AxtjaWitkmk4iiU jHKmIc98Rw72+lZrynIacQ0g6+CRTn8HDy5g3nPSkLMxBg8cKRyWKOjG+seoEgvYZfPc vi1g== X-Gm-Message-State: APjAAAUcxz5EihT6vqKG6x/5P3lyXLxy3abcCLTeaACY1I/o/I5NUNhO 96wYio1Gvqu1F0je6na/1KndSCkOC5a88r9JBK8= X-Received: by 2002:aca:b1d5:: with SMTP id a204mr3817251oif.82.1581449279487; Tue, 11 Feb 2020 11:27:59 -0800 (PST) MIME-Version: 1.0 References: <1581402970-1781-1-git-send-email-ajay.kishore@intel.com> In-Reply-To: <1581402970-1781-1-git-send-email-ajay.kishore@intel.com> From: Luiz Augusto von Dentz Date: Tue, 11 Feb 2020 11:27:47 -0800 Message-ID: Subject: Re: [PATCH v2 1/6] obexd: Add initial support for MAP conversations To: Ajay Kishore Cc: "linux-bluetooth@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Hi Ajay, On Mon, Feb 10, 2020 at 11:32 PM Ajay Kishore wrote: > > Changes made to add a new method for MAP conversation listing i.e > "ListConversations" to handle conversation listing object > "x-bt/MAP-convo-listing". > --- > obexd/client/map.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 67 insertions(+) > > diff --git a/obexd/client/map.c b/obexd/client/map.c > index 550c5af..adf62d9 100644 > --- a/obexd/client/map.c > +++ b/obexd/client/map.c > @@ -1560,6 +1560,69 @@ static DBusMessage *map_list_messages(DBusConnection *connection, > return get_message_listing(map, message, folder, apparam); > } > > +static GObexApparam *parse_conversation_filters(GObexApparam *apparam, > + DBusMessageIter *iter) > +{ > + DBusMessageIter array; > + > + if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_ARRAY) { > + DBG("Not of type array"); > + return NULL; > + } > + > + dbus_message_iter_recurse(iter, &array); > + > + while (dbus_message_iter_get_arg_type(&array) == DBUS_TYPE_DICT_ENTRY) { > + const char *key; > + DBusMessageIter value, entry; > + > + dbus_message_iter_recurse(&array, &entry); > + dbus_message_iter_get_basic(&entry, &key); > + > + dbus_message_iter_next(&entry); > + dbus_message_iter_recurse(&entry, &value); > + > + /* TODO: Parse conversation filters */ > + > + dbus_message_iter_next(&array); > + } > + return apparam; > +} > + > +static DBusMessage *map_list_conversations(DBusConnection *connection, > + DBusMessage *message, > + void *user_data) > +{ > + struct map_data *map = user_data; > + const char *folder; > + GObexApparam *apparam; > + DBusMessageIter args; > + > + dbus_message_iter_init(message, &args); > + > + if (dbus_message_iter_get_arg_type(&args) != DBUS_TYPE_STRING) > + return g_dbus_create_error(message, > + ERROR_INTERFACE ".InvalidArguments", NULL); > + > + dbus_message_iter_get_basic(&args, &folder); > + > + apparam = g_obex_apparam_set_uint16(NULL, MAP_AP_MAXLISTCOUNT, > + DEFAULT_COUNT); > + apparam = g_obex_apparam_set_uint16(apparam, MAP_AP_STARTOFFSET, > + DEFAULT_OFFSET); > + > + dbus_message_iter_next(&args); > + > + if (parse_conversation_filters(apparam, &args) == NULL) { > + g_obex_apparam_free(apparam); > + return g_dbus_create_error(message, > + ERROR_INTERFACE ".InvalidArguments", NULL); > + } > + > + /*TODO: Return conversation listing */ > + return NULL; > +} > + > static char **get_filter_strs(uint64_t filter, int *size) > { > char **list, **item; > @@ -1817,6 +1880,10 @@ static const GDBusMethodTable map_methods[] = { > GDBUS_ARGS({ "folder", "s" }, { "filter", "a{sv}" }), > GDBUS_ARGS({ "messages", "a{oa{sv}}" }), > map_list_messages) }, > + { GDBUS_ASYNC_METHOD("ListConversations", > + GDBUS_ARGS({ "folder", "s" }, { "filter", "a{sv}" }), > + GDBUS_ARGS({ "conversations", "a{oa{sv}}" }), > + map_list_conversations) }, > { GDBUS_METHOD("ListFilterFields", > NULL, > GDBUS_ARGS({ "fields", "as" }), > -- > 2.7.4 I see some mix of v2 and v3 patches, I recommend updating the whole set to v3 to make easier to review. -- Luiz Augusto von Dentz