From 853f449892419436cee697f0e647679f3c79ba80 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Mon, 1 Nov 2010 10:04:39 -0500 Subject: [PATCH] push-notification: Implement unregister agent --- plugins/push-notification.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/plugins/push-notification.c b/plugins/push-notification.c index e324c0cb..025bb752 100644 --- a/plugins/push-notification.c +++ b/plugins/push-notification.c @@ -88,7 +88,24 @@ static DBusMessage *push_notification_register_agent(DBusConnection *conn, static DBusMessage *push_notification_unregister_agent(DBusConnection *conn, DBusMessage *msg, void *data) { - return __ofono_error_not_implemented(msg); + struct push_notification *pn = data; + const char *agent_path; + const char *agent_bus = dbus_message_get_sender(msg); + + if (dbus_message_get_args(msg, NULL, + DBUS_TYPE_OBJECT_PATH, &agent_path, + DBUS_TYPE_INVALID) == FALSE) + return __ofono_error_invalid_args(msg); + + if (pn->agent == NULL) + return __ofono_error_failed(msg); + + if (sms_agent_matches(pn->agent, agent_bus, agent_path) == FALSE) + return __ofono_error_failed(msg); + + sms_agent_free(pn->agent); + + return dbus_message_new_method_return(msg); } static GDBusMethodTable push_notification_methods[] = {