Return-Path: From: Gowtham Anandha Babu To: 'Luiz Augusto von Dentz' Cc: linux-bluetooth@vger.kernel.org, bharat.panda@samsung.com References: <000001cfb169$e4d01bc0$ae705340$@samsung.com> <002101cfb550$afb1f400$0f15dc00$@samsung.com> <006d01cfc5e0$6b4df110$41e9d330$@samsung.com> <000101cfc66e$00719660$0154c320$@samsung.com> <000301cfc76b$496508e0$dc2f1aa0$@samsung.com> <000301cfc771$2a4b8d20$7ee2a760$@samsung.com> In-reply-to: Subject: RE: Query regarding MAP 1.2 implementation Date: Wed, 03 Sep 2014 19:22:44 +0530 Message-id: <000601cfc77e$69f1e160$3dd5a420$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Hi, > -----Original Message----- > From: linux-bluetooth-owner@vger.kernel.org [mailto:linux-bluetooth- > owner@vger.kernel.org] On Behalf Of Luiz Augusto von Dentz > Sent: Wednesday, September 03, 2014 5:49 PM > To: Gowtham Anandha Babu > Cc: linux-bluetooth@vger.kernel.org > Subject: Re: Query regarding MAP 1.2 implementation > > Hi, > > On Wed, Sep 3, 2014 at 3:18 PM, Gowtham Anandha Babu > wrote: > > Hi, > > > >> -----Original Message----- > >> From: Luiz Augusto von Dentz [mailto:luiz.dentz@gmail.com] > >> Sent: Wednesday, September 03, 2014 5:34 PM > >> To: Gowtham Anandha Babu > >> Cc: linux-bluetooth@vger.kernel.org; Bharat Panda > >> Subject: Re: Query regarding MAP 1.2 implementation > >> > >> Hi, > >> > >> On Wed, Sep 3, 2014 at 2:35 PM, Gowtham Anandha Babu > >> wrote: > >> > Hi, > >> > > >> >> -----Original Message----- > >> >> From: Luiz Augusto von Dentz [mailto:luiz.dentz@gmail.com] > >> >> Sent: Wednesday, September 03, 2014 3:57 PM > >> >> To: Gowtham Anandha Babu > >> >> Cc: linux-bluetooth@vger.kernel.org > >> >> Subject: Re: Query regarding MAP 1.2 implementation > >> >> > >> >> Hi, > >> >> > >> >> On Tue, Sep 2, 2014 at 11:28 AM, Luiz Augusto von Dentz > >> >> wrote: > >> >> > Hi, > >> >> > > >> >> > On Tue, Sep 2, 2014 at 8:22 AM, Gowtham Anandha Babu > >> >> > wrote: > >> >> >> > >> >> >> Hi Luiz, > >> >> >> > >> >> >>> -----Original Message----- > >> >> >>> From: linux-bluetooth-owner@vger.kernel.org > >> >> >>> [mailto:linux-bluetooth- owner@vger.kernel.org] On Behalf Of > >> >> >>> Luiz Augusto von Dentz > >> >> >>> Sent: Monday, September 01, 2014 6:37 PM > >> >> >>> To: Gowtham Anandha Babu > >> >> >>> Cc: linux-bluetooth@vger.kernel.org; Bharat Panda > >> >> >>> Subject: Re: Query regarding MAP 1.2 implementation > >> >> >>> > >> >> >>> Hi, > >> >> >>> > >> >> >>> On Mon, Sep 1, 2014 at 3:29 PM, Gowtham Anandha Babu > >> >> >>> wrote: > >> >> >>> > >> >> >>> > The current message-dummy.c looks like, it is creating a > >> >> >>> > virtual folder in the > >> >> >>> system (Ex. Home/PC-NAME/map-messages/). > >> >> >>> > So, I created the map-messages directory in home/PC-NAME/. > >> Then > >> >> >>> > I tried > >> >> >>> SETPATH (mentioned in the previous thread). > >> >> >>> > The output is... > >> >> >>> > > >> >> >>> > obexd[29146]: obexd/src/obex.c:cmd_setpath() > >> >> >>> > obexd[29146]: SETPATH(0x5), (null)(0xffffffff) > >> >> >>> > obexd[29146]: obexd/src/obex.c:parse_name() NAME: > >> >> >>> > obexd[29146]: obexd/plugins/mas.c:mas_setpath() SETPATH: > >> >> >>> > name > >> >> >>> nonhdr > >> >> >>> > 0x20 > >> >> >>> > obexd[29146]: SETPATH(0x5), SUCCESS(0x20) > >> >> >>> > > >> >> >>> > But When I tried to call GetFolderListing() The output is... > >> >> >>> > > >> >> >>> > obexd[29146]: obexd/src/obex.c:cmd_get() session 0x1008c40 > >> >> >>> > obexd[29146]: GET(0x3), (null)(0xffffffff) > >> >> >>> > obexd[29146]: obexd/src/obex.c:parse_type() TYPE: > >> >> >>> > x-obex/folder-listing > >> >> >>> > obexd[29146]: obexd/plugins/mas.c:mas_get() GET: name (null) > >> >> >>> > type x-obex/folder-listing mas 0x1015c00 > >> >> >>> > obexd[29146]: obexd/plugins/mas.c:get_params() Error when > >> >> >>> > parsing > >> >> >>> parameters! > >> >> >>> > obexd[29146]: GET(0x3), BAD_REQUEST(0x40) > >> >> >>> > > >> >> >>> > But I had few folders created inside the map-messages. > >> >> >>> > >> >> >>> Bad request is normally when there is something wrong with the > >> >> >>> command itself, the error comes from here: > >> >> >>> > >> >> >>> mas->inparams = g_obex_apparam_decode(buffer, size); > >> >> >>> if (mas->inparams == NULL) { > >> >> >>> DBG("Error when parsing parameters!"); > >> >> >>> return -EBADR; > >> >> >>> } > >> >> >>> > >> >> >>> I suspect the problem is that there is no application > >> >> >>> parameters set which is fine since all the parameters of > >> >> >>> GetFolderListing are optional, please try with the attached > >> >> >>> patch I will send it shortly as a > >> >> proper patch to the mailing list. > >> >> >>> > >> >> >>> > >> >> >>> -- > >> >> >>> Luiz Augusto von Dentz > >> >> >> > >> >> >> > >> >> >> I applied the patch which was attached in the previous reply. > >> >> >> Still I am > >> >> getting the same error. > >> >> >> I tried printing the "size" inside the get_params function. Its > >> >> >> value is '0' for > >> >> GetFolderListing request. > >> >> >> If size=0, then g_obex_apparam_decode() function always return > >> >> >> NULL, > >> >> which leads to "Error when parsing parameters!". > >> >> > > >> >> > My bad, the check should be size <= 0 otherwise it will still > >> >> > cause this problem. > >> >> > >> >> Let me know if you can test the patch, I would like to push it > >> >> asap if it > >> works. > >> >> > >> >> > >> >> -- > >> >> Luiz Augusto von Dentz > >> > > >> > > >> > Now I am not getting the BAD_REQUEST error. But when I call the > >> > folder- > >> listing, it abruptly ends or terminate. > >> > > >> > The below one -- mas-connect > >> > > >> > obexd[14651]: obexd/plugins/bluetooth.c:profile_new_connection() > >> > device /org/bluez/hci0/dev_00_1B_DC_07_33_4E > >> > obexd[14651]: obexd/src/obex.c:obex_session_start() > >> > obexd[14651]: obexd/src/obex.c:cmd_connect() > >> > obexd[14651]: CONNECT(0x0), (null)(0xffffffff) > >> > obexd[14651]: obexd/src/obex.c:cmd_connect() Selected driver: > >> > Message Access server > >> > obexd[14651]: obexd/plugins/mas.c:mas_connect() > >> > obexd[14651]: CONNECT(0x0), (null)(0x0) > >> > > >> > The below one -- mas-setpath > >> > > >> > obexd[14651]: obexd/src/obex.c:cmd_setpath() > >> > obexd[14651]: SETPATH(0x5), (null)(0xffffffff) > >> > obexd[14651]: obexd/src/obex.c:parse_name() NAME: > >> > obexd[14651]: obexd/plugins/mas.c:mas_setpath() SETPATH: name > >> nonhdr > >> > 0x20 > >> > obexd[14651]: SETPATH(0x5), SUCCESS(0x20) > >> > > >> > The below one -- mas-getFolderListing > >> > > >> > obexd[14651]: obexd/src/obex.c:cmd_get() session 0x1ecbd80 > >> > obexd[14651]: GET(0x3), (null)(0xffffffff) > >> > obexd[14651]: obexd/src/obex.c:parse_type() TYPE: > >> > x-obex/folder-listing > >> > obexd[14651]: obexd/plugins/mas.c:mas_get() GET: name (null) type > >> > x-obex/folder-listing mas 0x1ecbc00 > >> > obexd[14651]: obexd/plugins/mas.c:folder_listing_open() name = > >> > (null) > >> > obexd[14651]: obexd/src/obex.c:driver_get_headers() name=(null) > >> > type=x-obex/folder-listing object=0x1ecbc00 > >> > obexd[14651]: obexd/plugins/mas.c:any_get_next_header() > >> > obexd[14651]: get_next_header(): Resource temporarily unavailable > >> > (11) > >> > obexd[14651]: obexd/src/obex.c:driver_get_headers() name=(null) > >> > type=x-obex/folder-listing object=0x1ecbc00 > >> > obexd[14651]: obexd/plugins/mas.c:any_get_next_header() > >> > gowtham.ab@gowtham-ab:~/latest_bluez/bluez$ > >> > >> I think I know what is the problem, outparams can also be NULL if no > >> application parameter has to be added to the response causing > >> g_obex_apparam_encode to crash, check with attached patch. Btw next > >> time please send the backtrace either using gdb or valgrind is highly > >> recommended. > >> > >> -- > >> Luiz Augusto von Dentz > > > > Sorry, I didn’t see any patch attached. > > There it go. > > -- > Luiz Augusto von Dentz Finally It worked!!! Before moving on to msg-listing function implementation, we need bMessage parser to check the messages. I saw in the below link http://comments.gmane.org/gmane.linux.bluez.kernel/22126 that someone had already implemented the parser it seems. Btw Do we need to implement the D-Bus Api's for this? or a simple function implementation that retrieves and parse all the messages from the system directory, since we don’t have any message service running at the back-end. Regards, Gowtham