All of lore.kernel.org
 help / color / mirror / Atom feed
* Query regarding MAP 1.2 implementation
@ 2014-08-06 11:30 Gowtham Anandha Babu
  2014-08-06 12:02 ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 12+ messages in thread
From: Gowtham Anandha Babu @ 2014-08-06 11:30 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: bharat.panda

Hi All,

I am currently working on MAP implementation in BlueZ.
I am trying below things to make MAS connect with remote MCE client.

Below are the steps we followed;

On MCE device: 
--> MAS search
--> MAS connect
--> SET PATH (/)

On Bluez, obexd:
--> Run "bluetoothd"
--> Run "obexd"
--> On SET_PATH command it sends the obex session value as NULL.


obexd[32713]: obexd/plugins/bluetooth.c:profile_new_connection() device
/org/bluez/hci0/dev_00_1B_DC_07_33_4E
obexd[32713]: obexd/src/obex.c:obex_session_start()
obexd[32713]: obexd/src/obex.c:cmd_connect()
obexd[32713]: CONNECT(0x0), (null)(0xffffffff)
obexd[32713]: obexd/src/obex.c:cmd_connect() Selected driver: Message Access
server
obexd[32713]: obexd/plugins/mas.c:mas_connect() 
obexd[32713]: CONNECT(0x0), (null)(0x0)
obexd[32713]: obexd/src/obex.c:cmd_setpath()
obexd[32713]: obexd/src/obex.c:cmd_setpath() (null)
obexd[32713]: SETPATH(0x5), (null)(0xffffffff)
obexd[32713]: obexd/src/obex.c:parse_name() NAME:
obexd[32713]: obexd/plugins/mas.c:mas_setpath() SETPATH: name  nonhdr 0x20
obexd[32713]: SETPATH(0x5), NOT_FOUND(0x44)

Do we need to configure or run anything else before starting up obexd?




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Query regarding MAP 1.2 implementation
  2014-08-06 11:30 Query regarding MAP 1.2 implementation Gowtham Anandha Babu
@ 2014-08-06 12:02 ` Luiz Augusto von Dentz
       [not found]   ` <002101cfb550$afb1f400$0f15dc00$@samsung.com>
  0 siblings, 1 reply; 12+ messages in thread
From: Luiz Augusto von Dentz @ 2014-08-06 12:02 UTC (permalink / raw)
  To: Gowtham Anandha Babu; +Cc: linux-bluetooth, Bharat Panda

Hi,

On Wed, Aug 6, 2014 at 2:30 PM, Gowtham Anandha Babu
<gowtham.ab@samsung.com> wrote:
> Hi All,
>
> I am currently working on MAP implementation in BlueZ.
> I am trying below things to make MAS connect with remote MCE client.
>
> Below are the steps we followed;
>
> On MCE device:
> --> MAS search
> --> MAS connect
> --> SET PATH (/)
>
> On Bluez, obexd:
> --> Run "bluetoothd"
> --> Run "obexd"
> --> On SET_PATH command it sends the obex session value as NULL.
>
>
> obexd[32713]: obexd/plugins/bluetooth.c:profile_new_connection() device
> /org/bluez/hci0/dev_00_1B_DC_07_33_4E
> obexd[32713]: obexd/src/obex.c:obex_session_start()
> obexd[32713]: obexd/src/obex.c:cmd_connect()
> obexd[32713]: CONNECT(0x0), (null)(0xffffffff)
> obexd[32713]: obexd/src/obex.c:cmd_connect() Selected driver: Message Access
> server
> obexd[32713]: obexd/plugins/mas.c:mas_connect()
> obexd[32713]: CONNECT(0x0), (null)(0x0)
> obexd[32713]: obexd/src/obex.c:cmd_setpath()
> obexd[32713]: obexd/src/obex.c:cmd_setpath() (null)
> obexd[32713]: SETPATH(0x5), (null)(0xffffffff)
> obexd[32713]: obexd/src/obex.c:parse_name() NAME:
> obexd[32713]: obexd/plugins/mas.c:mas_setpath() SETPATH: name  nonhdr 0x20
> obexd[32713]: SETPATH(0x5), NOT_FOUND(0x44)
>
> Do we need to configure or run anything else before starting up obexd?

