diff options
Diffstat (limited to 'obexd/plugins/pbap.c')
-rw-r--r-- | obexd/plugins/pbap.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/obexd/plugins/pbap.c b/obexd/plugins/pbap.c index efae92cd8..ab5236316 100644 --- a/obexd/plugins/pbap.c +++ b/obexd/plugins/pbap.c @@ -511,6 +511,21 @@ static int pbap_get(struct obex_session *os, void *user_data) rsize = 0; } + /* Workaround for PTS client not sending mandatory apparams */ + if (!rsize && g_ascii_strcasecmp(type, VCARDLISTING_TYPE) == 0) { + static const uint8_t default_apparams[] = { + 0x04, 0x02, 0xff, 0xff + }; + buffer = default_apparams; + rsize = sizeof(default_apparams); + } else if (!rsize && g_ascii_strcasecmp(type, VCARDENTRY_TYPE) == 0) { + static const uint8_t default_apparams[] = { + 0x07, 0x01, 0x00 + }; + buffer = default_apparams; + rsize = sizeof(default_apparams); + } + params = parse_aparam(buffer, rsize); if (params == NULL) return -EBADR; |