All of lore.kernel.org
 help / color / mirror / Atom feed
* SetProperty for UseDeliveryReports
@ 2010-06-07  9:53 Pasi Miettinen
  2010-06-07  9:53 ` [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h Pasi Miettinen
  0 siblings, 1 reply; 7+ messages in thread
From: Pasi Miettinen @ 2010-06-07  9:53 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 414 bytes --]

These patches implement the setting of UseDeliveryReports variable
via DBus.

Patches include:
1. Setting of SRR according to UseDeliveryReports in
   sms_text_prepare().
2. Add new parameter to sms_text_prepare calls in test-sms.c.
3. SMS core changes.
4. Changes for send-sms script. If the third parameter for the
   script is "1", UseDeliveryReports is set to TRUE and the
   message is sent.




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

* [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h.
  2010-06-07  9:53 SetProperty for UseDeliveryReports Pasi Miettinen
@ 2010-06-07  9:53 ` Pasi Miettinen
  2010-06-07  9:53   ` [RFC PATCH 2/4] SetProperty for UseDeliveryReports. test-sms.c Pasi Miettinen
  2010-06-07 10:14   ` VS: [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h Miettinen Pasi
  0 siblings, 2 replies; 7+ messages in thread
From: Pasi Miettinen @ 2010-06-07  9:53 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1587 bytes --]

---
 src/smsutil.c |    5 +++--
 src/smsutil.h |    3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/smsutil.c b/src/smsutil.c