You are probably missing a backend implementation for your message
database, currently we are building with dummy as backend but the idea
is that we switch to a runtime solution probably we a D-Bus agent
interface to interact with these requests using a file descriptor to
optimize the data transfer. iirc samsung has done a D-Bus backend for
BlueZ 4 in Tizen perhaps you can star by looking what kind of
interface is there.


-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: Query regarding MAP 1.2 implementation
       [not found]     ` <CABBYNZL5OBA6iNhzTkpKTmSEj+5R_oU5KLOAsFcK0ZDHvridMw@mail.gmail.com>
@ 2014-09-01 12:29       ` Gowtham Anandha Babu
  2014-09-01 13:07         ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 12+ messages in thread
From: Gowtham Anandha Babu @ 2014-09-01 12:29 UTC (permalink / raw)
  To: 'Luiz Augusto von Dentz'; +Cc: linux-bluetooth, bharat.panda

Hi Luiz,

> -----Original Message-----
> From: Luiz Augusto von Dentz [mailto:luiz.dentz@gmail.com]
> Sent: Monday, August 11, 2014 4:39 PM
> To: Gowtham Anandha Babu
> Subject: Re: Query regarding MAP 1.2 implementation
> 
> Hi,
> 
> Well you can start over a new implementation, in fact that was what I suggest
> but first we need to agree on the D-Bus API which I expect you guys have
> something in mind since Tizen backend did use D-Bus in its backend if Im not
> mistaken, I have no idea about the Tizen solution really so I guess you will
> need to figure it out if you want to reuse its code or not but there will be
> changes to the interface thus my suggestion to start with the API definition.
> 
> On Mon, Aug 11, 2014 at 1:40 PM, Gowtham Anandha Babu
> <gowtham.ab@samsung.com> wrote:
> > Hi Luiz,
> > Backend implementation for message database in tizen is showing so many
> dependencies while setting up.
> > When I am trying to install/Make map-agent, its is giving me "package vconf
> not found" error.
> > When I am trying to install/Make vconf, its giving me some other packages
> not found error.
> > It goes on.
> >  Is there any other way/procedure to implement the backend message
> database for MAS?
> >
> > -----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, August 06, 2014 5:33 PM
> > To: Gowtham Anandha Babu
> > Cc: linux-bluetooth@vger.kernel.org; Bharat Panda
> > Subject: Re: Query regarding MAP 1.2 implementation
> >
> > Hi,
> >
> > On Wed, Aug 6, 2014 at 2:30 PM, Gowtham Anandha Babu
> <gowtham.ab@samsung.com> wrote:
> >> Hi All,
> >>
> >> I am currently working on MAP implementation in BlueZ.
> >> I am trying below things to make MAS connect with remote MCE client.
> >>
> >> Below are the steps we followed;
> >>
> >> On MCE device:
> >> --> MAS search
> >> --> MAS connect
> >> --> SET PATH (/)
> >>
> >> On Bluez, obexd:
> >> --> Run "bluetoothd"
> >> --> Run "obexd"
> >> --> On SET_PATH command it sends the obex session value as NULL.
> >>
> >>
> >> obexd[32713]: obexd/plugins/bluetooth.c:profile_new_connection()
> >> device /org/bluez/hci0/dev_00_1B_DC_07_33_4E
> >> obexd[32713]: obexd/src/obex.c:obex_session_start()
> >> obexd[32713]: obexd/src/obex.c:cmd_connect()
> >> obexd[32713]: CONNECT(0x0), (null)(0xffffffff)
> >> obexd[32713]: obexd/src/obex.c:cmd_connect() Selected driver:
> Message
> >> Access server
> >> obexd[32713]: obexd/plugins/mas.c:mas_connect()
> >> obexd[32713]: CONNECT(0x0), (null)(0x0)
> >> obexd[32713]: obexd/src/obex.c:cmd_setpath()
> >> obexd[32713]: obexd/src/obex.c:cmd_setpath() (null)
> >> obexd[32713]: SETPATH(0x5), (null)(0xffffffff)
> >> obexd[32713]: obexd/src/obex.c:parse_name() NAME:
> >> obexd[32713]: obexd/plugins/mas.c:mas_setpath() SETPATH: name
> nonhdr
> >> 0x20
> >> obexd[32713]: SETPATH(0x5), NOT_FOUND(0x44)
> >>
> >> Do we need to configure or run anything else before starting up obexd?
> >
> > You are probably missing a backend implementation for your message
> database, currently we are building with dummy as backend but the idea is
> that we switch to a runtime solution probably we a D-Bus agent interface to
> interact with these requests using a file descriptor to optimize the data
> transfer. iirc samsung has done a D-Bus backend for BlueZ 4 in Tizen perhaps
> you can star by looking what kind of interface is there.
> >
> >
> > --
> > Luiz Augusto von Dentz
> > --
> > To unsubscribe from this list: send the line "unsubscribe
> > linux-bluetooth" in the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> 
> 
> 
> --
> Luiz Augusto von Dentz

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. 

