diff options
-rw-r--r-- | src/agent.c | 32 | ||||
-rwxr-xr-x | test/ndef-agent | 7 |
2 files changed, 10 insertions, 29 deletions
diff --git a/src/agent.c b/src/agent.c index 34d9566..d5c0b79 100644 --- a/src/agent.c +++ b/src/agent.c @@ -101,23 +101,6 @@ static void ndef_agent_disconnect(DBusConnection *conn, void *user_data) g_hash_table_remove(ndef_app_hash, agent->record_type); } -static void append_record_path(DBusMessageIter *iter, void *user_data) -{ - GList *records = user_data, *list; - struct near_ndef_record *record; - char *path; - - for (list = records; list; list = list->next) { - record = list->data; - - path = __near_ndef_record_get_path(record); - if (!path) - continue; - - dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &path); - } -} - static void append_ndef(DBusMessageIter *iter, void *user_data) { GList *records = user_data; @@ -126,10 +109,12 @@ static void append_ndef(DBusMessageIter *iter, void *user_data) } static void ndef_agent_push_records(struct near_ndef_agent *agent, + struct near_ndef_record *record, GList *records) { DBusMessageIter iter, dict; DBusMessage *message; + char *path; DBG(""); @@ -144,11 +129,13 @@ static void ndef_agent_push_records(struct near_ndef_agent *agent, if (!message) return; + path = __near_ndef_record_get_path(record); + dbus_message_iter_init_append(message, &iter); near_dbus_dict_open(&iter, &dict); - near_dbus_dict_append_array(&dict, "Records", - DBUS_TYPE_STRING, append_record_path, records); + near_dbus_dict_append_basic(&dict, "Record", + DBUS_TYPE_STRING, &path); near_dbus_dict_append_array(&dict, "NDEF", DBUS_TYPE_BYTE, append_ndef, records); near_dbus_dict_close(&iter, &dict); @@ -180,13 +167,8 @@ void __near_agent_ndef_parse_records(GList *records) agent = g_hash_table_lookup(ndef_app_hash, type); if (agent) - break; + ndef_agent_push_records(agent, record, records); } - - if (!agent) - return; - - ndef_agent_push_records(agent, records); } static int ndef_register(const char *sender, const char *path, diff --git a/test/ndef-agent b/test/ndef-agent index 2464c82..68bd270 100755 --- a/test/ndef-agent +++ b/test/ndef-agent @@ -19,11 +19,10 @@ class NDEFAgent(dbus.service.Object): in_signature='a{sv}', out_signature='') def GetNDEF(self, fields): - print "GetNDEF %s" + print "GetNDEF" - if fields.has_key("Records"): - for path in fields["Records"]: - print "Record path %s" % (path) + if fields.has_key("Record"): + print "Record path %s" % (fields["Record"]) if fields.has_key("NDEF"): val = "[" |