Fixed Presence
authorOmkar Hegde <omkar.m.hegde@intel.com>
Mon, 20 Jul 2015 23:32:37 +0000 (16:32 -0700)
committerErich Keane <erich.keane@intel.com>
Tue, 21 Jul 2015 22:31:17 +0000 (22:31 +0000)
Wrong presence URI was being formed as a part of
IPV6 changes. Also, the presence resource URI was not
updated in the IPv6 changes.

Change-Id: I66dcbcd729e4c91cec57f551bf9b1be36a559442
Signed-off-by: Omkar Hegde <omkar.m.hegde@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/1770
Reviewed-by: Erich Keane <erich.keane@intel.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
resource/csdk/stack/src/ocstack.c

index 6c5f559..6124337 100644 (file)
@@ -759,7 +759,7 @@ static int FormCanonicalPresenceUri(const CAEndpoint_t *endpoint, char *resource
 
     if (ep->adapter == CA_ADAPTER_IP)
     {
-        if (ep->flags & CA_IPV6)
+        if ((ep->flags & CA_IPV6) && !(ep->flags & CA_IPV4))
         {
             if ('\0' == ep->addr[0])  // multicast
             {
@@ -1888,8 +1888,8 @@ static OCStackResult ParseRequestUri(const char *fullUri,
         size_t tlen = 0;      // resource type length
         char *type = NULL;
 
-        static const char *strPresence = "/oc/presence?rt=";
-        static const size_t lenPresence = 15; // = strlen(presence);
+        static const char strPresence[] = "/oic/ad?rt=";
+        static const size_t lenPresence = sizeof(strPresence) - 1;
         if (!strncmp(slash, strPresence, lenPresence))
         {
             type = slash + lenPresence;
@@ -1915,7 +1915,8 @@ static OCStackResult ParseRequestUri(const char *fullUri,
                 result = OC_STACK_NO_MEMORY;
                 goto error;
             }
-            strncpy(*resourceType, type, tlen);
+
+            OICStrcpy(*resourceType, (tlen+1), type);
         }
     }