From: Omkar Hegde Date: Tue, 14 Jul 2015 21:59:41 +0000 (-0700) Subject: Removing unnecessary use of IPV6 flags. X-Git-Tag: 1.2.0+RC1~1460 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=550efad24bdd2ceb80ab123b8d46e57af41bd655;p=platform%2Fupstream%2Fiotivity.git Removing unnecessary use of IPV6 flags. Previously, default flags were interpreted as both IPv4 and IPv6 and "[ ]" was added around the IP address in presence uri. This was wrong for IPv4. Changing the addition of brackets exclusive to IPv6 and removing IPv6 flag from caipserver since it is not supported yet. Change-Id: Ic103f9f0f10dcda3252e95404bc6f1a19d56597b Signed-off-by: Omkar Hegde Reviewed-on: https://gerrit.iotivity.org/gerrit/1653 Reviewed-by: Erich Keane Tested-by: jenkins-iotivity --- diff --git a/resource/csdk/connectivity/src/ip_adapter/caipserver.c b/resource/csdk/connectivity/src/ip_adapter/caipserver.c index b6a3e50..9c0712f 100644 --- a/resource/csdk/connectivity/src/ip_adapter/caipserver.c +++ b/resource/csdk/connectivity/src/ip_adapter/caipserver.c @@ -266,7 +266,7 @@ static void CAReceiveHandler(void *data) CAEndpoint_t ep; strncpy(ep.addr, srcIPAddress, MAX_ADDR_STR_SIZE_CA); ep.port = srcPort; - ep.flags = (CATransportFlags_t)CA_IPV4 | CA_IPV6; + ep.flags = (CATransportFlags_t)CA_IPV4; ep.adapter = CA_ADAPTER_IP; if (info->endpoint.flags & CA_SECURE) diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c index f051715..4106900 100644 --- a/resource/csdk/stack/src/ocstack.c +++ b/resource/csdk/stack/src/ocstack.c @@ -733,7 +733,7 @@ static int FormCanonicalPresenceUri(const CAEndpoint_t *endpoint, char *resource const char *format; - if (endpoint->flags & CA_IPV6) + if ((endpoint->flags & CA_IPV6) && !(endpoint->flags & CA_IPV4)) { format = "coap://[%s]:%u%s"; } @@ -784,8 +784,18 @@ OCStackResult HandlePresenceResponse(const CAEndpoint_t *endpoint, } else { - snprintf (presenceUri, MAX_URI_LENGTH, "coap://[%s]:%u%s", OC_MULTICAST_IP, - OC_MULTICAST_PORT, OC_RSRVD_PRESENCE_URI); + CAEndpoint_t endpointMulticast; + endpointMulticast.flags = endpoint->flags; + OICStrcpy(endpointMulticast.addr, sizeof(endpointMulticast.addr), OC_MULTICAST_IP); + endpointMulticast.port = OC_MULTICAST_PORT; + + uriLen = FormCanonicalPresenceUri(&endpointMulticast, OC_RSRVD_PRESENCE_URI, presenceUri); + + if (uriLen < 0 || uriLen >= sizeof (presenceUri)) + { + return OC_STACK_INVALID_URI; + } + cbNode = GetClientCB(NULL, 0, NULL, presenceUri); if (cbNode) {