- OIC_LOG(DEBUG, IP_ADAPTER_TAG, "IN");
-
- VERIFY_NON_NULL(info, IP_ADAPTER_TAG, "info is NULL");
- VERIFY_NON_NULL(size, IP_ADAPTER_TAG, "size is NULL");
-
- bool retVal = CAIPIsConnected();
- if (false == retVal)
- {
- OIC_LOG(ERROR, IP_ADAPTER_TAG,
- "Failed to get interface address, IP not Connected");
- return CA_ADAPTER_NOT_ENABLED;
- }
-
- u_arraylist_t *netInterfaceList = u_arraylist_create();
-
- VERIFY_NON_NULL(netInterfaceList, IP_ADAPTER_TAG, "netInterfaceList is NULL");
-
- CAResult_t ret = CAIPGetInterfaceInfo(&netInterfaceList);
- if (CA_STATUS_OK != ret)
- {
- OIC_LOG_V(ERROR, IP_ADAPTER_TAG, "CAIPGetInterfaceInfo failed:%d", ret);
- CAClearNetInterfaceInfoList(netInterfaceList);
- return ret;
- }
-
- uint32_t listLength = u_arraylist_length(netInterfaceList);
- uint32_t netInfoSize = listLength;
-
-#ifdef __WITH_DTLS__
- if (listLength)
- {
- netInfoSize = listLength * 2;
- }
-#endif
-
- CAEndpoint_t *conInfo = (CAEndpoint_t *)OICCalloc(netInfoSize, sizeof (CAEndpoint_t));
- if (!conInfo)
- {
- OIC_LOG(ERROR, IP_ADAPTER_TAG, "Malloc Failed");
- CAClearNetInterfaceInfoList(netInterfaceList);
- return CA_MEMORY_ALLOC_FAILED;
- }
-
- uint32_t listIndex = 0;
- uint32_t count = 0;
- for (listIndex = 0; listIndex < listLength; listIndex++)
- {
- CANetInfo_t *netInfo = (CANetInfo_t *) u_arraylist_get(netInterfaceList, listIndex);
- if (!netInfo)
- {
- continue;
- }
-
- conInfo[count].adapter = CA_ADAPTER_IP;
- conInfo[count].flags = 0;
- conInfo[count].port = CAGetServerPortNum(netInfo->ipAddress, false);
- OICStrcpy(conInfo[count].addr,
- sizeof(conInfo[count].addr),
- netInfo->ipAddress);
-
-#ifdef __WITH_DTLS__
- // copy secure unicast server information
- {
- count ++;
- conInfo[count].adapter = CA_ADAPTER_IP;
- conInfo[count].flags = CA_SECURE;
- conInfo[count].port = CAGetServerPortNum(netInfo->ipAddress, true);
- OICStrcpy(conInfo[count].addr,
- sizeof(conInfo[count].addr),
- netInfo->ipAddress);
- }
-#endif
- count ++;
- }
- *size = count;
- *info = conInfo;
- CAClearNetInterfaceInfoList(netInterfaceList);
-
- OIC_LOG(DEBUG, IP_ADAPTER_TAG, "OUT");
- return CA_STATUS_OK;