Changes made to handle the Extended Event Report 1.1 1) In SDP, the MAP supported featured bit is updated. 2) In map-event, corresponding new event type and the new attribute introduced in Event report 1.1 is added. 3) In mns corresponding handlers are added. --- lib/sdp.h | 2 +- obexd/client/map-event.h | 7 ++++++- obexd/client/mns.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/lib/sdp.h b/lib/sdp.h index cc10e9f..76f61e1 100644 --- a/lib/sdp.h +++ b/lib/sdp.h @@ -306,7 +306,7 @@ extern "C" { #define SDP_ATTR_MAS_INSTANCE_ID 0x0315 #define SDP_ATTR_SUPPORTED_MESSAGE_TYPES 0x0316 #define SDP_ATTR_PBAP_SUPPORTED_FEATURES 0x0317 -#define SDP_ATTR_MAP_SUPPORTED_FEATURES 0x0317 +#define SDP_ATTR_MAP_SUPPORTED_FEATURES 0x031f #define SDP_ATTR_SPECIFICATION_ID 0x0200 #define SDP_ATTR_VENDOR_ID 0x0201 diff --git a/obexd/client/map-event.h b/obexd/client/map-event.h index ba5d5d2..99cb0c2 100644 --- a/obexd/client/map-event.h +++ b/obexd/client/map-event.h @@ -32,7 +32,8 @@ enum map_event_type { MAP_ET_MEMORY_FULL, MAP_ET_MEMORY_AVAILABLE, MAP_ET_MESSAGE_DELETED, - MAP_ET_MESSAGE_SHIFT + MAP_ET_MESSAGE_SHIFT, + MAP_ET_READ_STATUS_CHANGED }; struct map_event { @@ -41,6 +42,10 @@ struct map_event { char *folder; char *old_folder; char *msg_type; + char *datetime; + char *subject; + char *sender_name; + char *priority; }; /* Handle notification in map client. diff --git a/obexd/client/mns.c b/obexd/client/mns.c index d638886..8087933 100644 --- a/obexd/client/mns.c +++ b/obexd/client/mns.c @@ -180,6 +180,8 @@ static void parse_event_report_type(struct map_event *event, const char *value) event->type = MAP_ET_MESSAGE_DELETED; else if (!g_ascii_strcasecmp(value, "MessageShift")) event->type = MAP_ET_MESSAGE_SHIFT; + else if (!g_ascii_strcasecmp(value, "ReadStatusChanged")) + event->type = MAP_ET_READ_STATUS_CHANGED; } static void parse_event_report_handle(struct map_event *event, @@ -218,6 +220,30 @@ static void parse_event_report_msg_type(struct map_event *event, event->msg_type = g_strdup(value); } +static void parse_event_report_date_time(struct map_event *event, + const char *value) +{ + event->datetime = g_strdup(value); +} + +static void parse_event_report_subject(struct map_event *event, + const char *value) +{ + event->subject = g_strdup(value); +} + +static void parse_event_report_sender_name(struct map_event *event, + const char *value) +{ + event->sender_name = g_strdup(value); +} + +static void parse_event_report_priority(struct map_event *event, + const char *value) +{ + event->priority = g_strdup(value); +} + static struct map_event_report_parser { const char *name; void (*func) (struct map_event *event, const char *value); @@ -227,6 +253,10 @@ static struct map_event_report_parser { { "folder", parse_event_report_folder }, { "old_folder", parse_event_report_old_folder }, { "msg_type", parse_event_report_msg_type }, + { "datetime", parse_event_report_date_time }, + { "subject", parse_event_report_subject }, + { "sender_name", parse_event_report_sender_name }, + { "priority", parse_event_report_priority }, { } }; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html