From: Patrik Flykt <[email protected]>
---
src/agent.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
src/connman.h | 2 ++
2 files changed, 47 insertions(+)
diff --git a/src/agent.c b/src/agent.c
index 19c3882..e99f97e 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -195,6 +195,51 @@ static int agent_queue_message(struct connman_service
*service,
return agent_send_next_request();
}
+void __connman_agent_cancel(struct connman_service *service)
+{
+ DBusMessage *message;
+ GList *item, *next;
+ struct agent_data *queued_req;
+
+ DBG("service %p", service);
+
+ item = agent_queue;
+
+ while (item != NULL) {
+ next = g_list_next(item);
+ queued_req = item->data;
+
+ if (queued_req->service == service || service == NULL) {
+ agent_request_free(queued_req);
+ agent_queue = g_list_delete_link(agent_queue, item);
+ }
+
+ item = next;
+ }
+
+ if (agent_request == NULL)
+ return;
+
+ if (agent_request->service != service && service != NULL)
+ return;
+
+ agent_request_free(agent_request);
+ agent_request = NULL;
+
+ if (agent_watch == 0)
+ return;
+
+ message = dbus_message_new_method_call(agent_sender, agent_path,
+ CONNMAN_AGENT_INTERFACE, "Cancel");
+ if (message != NULL) {
+ dbus_message_set_no_reply(message, TRUE);
+ g_dbus_send_message(connection, message);
+ } else
+ connman_warn("Failed to send Cancel message to agent");
+
+ agent_send_next_request();
+}
+
static connman_bool_t check_reply_has_dict(DBusMessage *reply)
{
const char *signature = DBUS_TYPE_ARRAY_AS_STRING
diff --git a/src/connman.h b/src/connman.h
index 305f09f..120de30 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -84,6 +84,8 @@ void __connman_counter_cleanup(void);
struct connman_service;
+void __connman_agent_cancel(struct connman_service *service);
+
int __connman_service_add_passphrase(struct connman_service *service,
const gchar *passphrase);
typedef void (* authentication_cb_t) (struct connman_service *service,
--
1.7.10.4
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman