Ejemplo n.º 1
0
CAResult_t CAIPStartNetworkMonitor()
{
    return CAIPJniInit();
}
Ejemplo n.º 2
0
CAResult_t CAIPInitializeNetworkMonitor(const ca_thread_pool_t threadPool)
{
    OIC_LOG(DEBUG, IP_MONITOR_TAG, "CAIPInitializeNetworkMonitor IN");

    VERIFY_NON_NULL(threadPool, IP_MONITOR_TAG, "threadPool is null");

    CAResult_t ret = CAIPJniInit();
    if (CA_STATUS_OK != ret)
    {
        OIC_LOG(ERROR, IP_MONITOR_TAG, "Initialization failed");
        return ret;
    }

    ret = CAIPJniSetContext();
    if (CA_STATUS_OK != ret)
    {
        OIC_LOG(ERROR, IP_MONITOR_TAG, "CAIPJniSetContext failed");
        return ret;
    }

    ret = CACreateIPJNIInterfaceObject(g_context);
    if (CA_STATUS_OK != ret)
    {
        OIC_LOG(ERROR, IP_MONITOR_TAG, "unable to create CaIpInterface instance");
        return ret;
    }

    ret = CAInitializeNetworkMonitorMutexes();

    if (CA_STATUS_OK != ret)
    {
        OIC_LOG(ERROR, IP_MONITOR_TAG, "CAInitializeNetworkMonitorMutexes failed");
        return CA_STATUS_FAILED;
    }

    ca_mutex_lock(g_networkMonitorContextMutex);

    g_networkMonitorContext = (CAIPNetworkMonitorContext *) OICCalloc(
            1, sizeof(*g_networkMonitorContext));
    if (!g_networkMonitorContext)
    {
        OIC_LOG(ERROR, IP_MONITOR_TAG, "g_networkMonitorContext Malloc  failed");
        ca_mutex_unlock(g_networkMonitorContextMutex);
        CADestroyNetworkMonitorMutexes();
        return CA_MEMORY_ALLOC_FAILED;
    }
    g_networkMonitorContext->threadPool = threadPool;

    g_networkMonitorContext->netInterfaceList = u_arraylist_create();
    if (!g_networkMonitorContext->netInterfaceList)
    {
        OIC_LOG(ERROR, IP_MONITOR_TAG, "u_arraylist_create failed");
        OICFree(g_networkMonitorContext);
        ca_mutex_unlock(g_networkMonitorContextMutex);
        CADestroyNetworkMonitorMutexes();
        return CA_MEMORY_ALLOC_FAILED;
    }

    CAIPUpdateInterfaceInformation(&g_networkMonitorContext->netInterfaceList);

    if (u_arraylist_length(g_networkMonitorContext->netInterfaceList))
    {
        g_networkMonitorContext->nwConnectivityStatus = CA_INTERFACE_UP;
    }
    else
    {
        g_networkMonitorContext->nwConnectivityStatus = CA_INTERFACE_DOWN;
    }

    ca_mutex_unlock(g_networkMonitorContextMutex);

    OIC_LOG(DEBUG, IP_MONITOR_TAG, "OUT");
    return CA_STATUS_OK;
}