Regards,
Gowtham Anandha Babu


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Query regarding MAP 1.2 implementation
  2014-09-01 12:29       ` Gowtham Anandha Babu
@ 2014-09-01 13:07         ` Luiz Augusto von Dentz
  2014-09-02  5:22           ` Gowtham Anandha Babu
  0 siblings, 1 reply; 12+ messages in thread
From: Luiz Augusto von Dentz @ 2014-09-01 13:07 UTC (permalink / raw)
  To: Gowtham Anandha Babu; +Cc: linux-bluetooth, Bharat Panda

[-- Attachment #1: Type: text/plain, Size: 1681 bytes --]

Hi,

On Mon, Sep 1, 2014 at 3:29 PM, Gowtham Anandha Babu
<gowtham.ab@samsung.com> 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

[-- Attachment #2: 0001-obexd-mas-Fix-parsing-of-application-parameters.patch --]
[-- Type: text/x-patch, Size: 2803 bytes --]

From ff67d84b6a07e0522ede32bb5c67f8ef914881cf Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Mon, 1 Sep 2014 16:01:40 +0300
Subject: [PATCH BlueZ] obexd/mas: Fix parsing of application parameters

Some commands don't have any mandatory application parameter which means
inparams can be NULL which should not be treated as a bad request.
---
 obexd/plugins/mas.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/obexd/plugins/mas.c b/obexd/plugins/mas.c
index 5729c22..6d7871a 100644
--- a/obexd/plugins/mas.c
+++ b/obexd/plugins/mas.c
@@ -84,7 +84,7 @@ static int get_params(struct obex_session *os, struct mas_session *mas)
 
 	size = obex_get_apparam(os, &buffer);
 	if (size < 0)
-		size = 0;
+		return 0;
 
 	mas->inparams = g_obex_apparam_decode(buffer, size);
 	if (mas->inparams == NULL) {
@@ -249,7 +249,9 @@ static void get_messages_listing_cb(void *session, int err, uint16_t size,
 		return;
 	}
 
-	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
+	if (mas->inparams)
+		g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT,
+									&max);
 
 	if (max == 0) {
 		if (!entry)
@@ -397,7 +399,9 @@ static void get_folder_listing_cb(void *session, int err, uint16_t size,
 		return;
 	}
 
-	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
+	if (mas->inparams)
+		g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT,
+									&max);
 
 	if (max == 0) {
 		if (err != -EAGAIN)
@@ -493,8 +497,12 @@ static void *folder_listing_open(const char *name, int oflag, mode_t mode,
 
 	DBG("name = %s", name);
 
-	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
-	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_STARTOFFSET, &offset);
+	if (mas->inparams) {
+		g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT,
+									&max);
+		g_obex_apparam_get_uint16(mas->inparams, MAP_AP_STARTOFFSET,
+								&offset);
+	}
 
 	*err = messages_get_folder_listing(mas->backend_data, name, max,
 					offset, get_folder_listing_cb, mas);
@@ -526,6 +534,9 @@ static void *msg_listing_open(const char *name, int oflag, mode_t mode,
 		return NULL;
 	}
 
+	if (!mas->inparams)
+		goto done;
+
 	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
 	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_STARTOFFSET, &offset);
 	g_obex_apparam_get_uint8(mas->inparams, MAP_AP_SUBJECTLENGTH,
@@ -548,6 +559,7 @@ static void *msg_listing_open(const char *name, int oflag, mode_t mode,
 	g_obex_apparam_get_uint8(mas->inparams, MAP_AP_FILTERPRIORITY,
 						&filter.priority);
 
+done:
 	*err = messages_get_messages_listing(mas->backend_data, name, max,
 			offset, subject_len, &filter,
 			get_messages_listing_cb, mas);
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* RE: Query regarding MAP 1.2 implementation
  2014-09-01 13:07         ` Luiz Augusto von Dentz
