linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH obexd v3 1/3] MAP: Mark filter strings const
@ 2012-04-12 18:53 Slawomir Bochenski
  2012-04-12 18:53 ` [PATCH obexd v3 2/3] MAP: Input parameters for GetMessagesListing Slawomir Bochenski
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Slawomir Bochenski @ 2012-04-12 18:53 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Slawomir Bochenski

This structure is used for giving filters as input argument to
messages_get_messages_listing(). There is no need for the string members
to be modifiable in this context. And making them const plays well with
map_ap_get_string(), from which the values of these members are going to
be retrieved.

The string pointers here are simply references to data held in map_ap_t
*inparams.
---
v3: Add paragraph about pointers being references to data held in another data structure.
 plugins/messages.h |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/plugins/messages.h b/plugins/messages.h
index 00a040c..2cdd92f 100644
--- a/plugins/messages.h
+++ b/plugins/messages.h
@@ -111,11 +111,11 @@ struct messages_event {
 struct messages_filter {
 	uint32_t parameter_mask;
 	uint8_t type;
-	char *period_begin;
-	char *period_end;
+	const char *period_begin;
+	const char *period_end;
 	uint8_t read_status;
-	char *recipient;
-	char *originator;
+	const char *recipient;
+	const char *originator;
 	uint8_t priority;
 };
 
-- 
1.7.5.1


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

* [PATCH obexd v3 2/3] MAP: Input parameters for GetMessagesListing
  2012-04-12 18:53 [PATCH obexd v3 1/3] MAP: Mark filter strings const Slawomir Bochenski
@ 2012-04-12 18:53 ` Slawomir Bochenski
  2012-04-12 18:53 ` [PATCH obexd v3 3/3] MAP: Output " Slawomir Bochenski
  2012-04-12 19:00 ` [PATCH obexd v3 1/3] MAP: Mark filter strings const Johan Hedberg
  2 siblings, 0 replies; 4+ messages in thread
From: Slawomir Bochenski @ 2012-04-12 18:53 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Slawomir Bochenski

This adds support for input application parameters header given in
GetMessagesListing request.
---
 plugins/mas.c |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/plugins/mas.c b/plugins/mas.c