index 278d335..cf9b77c 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -2643,7 +2643,8 @@ static inline GSList *sms_list_append(GSList *l, const struct sms *in)
  * if no concatenation took place.
  */
 GSList *sms_text_prepare(const char *utf8, guint16 ref,
-				gboolean use_16bit, int *ref_offset)
+				gboolean use_16bit, int *ref_offset,
+				const gboolean use_delivery_reports)
 {
 	struct sms template;
 	int offset = 0;
@@ -2659,7 +2660,7 @@ GSList *sms_text_prepare(const char *utf8, guint16 ref,
 	template.submit.rd = FALSE;
 	template.submit.vpf = SMS_VALIDITY_PERIOD_FORMAT_RELATIVE;
 	template.submit.rp = FALSE;
-	template.submit.srr = FALSE;
+	template.submit.srr = use_delivery_reports;
 	template.submit.mr = 0;
 	template.submit.vp.relative = 0xA7; /* 24 Hours */
 
diff --git a/src/smsutil.h b/src/smsutil.h
index a36a9d3..cfb2765 100644
--- a/src/smsutil.h
+++ b/src/smsutil.h
@@ -482,7 +482,8 @@ GSList *sms_assembly_add_fragment(struct sms_assembly *assembly,
 void sms_assembly_expire(struct sms_assembly *assembly, time_t before);
 
 GSList *sms_text_prepare(const char *utf8, guint16 ref,
-				gboolean use_16bit, int *ref_offset);
+				gboolean use_16bit, int *ref_offset,
+				const gboolean use_delivery_reports);
 
 gboolean cbs_dcs_decode(guint8 dcs, gboolean *udhi, enum sms_class *cls,
 			enum sms_charset *charset, gboolean *compressed,
-- 
1.6.0.4



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

* [RFC PATCH 2/4] SetProperty for UseDeliveryReports. test-sms.c.
  2010-06-07  9:53 ` [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h Pasi Miettinen
@ 2010-06-07  9:53   ` Pasi Miettinen
  2010-06-07  9:53     ` [RFC PATCH 3/4] SetProperty for UseDeliveryReports. sms.c Pasi Miettinen
  2010-06-07 10:14   ` VS: [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h Miettinen Pasi
  1 sibling, 1 reply; 7+ messages in thread
From: Pasi Miettinen @ 2010-06-07  9:53 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1722 bytes --]

---
 unit/test-sms.c |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/unit/test-sms.c b/unit/test-sms.c
index d7d97f3..aec725b 100644
--- a/unit/test-sms.c
+++ b/unit/test-sms.c
@@ -685,7 +685,7 @@ static void test_assembly()
 	if (g_test_verbose())
 		g_printf("Text:\n%s\n", utf8);
 
-	l = sms_text_prepare(utf8, ref, TRUE, NULL);
+	l = sms_text_prepare(utf8, ref, TRUE, NULL, FALSE);
 	g_assert(l);
 	g_assert(g_slist_length(l) == 3);
 
@@ -715,7 +715,7 @@ static void test_prepare_7bit()
 	int encoded_tpdu_len;
 	char *encoded_pdu;
 
-	r = sms_text_prepare(test_no_fragmentation_7bit, 0, FALSE, NULL);
+	r = sms_text_prepare(test_no_fragmentation_7bit, 0, FALSE, NULL, FALSE);
 
 	g_assert(r != NULL);
 
@@ -798,8 +798,7 @@ static void test_prepare_concat(gconstpointer data)
 	if (g_test_verbose())
 		g_print("strlen: %zd\n", strlen(test->str));
 
-	r = sms_text_prepare(test->str, 0, TRUE, NULL);
-
+	r = sms_text_prepare(test->str, 0, TRUE, NULL, FALSE);
 	g_assert(r);
 	g_assert(g_slist_length(r) == test->segments);
 
@@ -875,7 +874,7 @@ static void test_limit(gunichar uni, int target_size, gboolean use_16bit)
 
 	utf8[i] = '\0';
 
-	l = sms_text_prepare(utf8, 0, use_16bit, NULL);
+	l = sms_text_prepare(utf8, 0, use_16bit, NULL, FALSE);
 
 	g_assert(l);
 	g_assert(g_slist_length(l) == 255);
@@ -888,7 +887,7 @@ static void test_limit(gunichar uni, int target_size, gboolean use_16bit)
 	memcpy(utf8 + i, utf8_char, stride);
 	utf8[i+stride] = '\0';
 
-	l = sms_text_prepare(utf8, 0, use_16bit, NULL);
+	l = sms_text_prepare(utf8, 0, use_16bit, NULL, FALSE);
 
 	g_assert(l == NULL);
 	g_free(utf8);
-- 
1.6.0.4



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

* [RFC PATCH 3/4] SetProperty for UseDeliveryReports. sms.c.
  2010-06-07  9:53   ` [RFC PATCH 2/4] SetProperty for UseDeliveryReports. test-sms.c Pasi Miettinen
@ 2010-06-07  9:53     ` Pasi Miettinen
  2010-06-07  9:53       ` [RFC PATCH 4/4] SetProperty for UseDeliveryReports. send-sms Pasi Miettinen
  0 siblings, 1 reply; 7+ messages in thread
From: Pasi Miettinen @ 2010-06-07  9:53 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2766 bytes --]

---
 src/sms.c |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/src/sms.c b/src/sms.c
index c0e9fc4..0bd35c2 100644
--- a/src/sms.c
+++ b/src/sms.c
@@ -67,6 +67,7 @@ struct ofono_sms {
 	const struct ofono_sms_driver *driver;
 	void *driver_data;
 	struct ofono_atom *atom;
+	ofono_bool_t use_delivery_reports;
 };
 
 struct pending_pdu {
@@ -131,6 +132,9 @@ static DBusMessage *generate_get_properties_reply(struct ofono_sms *sms,
 	ofono_dbus_dict_append(&dict, "ServiceCenterAddress", DBUS_TYPE_STRING,
 				&sca);
 
+	ofono_dbus_dict_append(&dict, "UseDeliveryReports", DBUS_TYPE_BOOLEAN,
+				&sms->use_delivery_reports);
+
 	dbus_message_iter_close_container(&iter, &dict);
 
 	return reply;
@@ -260,6 +264,27 @@ static DBusMessage *sms_set_property(DBusConnection *conn, DBusMessage *msg,
 		return NULL;
 	}
 
+	if (!strcmp(property, "UseDeliveryReports")) {
+		const char *path = __ofono_atom_get_path(sms->atom);
+		dbus_bool_t value;
+
+		if (dbus_message_iter_get_arg_type(&var) != DBUS_TYPE_BOOLEAN)
+			return __ofono_error_invalid_args(msg);
+
+		dbus_message_iter_get_basic(&var, &value);
+
+		sms->use_delivery_reports = value;
+
+		g_dbus_send_reply(conn, msg, DBUS_TYPE_INVALID);
+
+		ofono_dbus_signal_property_changed(conn, path,
+						OFONO_SMS_MANAGER_INTERFACE,
+						"UseDeliveryReports",
+						DBUS_TYPE_BOOLEAN, &value);
+
+		return NULL;
+	}
+
 	return __ofono_error_invalid_args(msg);
 }
 
@@ -426,7 +451,8 @@ static DBusMessage *sms_send_message(DBusConnection *conn, DBusMessage *msg,
 	if (valid_phone_number_format(to) == FALSE)
 		return __ofono_error_invalid_format(msg);
 
-	msg_list = sms_text_prepare(text, 0, TRUE, &ref_offset);
+	msg_list = sms_text_prepare(text, 0, TRUE, &ref_offset,
+					sms->use_delivery_reports);
 
 	if (!msg_list)
 		return __ofono_error_invalid_format(msg);
@@ -895,6 +921,9 @@ static void sms_remove(struct ofono_atom *atom)
 					"NextMessageId", sms->next_msg_id);
 		g_key_file_set_integer(sms->settings, SETTINGS_GROUP,
 					"NextReference", sms->ref);
+		g_key_file_set_boolean(sms->settings, SETTINGS_GROUP,
+					"UseDeliveryReports",
+					sms->use_delivery_reports);
 
 		storage_close(sms->imsi, SETTINGS_STORE, sms->settings, TRUE);
 
@@ -981,6 +1010,9 @@ static void sms_load_settings(struct ofono_sms *sms, const char *imsi)
 							"NextMessageId", NULL);
 	sms->ref = g_key_file_get_integer(sms->settings, SETTINGS_GROUP,
 							"NextReference", NULL);
+	sms->use_delivery_reports =
+		g_key_file_get_boolean(sms->settings, SETTINGS_GROUP,
+					"UseDeliveryReports", NULL);
 
 	if (sms->ref >= 65536)
 		sms->ref = 1;
-- 
1.6.0.4



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

* [RFC PATCH 4/4] SetProperty for UseDeliveryReports. send-sms.
  2010-06-07  9:53     ` [RFC PATCH 3/4] SetProperty for UseDeliveryReports. sms.c Pasi Miettinen
@ 2010-06-07  9:53       ` Pasi Miettinen
  0 siblings, 0 replies; 7+ messages in thread
From: Pasi Miettinen @ 2010-06-07  9:53 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 704 bytes --]

---
 test/send-sms |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/test/send-sms b/test/send-sms
index 8024fda..4f1d658 100755
--- a/test/send-sms
+++ b/test/send-sms
@@ -15,4 +15,10 @@ path = properties["Modems"][0]
 manager = dbus.Interface(bus.get_object('org.ofono', path),
 						'org.ofono.SmsManager')
 
-manager.SendMessage(sys.argv[1], sys.argv[2])
+if len(sys.argv) == 4:
+	if sys.argv[3] == "1":
+		manager.SetProperty("UseDeliveryReports", dbus.Boolean(1))
+		manager.SendMessage(sys.argv[1], sys.argv[2])
+else:
+	manager.SetProperty("UseDeliveryReports", dbus.Boolean(0))
+	manager.SendMessage(sys.argv[1], sys.argv[2])
-- 
1.6.0.4



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

* VS: [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h.
  2010-06-07  9:53 ` [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h Pasi Miettinen
  2010-06-07  9:53   ` [RFC PATCH 2/4] SetProperty for UseDeliveryReports. test-sms.c Pasi Miettinen
@ 2010-06-07 10:14   ` Miettinen Pasi
  2010-06-07 18:16     ` Denis Kenzior
  1 sibling, 1 reply; 7+ messages in thread
From: Miettinen Pasi @ 2010-06-07 10:14 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 978 bytes --]

> ---
>  src/smsutil.c |    5 +++--
>  src/smsutil.h |    3 ++-
>  2 files changed, 5 insertions(+), 3 deletions(-)
> |
> diff --git a/src/smsutil.h b/src/smsutil.h
> index a36a9d3..cfb2765 100644
> --- a/src/smsutil.h
> +++ b/src/smsutil.h
> @@ -482,7 +482,8 @@ GSList *sms_assembly_add_fragment(struct sms_assembly *assembly,
>  void sms_assembly_expire(struct sms_assembly *assembly, time_t before);
>
>  GSList *sms_text_prepare(const char *utf8, guint16 ref,
> -                               gboolean use_16bit, int *ref_offset);
> +                               gboolean use_16bit, int *ref_offset,
> +                               const gboolean use_delivery_reports);
>
> gboolean cbs_dcs_decode(guint8 dcs, gboolean *udhi, enum sms_class *cls,
>                         enum sms_charset *charset, gboolean *compressed,

Ah, no need for const before gboolean, as Denis said. Do I need to send another patch, or can you
remove it?

Br,
Pasi


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

* Re: VS: [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h.
  2010-06-07 10:14   ` VS: [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h Miettinen Pasi
@ 2010-06-07 18:16     ` Denis Kenzior
  0 siblings, 0 replies; 7+ messages in thread
From: Denis Kenzior @ 2010-06-07 18:16 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 669 bytes --]

Hi Pasi,

> >  GSList *sms_text_prepare(const char *utf8, guint16 ref,
> > -                               gboolean use_16bit, int *ref_offset);
> > +                               gboolean use_16bit, int *ref_offset,
> > +                               const gboolean use_delivery_reports);
> >
> > gboolean cbs_dcs_decode(guint8 dcs, gboolean *udhi, enum sms_class *cls,
> >                         enum sms_charset *charset, gboolean *compressed,
> 
> Ah, no need for const before gboolean, as Denis said. Do I need to send
>  another patch, or can you remove it?

I applied all four patches and fixed it up for you... This time ;)

Regards,
-Denis

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

end of thread, other threads:[~2010-06-07 18:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-07  9:53 SetProperty for UseDeliveryReports Pasi Miettinen
2010-06-07  9:53 ` [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h Pasi Miettinen
2010-06-07  9:53   ` [RFC PATCH 2/4] SetProperty for UseDeliveryReports. test-sms.c Pasi Miettinen
2010-06-07  9:53     ` [RFC PATCH 3/4] SetProperty for UseDeliveryReports. sms.c Pasi Miettinen
2010-06-07  9:53       ` [RFC PATCH 4/4] SetProperty for UseDeliveryReports. send-sms Pasi Miettinen
2010-06-07 10:14   ` VS: [RFC PATCH 1/4] SetProperty for UseDeliveryReports. smsutil.c/h Miettinen Pasi
2010-06-07 18:16     ` Denis Kenzior

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.