@ 2014-09-02  5:22           ` Gowtham Anandha Babu
  2014-09-02  8:28             ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 12+ messages in thread
From: Gowtham Anandha Babu @ 2014-09-02  5:22 UTC (permalink / raw)
  To: 'Luiz Augusto von Dentz'; +Cc: linux-bluetooth


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
> <gowtham.ab@samsung.com> 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!".

Regards,
Gowtham


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Query regarding MAP 1.2 implementation
  2014-09-02  5:22           ` Gowtham Anandha Babu
@ 2014-09-02  8:28             ` Luiz Augusto von Dentz
  2014-09-03 10:27               ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 12+ messages in thread
From: Luiz Augusto von Dentz @ 2014-09-02  8:28 UTC (permalink / raw)
  To: Gowtham Anandha Babu; +Cc: linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 2720 bytes --]

Hi,

On Tue, Sep 2, 2014 at 8:22 AM, Gowtham Anandha Babu
<gowtham.ab@samsung.com> 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
>> <gowtham.ab@samsung.com> 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.


-- 
Luiz Augusto von Dentz

[-- Attachment #2: 0001-obexd-mas-Fix-parsing-of-application-parameters.patch --]
[-- Type: text/x-patch, Size: 2838 bytes --]

From e90daba9a202f072d626f3404c7b0181a4aa3ac1 Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Mon, 1 Sep 2014 16:01:40 +0300
Subject: [PATCH BlueZ] obexd/mas: Fix parsing of application parameters

Some commands don't have any mandatory application parameter which means
inparams can be NULL which should not be treated as a bad request.
---
 obexd/plugins/mas.c | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/obexd/plugins/mas.c b/obexd/plugins/mas.c
index 5729c22..24b26ae 100644
--- a/obexd/plugins/mas.c
+++ b/obexd/plugins/mas.c
@@ -83,8 +83,8 @@ static int get_params(struct obex_session *os, struct mas_session *mas)
 	ssize_t size;
 
 	size = obex_get_apparam(os, &buffer);
-	if (size < 0)
-		size = 0;
+	if (size <= 0)
+		return 0;
 
 	mas->inparams = g_obex_apparam_decode(buffer, size);
 	if (mas->inparams == NULL) {
@@ -249,7 +249,9 @@ static void get_messages_listing_cb(void *session, int err, uint16_t size,
 		return;
 	}
 
-	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
+	if (mas->inparams)
+		g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT,
+									&max);
 
 	if (max == 0) {
 		if (!entry)
@@ -397,7 +399,9 @@ static void get_folder_listing_cb(void *session, int err, uint16_t size,
 		return;
 	}
 
-	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
+	if (mas->inparams)
+		g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT,
+									&max);
 
 	if (max == 0) {
 		if (err != -EAGAIN)
@@ -493,8 +497,12 @@ static void *folder_listing_open(const char *name, int oflag, mode_t mode,
 
 	DBG("name = %s", name);
 
-	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
-	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_STARTOFFSET, &offset);
+	if (mas->inparams) {
+		g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT,
+									&max);
+		g_obex_apparam_get_uint16(mas->inparams, MAP_AP_STARTOFFSET,
+								&offset);
+	}
 
 	*err = messages_get_folder_listing(mas->backend_data, name, max,
 					offset, get_folder_listing_cb, mas);
@@ -526,6 +534,9 @@ static void *msg_listing_open(const char *name, int oflag, mode_t mode,
 		return NULL;
 	}
 
+	if (!mas->inparams)
+		goto done;
+
 	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
 	g_obex_apparam_get_uint16(mas->inparams, MAP_AP_STARTOFFSET, &offset);
 	g_obex_apparam_get_uint8(mas->inparams, MAP_AP_SUBJECTLENGTH,
@@ -548,6 +559,7 @@ static void *msg_listing_open(const char *name, int oflag, mode_t mode,
 	g_obex_apparam_get_uint8(mas->inparams, MAP_AP_FILTERPRIORITY,
 						&filter.priority);
 
+done:
 	*err = messages_get_messages_listing(mas->backend_data, name, max,
 			offset, subject_len, &filter,
 			get_messages_listing_cb, mas);
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: Query regarding MAP 1.2 implementation
  2014-09-02  8:28             ` Luiz Augusto von Dentz