index 97a37e4..76dc8e9 100644
--- a/plugins/mas.c
+++ b/plugins/mas.c
@@ -531,6 +531,9 @@ static void *msg_listing_open(const char *name, int oflag, mode_t mode,
 {
 	struct mas_session *mas = driver_data;
 	struct messages_filter filter = { 0, };
+	/* 1024 is the default when there was no MaxListCount sent */
+	uint16_t max = 1024;
+	uint16_t offset = 0;
 
 	DBG("");
 
@@ -539,8 +542,28 @@ static void *msg_listing_open(const char *name, int oflag, mode_t mode,
 		return NULL;
 	}
 
-	*err = messages_get_messages_listing(mas->backend_data, name, 0xffff, 0,
-			&filter,
+	map_ap_get_u16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
+	map_ap_get_u16(mas->inparams, MAP_AP_STARTOFFSET, &offset);
+
+	map_ap_get_u32(mas->inparams, MAP_AP_PARAMETERMASK,
+						&filter.parameter_mask);
+	map_ap_get_u8(mas->inparams, MAP_AP_FILTERMESSAGETYPE,
+						&filter.type);
+	filter.period_begin = map_ap_get_string(mas->inparams,
+						MAP_AP_FILTERPERIODBEGIN);
+	filter.period_end = map_ap_get_string(mas->inparams,
+						MAP_AP_FILTERPERIODEND);
+	map_ap_get_u8(mas->inparams, MAP_AP_FILTERREADSTATUS,
+						&filter.read_status);
+	filter.recipient = map_ap_get_string(mas->inparams,
+						MAP_AP_FILTERRECIPIENT);
+	filter.originator = map_ap_get_string(mas->inparams,
+						MAP_AP_FILTERORIGINATOR);
+	map_ap_get_u8(mas->inparams, MAP_AP_FILTERPRIORITY,
+						&filter.priority);
+
+	*err = messages_get_messages_listing(mas->backend_data, name, max,
+			offset, &filter,
 			get_messages_listing_cb, mas);
 
 	mas->buffer = g_string_new("");
-- 
1.7.5.1


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

* [PATCH obexd v3 3/3] MAP: Output parameters for GetMessagesListing
  2012-04-12 18:53 [PATCH obexd v3 1/3] MAP: Mark filter strings const Slawomir Bochenski
  2012-04-12 18:53 ` [PATCH obexd v3 2/3] MAP: Input parameters for GetMessagesListing Slawomir Bochenski
@ 2012-04-12 18:53 ` Slawomir Bochenski
  2012-04-12 19:00 ` [PATCH obexd v3 1/3] MAP: Mark filter strings const Johan Hedberg
  2 siblings, 0 replies; 4+ messages in thread
From: Slawomir Bochenski @ 2012-04-12 18:53 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Slawomir Bochenski

This sets the parameters returned from MAP backend for
GetMessagesListing to be used in application parameters header sent in
response.
---
 plugins/mas.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/plugins/mas.c b/plugins/mas.c
index 76dc8e9..576c206 100644
--- a/plugins/mas.c
+++ b/plugins/mas.c
@@ -282,12 +282,22 @@ static void get_messages_listing_cb(void *session, int err, uint16_t size,
 					void *user_data)
 {
 	struct mas_session *mas = user_data;
+	uint16_t max = 1024;
 
 	if (err < 0 && err != -EAGAIN) {
 		obex_object_set_io_flags(mas, G_IO_ERR, err);
 		return;
 	}
 
+	map_ap_get_u16(mas->inparams, MAP_AP_MAXLISTCOUNT, &max);
+
+	if (max == 0) {
+		if (!entry)
+			mas->finished = TRUE;
+
+		goto proceed;
+	}
+
 	if (!mas->nth_call) {
 		g_string_append(mas->buffer, ML_BODY_BEGIN);
 		mas->nth_call = TRUE;
@@ -379,6 +389,13 @@ static void get_messages_listing_cb(void *session, int err, uint16_t size,
 	g_string_append(mas->buffer, "/>\n");
 
 proceed:
+	if (!entry) {
+		map_ap_set_u16(mas->outparams, MAP_AP_MESSAGESLISTINGSIZE,
+							size);
+		map_ap_set_u8(mas->outparams, MAP_AP_NEWMESSAGE,
+							newmsg ? 1 : 0);
+	}
+
 	if (err != -EAGAIN)
 		obex_object_set_io_flags(mas, G_IO_IN, 0);
 }
-- 
1.7.5.1


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

* Re: [PATCH obexd v3 1/3] MAP: Mark filter strings const
  2012-04-12 18:53 [PATCH obexd v3 1/3] MAP: Mark filter strings const Slawomir Bochenski
  2012-04-12 18:53 ` [PATCH obexd v3 2/3] MAP: Input parameters for GetMessagesListing Slawomir Bochenski
  2012-04-12 18:53 ` [PATCH obexd v3 3/3] MAP: Output " Slawomir Bochenski
@ 2012-04-12 19:00 ` Johan Hedberg
  2 siblings, 0 replies; 4+ messages in thread
From: Johan Hedberg @ 2012-04-12 19:00 UTC (permalink / raw)
  To: Slawomir Bochenski; +Cc: linux-bluetooth

Hi Slawek,

On Thu, Apr 12, 2012, Slawomir Bochenski wrote:
> This structure is used for giving filters as input argument to
> messages_get_messages_listing(). There is no need for the string members
> to be modifiable in this context. And making them const plays well with
> map_ap_get_string(), from which the values of these members are going to
> be retrieved.
> 
> The string pointers here are simply references to data held in map_ap_t
> *inparams.
> ---
> v3: Add paragraph about pointers being references to data held in another data structure.
>  plugins/messages.h |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)

All three patches have been applied. Thanks.

Johan

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

end of thread, other threads:[~2012-04-12 19:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-12 18:53 [PATCH obexd v3 1/3] MAP: Mark filter strings const Slawomir Bochenski
2012-04-12 18:53 ` [PATCH obexd v3 2/3] MAP: Input parameters for GetMessagesListing Slawomir Bochenski
2012-04-12 18:53 ` [PATCH obexd v3 3/3] MAP: Output " Slawomir Bochenski
2012-04-12 19:00 ` [PATCH obexd v3 1/3] MAP: Mark filter strings const Johan Hedberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).