All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Add CDMA voice call sending air interface flash support
@ 2011-08-12  9:19 Caiwen Zhang
  2011-08-15  6:00 ` Denis Kenzior
  0 siblings, 1 reply; 2+ messages in thread
From: Caiwen Zhang @ 2011-08-12  9:19 UTC (permalink / raw)
  To: ofono

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

---
 include/cdma-voicecall.h |    3 +++
 src/cdma-voicecall.c     |   25 +++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/include/cdma-voicecall.h b/include/cdma-voicecall.h
index 6f77462..b170e39 100644
--- a/include/cdma-voicecall.h
+++ b/include/cdma-voicecall.h
@@ -58,6 +58,9 @@ struct ofono_cdma_voicecall_driver {
 
 	void (*answer)(struct ofono_cdma_voicecall *vc,
 			ofono_cdma_voicecall_cb_t cb, void *data);
+
+	void (*send_flash)(struct ofono_cdma_voicecall *vc, const char *string,
+			ofono_cdma_voicecall_cb_t cb, void *data);
 };
 
 void ofono_cdma_voicecall_disconnected(struct ofono_cdma_voicecall *vc,
diff --git a/src/cdma-voicecall.c b/src/cdma-voicecall.c
index b7323c8..37db8d5 100644
--- a/src/cdma-voicecall.c
+++ b/src/cdma-voicecall.c
@@ -307,6 +307,29 @@ static DBusMessage *voicecall_manager_answer(DBusConnection *conn,
 	return NULL;
 }
 
+static DBusMessage *voicecall_manager_flash(DBusConnection *conn,
+					DBusMessage *msg, void *data)
+{
+	struct ofono_cdma_voicecall *vc = data;
+	const char *string;
+
+	if (vc->pending)
+		return __ofono_error_busy(msg);
+
+	if (vc->driver->send_flash == NULL)
+		return __ofono_error_not_implemented(msg);
+
+	if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &string,
+					DBUS_TYPE_INVALID) == FALSE)
+		return __ofono_error_invalid_args(msg);
+
+	vc->pending = dbus_message_ref(msg);
+
+	vc->driver->send_flash(vc, string, generic_callback, vc);
+
+	return NULL;
+}
+
 static GDBusMethodTable manager_methods[] = {
 	{ "GetProperties",    "",    "a{sv}",
 					voicecall_manager_get_properties },
@@ -316,6 +339,8 @@ static GDBusMethodTable manager_methods[] = {
 						G_DBUS_METHOD_FLAG_ASYNC },
 	{ "Answer",           "",    "",         voicecall_manager_answer,
 						G_DBUS_METHOD_FLAG_ASYNC },
+	{ "SendFlash",      "s",    "",         voicecall_manager_flash,
+						G_DBUS_METHOD_FLAG_ASYNC },
 	{ }
 };
 
-- 
1.7.5


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

* Re: [PATCH] Add CDMA voice call sending air interface flash support
  2011-08-12  9:19 [PATCH] Add CDMA voice call sending air interface flash support Caiwen Zhang
@ 2011-08-15  6:00 ` Denis Kenzior
  0 siblings, 0 replies; 2+ messages in thread
From: Denis Kenzior @ 2011-08-15  6:00 UTC (permalink / raw)
  To: ofono

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

Hi Caiwen,

On 08/12/2011 04:19 AM, Caiwen Zhang wrote:
> ---
>  include/cdma-voicecall.h |    3 +++
>  src/cdma-voicecall.c     |   25 +++++++++++++++++++++++++
>  2 files changed, 28 insertions(+), 0 deletions(-)
> 

I applied this patch, but broke it up into two:

949f0ad44756cebf5dc8e5cb54ea23fb4bb23684 and
fbf909fad44da2245ada23a4f90f3920ab49e633

One further comment:

<snip>

> @@ -307,6 +307,29 @@ static DBusMessage *voicecall_manager_answer(DBusConnection *conn,
>  	return NULL;
>  }
>  
> +static DBusMessage *voicecall_manager_flash(DBusConnection *conn,
> +					DBusMessage *msg, void *data)
> +{
> +	struct ofono_cdma_voicecall *vc = data;
> +	const char *string;
> +
> +	if (vc->pending)
> +		return __ofono_error_busy(msg);
> +
> +	if (vc->driver->send_flash == NULL)
> +		return __ofono_error_not_implemented(msg);
> +
> +	if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &string,
> +					DBUS_TYPE_INVALID) == FALSE)
> +		return __ofono_error_invalid_args(msg);
> +

Is there a format for what constitutes a valid flash string? Sending
un-filtered user input here seems wrong.  Please send a patch with a
flash string validator, similar to how send_tones was implemented.

> +	vc->pending = dbus_message_ref(msg);
> +
> +	vc->driver->send_flash(vc, string, generic_callback, vc);
> +
> +	return NULL;
> +}
> +
>  static GDBusMethodTable manager_methods[] = {
>  	{ "GetProperties",    "",    "a{sv}",
>  					voicecall_manager_get_properties },

Regards,
-Denis

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

end of thread, other threads:[~2011-08-15  6:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-12  9:19 [PATCH] Add CDMA voice call sending air interface flash support Caiwen Zhang
2011-08-15  6:00 ` 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.