@ 2014-09-03 10:27               ` Luiz Augusto von Dentz
  2014-09-03 11:35                 ` Gowtham Anandha Babu
  0 siblings, 1 reply; 12+ messages in thread
From: Luiz Augusto von Dentz @ 2014-09-03 10:27 UTC (permalink / raw)
  To: Gowtham Anandha Babu; +Cc: linux-bluetooth

Hi,

On Tue, Sep 2, 2014 at 11:28 AM, Luiz Augusto von Dentz
<luiz.dentz@gmail.com> wrote:
> Hi,
>
> On Tue, Sep 2, 2014 at 8:22 AM, Gowtham Anandha Babu
> <gowtham.ab@samsung.com> 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
>>> <gowtham.ab@samsung.com> 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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: Query regarding MAP 1.2 implementation
  2014-09-03 10:27               ` Luiz Augusto von Dentz
@ 2014-09-03 11:35                 ` Gowtham Anandha Babu
  2014-09-03 12:04                   ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 12+ messages in thread
From: Gowtham Anandha Babu @ 2014-09-03 11:35 UTC (permalink / raw)
  To: 'Luiz Augusto von Dentz'; +Cc: linux-bluetooth, bharat.panda

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
> <luiz.dentz@gmail.com> wrote:
> > Hi,
> >
> > On Tue, Sep 2, 2014 at 8:22 AM, Gowtham Anandha Babu
> > <gowtham.ab@samsung.com> 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
> >>> <gowtham.ab@samsung.com> 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$




Regards,
Gowtham


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Query regarding MAP 1.2 implementation
  2014-09-03 11:35                 ` Gowtham Anandha Babu
@ 2014-09-03 12:04                   ` Luiz Augusto von Dentz
  2014-09-03 12:18                     ` Gowtham Anandha Babu
  0 siblings, 1 reply; 12+ messages in thread
From: Luiz Augusto von Dentz @ 2014-09-03 12:04 UTC (permalink / raw)
  To: Gowtham Anandha Babu; +Cc: linux-bluetooth, Bharat Panda

Hi,

On Wed, Sep 3, 2014 at 2:35 PM, Gowtham Anandha Babu
<gowtham.ab@samsung.com> 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
>> <luiz.dentz@gmail.com> wrote:
>> > Hi,
>> >
>> > On Tue, Sep 2, 2014 at 8:22 AM, Gowtham Anandha Babu
>> > <gowtham.ab@samsung.com> 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
>> >>> <gowtham.ab@samsung.com> 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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: Query regarding MAP 1.2 implementation
  2014-09-03 12:04                   ` Luiz Augusto von Dentz
@ 2014-09-03 12:18                     ` Gowtham Anandha Babu
  2014-09-03 12:19                       ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 12+ messages in thread
From: Gowtham Anandha Babu @ 2014-09-03 12:18 UTC (permalink / raw)
  To: 'Luiz Augusto von Dentz'; +Cc: linux-bluetooth

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
> <gowtham.ab@samsung.com> 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
> >> <luiz.dentz@gmail.com> wrote:
> >> > Hi,
> >> >
> >> > On Tue, Sep 2, 2014 at 8:22 AM, Gowtham Anandha Babu
> >> > <gowtham.ab@samsung.com> 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
> >> >>> <gowtham.ab@samsung.com> 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. 

Regards, 
Gowtham


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Query regarding MAP 1.2 implementation
  2014-09-03 12:18                     ` Gowtham Anandha Babu
