int coap_Destroy(void)
{
    Lwm2m_Info("Close port: \n");     //  TODO - remove
    if (networkSocket)
        NetworkSocket_Free(&networkSocket);
    // TODO - close any open sessions
//    coap_free_context(coapContext);
//    DestroyLists();
    return 0;
}
NetworkSocket * NetworkSocket_New(const char * ipAddress, NetworkSocketType socketType, uint16_t port)
{
    size_t size = sizeof(struct _NetworkSocket);
    NetworkSocket * result = (NetworkSocket *)malloc(size);
    if (result)
    {
        memset(result, 0, size);
        result->SocketType = socketType;
        result->Port = port;
        DTLS_SetNetworkSendCallback(SendDTLS);
        if (ipAddress && (*ipAddress != '\0'))
        {
            result->BindAddress = NetworkAddress_FromIPAddress(ipAddress, port);
            if (!result->BindAddress)
                NetworkSocket_Free(&result);
        }
    }
    return result;
}