All of lore.kernel.org
 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	[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	[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	[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 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.