Пример #1
0
OCStackResult BuildVirtualResourceResponse(const OCResource *resourcePtr,
                        OCDiscoveryPayload *payload, OCDevAddr *devAddr, bool rdResponse)
{
    if (!resourcePtr || !payload)
    {
        return OC_STACK_INVALID_PARAM;
    }
    uint16_t securePort = 0;
    if (resourcePtr->resourceProperties & OC_SECURE)
    {
       if (GetSecurePortInfo(devAddr, &securePort) != OC_STACK_OK)
       {
           securePort = 0;
       }
    }

    if (rdResponse)
    {
        securePort = devAddr->port;
    }

    uint16_t tcpPort = 0;
#ifdef TCP_ADAPTER
    if (GetTCPPortInfo(devAddr, &tcpPort) != OC_STACK_OK)
    {
        tcpPort = 0;
    }
    OCDiscoveryPayloadAddResource(payload, resourcePtr, securePort, tcpPort);
#else
    OCDiscoveryPayloadAddResource(payload, resourcePtr, securePort);
#endif

    return OC_STACK_OK;
}
Пример #2
0
OCStackResult BuildVirtualResourceResponse(const OCResource *resourcePtr,
                        OCDiscoveryPayload *payload, OCDevAddr *devAddr)
{
    if (!resourcePtr || !payload)
    {
        return OC_STACK_INVALID_PARAM;
    }
    uint16_t port = 0;
    if (resourcePtr->resourceProperties & OC_SECURE)
    {
       if (GetSecurePortInfo(devAddr, &port) != OC_STACK_OK)
       {
           port = 0;
       }
    }

    OCDiscoveryPayloadAddResource(payload, resourcePtr, port);
    return OC_STACK_OK;
}
Пример #3
0
OCStackResult BuildVirtualCollectionResourceResponse(const OCResourceCollectionPayload *resourcePtr,
        OCDiscoveryPayload *payload, OCDevAddr *devAddr)
{
    if (!resourcePtr || !payload)
    {
        return OC_STACK_INVALID_PARAM;
    }
    if (resourcePtr->tags && (resourcePtr->tags->bitmap & OC_SECURE))
    {
       if (GetSecurePortInfo(devAddr, &resourcePtr->tags->port) != OC_STACK_OK)
       {
           OC_LOG(ERROR, TAG, "Failed setting secure port.");
       }
    }
    if (resourcePtr->tags && !resourcePtr->tags->baseURI)
    {
        resourcePtr->tags->baseURI = OICStrdup(devAddr->addr);
    }
    OCDiscoveryCollectionPayloadAddResource(payload, resourcePtr->tags, resourcePtr->setLinks);
    return OC_STACK_OK;
}