2011-10-20 08:34:48

by Rafal Michalski

[permalink] [raw]
Subject: [PATCH obexd] Fix pulling single vCard for parameters header missing

According to PBAP specification (ANNEX A), all application-parameters
are optional in case of pulling single vCard entry, so header for
application-parameters can be omitted, and it would be valid as well.
Previously pulling single vCard was always failing with "Bad Request"
status in such a circumstance.
This patch fixes that issue and pulling single vCard is done successfully
with "OK" status. Output vCard would contain all fields under 2.1 format
(as for default settings).
---
plugins/pbap.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/plugins/pbap.c b/plugins/pbap.c
index a03f07c..066e37e 100644
--- a/plugins/pbap.c
+++ b/plugins/pbap.c
@@ -643,8 +643,12 @@ static int pbap_get(struct obex_session *os, obex_object_t *obj,
return -EBADR;

rsize = obex_aparam_read(os, obj, &buffer);
- if (rsize < 0)
- return -EBADR;
+ if (rsize < 0) {
+ if (g_ascii_strcasecmp(type, VCARDENTRY_TYPE) != 0)
+ return -EBADR;
+
+ rsize = 0;
+ }

params = parse_aparam(buffer, rsize);
if (params == NULL)
--
1.6.3.3



2011-10-20 10:18:31

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH obexd] Fix pulling single vCard for parameters header missing

Hi Rafal,

On Thu, Oct 20, 2011, Rafal Michalski wrote:
> According to PBAP specification (ANNEX A), all application-parameters
> are optional in case of pulling single vCard entry, so header for
> application-parameters can be omitted, and it would be valid as well.
> Previously pulling single vCard was always failing with "Bad Request"
> status in such a circumstance.
> This patch fixes that issue and pulling single vCard is done successfully
> with "OK" status. Output vCard would contain all fields under 2.1 format
> (as for default settings).
> ---
> plugins/pbap.c | 8 ++++++--
> 1 files changed, 6 insertions(+), 2 deletions(-)

Applied. Thanks.

Johan