From f2fde9758fbf988a2bb63f4c587e3f8dc259bcba Mon Sep 17 00:00:00 2001 From: Olivier Guiter Date: Sat, 6 Oct 2012 16:31:24 +0200 Subject: [PATCH] ndef: Set proper URI identifier when writing URI NDEF --- AUTHORS | 2 ++ src/ndef.c | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/AUTHORS b/AUTHORS index 7808895..9dd68f4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -6,3 +6,5 @@ Vinicius Costa Gomes Eyal Reizer Jeff Zheng Szymon Janc +Wiktor Lawski +Dorota Moskal diff --git a/src/ndef.c b/src/ndef.c index 2dd51e8..9392b4b 100644 --- a/src/ndef.c +++ b/src/ndef.c @@ -2627,7 +2627,7 @@ static struct near_ndef_message *build_uri_record(DBusMessage *msg) { char *uri = NULL; const char *uri_prefix = NULL; - uint8_t id_len, i; + uint8_t id_len, i, id; uint32_t uri_len; DBG(""); @@ -2636,23 +2636,24 @@ static struct near_ndef_message *build_uri_record(DBusMessage *msg) if (uri == NULL) return NULL; + id = 0; + id_len = 0; + for (i = 1; i <= NFC_MAX_URI_ID; i++) { uri_prefix = __near_ndef_get_uri_prefix(i); if (uri_prefix != NULL && - g_str_has_prefix(uri, uri_prefix) == TRUE) + g_str_has_prefix(uri, uri_prefix) == TRUE) { + id = i; + id_len = strlen(uri_prefix); break; + } } - /* If uri_prefix is NULL then ID will be zero */ - if (uri_prefix == NULL) { - i = 0; - id_len = 0; - } else - id_len = strlen(uri_prefix); + DBG("%d %d\n", i, id_len); uri_len = strlen(uri) - id_len; - return near_ndef_prepare_uri_record(i, uri_len, + return near_ndef_prepare_uri_record(id, uri_len, (uint8_t *)(uri + id_len)); } -- 2.7.4