- 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
-
- CALocalConnectivity_t *conInfo = (CALocalConnectivity_t *) OICCalloc(
- netInfoSize, sizeof(CALocalConnectivity_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].type = CA_IPV4;
- conInfo[count].isSecured = false;
- conInfo[count].addressInfo.IP.port = CAGetServerPortNum(netInfo->ipAddress, false);
- strncpy(conInfo[count].addressInfo.IP.ipAddress, netInfo->ipAddress,
- strlen(netInfo->ipAddress));
-
-#ifdef __WITH_DTLS__
- // copy secure unicast server information
- {
- count ++;
- conInfo[count].type = CA_IPV4;
- conInfo[count].isSecured = true;
- conInfo[count].addressInfo.IP.port = CAGetServerPortNum(netInfo->ipAddress, true);
- strncpy(conInfo[count].addressInfo.IP.ipAddress, netInfo->ipAddress,
- strlen(netInfo->ipAddress));
- }
-#endif
- count ++;
- }
- *size = count;
- *info = conInfo;
- CAClearNetInterfaceInfoList(netInterfaceList);
-
- OIC_LOG(DEBUG, IP_ADAPTER_TAG, "OUT");
- return CA_STATUS_OK;