@ 2014-09-03 12:19                       ` Luiz Augusto von Dentz
  2014-09-03 13:52                         ` Gowtham Anandha Babu
  0 siblings, 1 reply; 12+ messages in thread
From: Luiz Augusto von Dentz @ 2014-09-03 12:19 UTC (permalink / raw)
  To: Gowtham Anandha Babu; +Cc: linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 6848 bytes --]

Hi,

On Wed, Sep 3, 2014 at 3:18 PM, Gowtham Anandha Babu
<gowtham.ab@samsung.com> 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
>> <gowtham.ab@samsung.com> 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
>> >> <luiz.dentz@gmail.com> wrote:
>> >> > Hi,
>> >> >
>> >> > On Tue, Sep 2, 2014 at 8:22 AM, Gowtham Anandha Babu
>> >> > <gowtham.ab@samsung.com> 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
>> >> >>> <gowtham.ab@samsung.com> 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

[-- Attachment #2: 0001-obexd-mas-Fix-crash-when-outparams-is-NULL.patch --]
[-- Type: text/x-patch, Size: 767 bytes --]

From 62cdfef597ef6bf142623e2cd1a743494102323d Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Wed, 3 Sep 2014 14:58:37 +0300
Subject: [PATCH BlueZ] obexd/mas: Fix crash when outparams is NULL

outparams can be NULL meaning no application parameters should be added
to the response.
---
 obexd/plugins/mas.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/obexd/plugins/mas.c b/obexd/plugins/mas.c
index 24b26ae..fb97fe3 100644
--- a/obexd/plugins/mas.c
+++ b/obexd/plugins/mas.c
@@ -676,6 +676,9 @@ static ssize_t any_get_next_header(void *object, void *buf, size_t mtu,
 		return 0;
 
 	mas->ap_sent = TRUE;
+	if (!mas->outparams)
+		return 0;
+
 	return g_obex_apparam_encode(mas->outparams, buf, mtu);
 }
 
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* RE: Query regarding MAP 1.2 implementation
  2014-09-03 12:19                       ` Luiz Augusto von Dentz
@ 2014-09-03 13:52                         ` Gowtham Anandha Babu
  0 siblings, 0 replies; 12+ messages in thread
From: Gowtham Anandha Babu @ 2014-09-03 13:52 UTC (permalink / raw)
  To: 'Luiz Augusto von Dentz'; +Cc: linux-bluetooth, bharat.panda

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
> <gowtham.ab@samsung.com> 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
> >> <gowtham.ab@samsung.com> 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
> >> >> <luiz.dentz@gmail.com> wrote:
> >> >> > Hi,
> >> >> >
> >> >> > On Tue, Sep 2, 2014 at 8:22 AM, Gowtham Anandha Babu
> >> >> > <gowtham.ab@samsung.com> 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
> >> >> >>> <gowtham.ab@samsung.com> 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


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-09-03 13:52 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-06 11:30 Query regarding MAP 1.2 implementation Gowtham Anandha Babu
2014-08-06 12:02 ` Luiz Augusto von Dentz
     [not found]   ` <002101cfb550$afb1f400$0f15dc00$@samsung.com>
     [not found]     ` <CABBYNZL5OBA6iNhzTkpKTmSEj+5R_oU5KLOAsFcK0ZDHvridMw@mail.gmail.com>
2014-09-01 12:29       ` Gowtham Anandha Babu
2014-09-01 13:07         ` Luiz Augusto von Dentz
2014-09-02  5:22           ` Gowtham Anandha Babu
2014-09-02  8:28             ` Luiz Augusto von Dentz
2014-09-03 10:27               ` Luiz Augusto von Dentz
2014-09-03 11:35                 ` Gowtham Anandha Babu
2014-09-03 12:04                   ` Luiz Augusto von Dentz
2014-09-03 12:18                     ` Gowtham Anandha Babu
2014-09-03 12:19                       ` Luiz Augusto von Dentz
2014-09-03 13:52                         ` Gowtham Anandha Babu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.