void lwm2m_deregister(lwm2m_context_t * context) { lwm2m_server_t * server = context->serverList; while (NULL != server) { registration_deregister(context, server); server = server->next; } }
void lwm2m_close(lwm2m_context_t * contextP) { int i; #ifdef LWM2M_CLIENT_MODE for (i = 0 ; i < contextP->numObject ; i++) { if (NULL != contextP->objectList[i]->closeFunc) { contextP->objectList[i]->closeFunc(contextP->objectList[i]); } lwm2m_free(contextP->objectList[i]); } if (NULL != contextP->bootstrapServer) { if (NULL != contextP->bootstrapServer->uri) lwm2m_free (contextP->bootstrapServer->uri); if (NULL != contextP->bootstrapServer->security.privateKey) lwm2m_free (contextP->bootstrapServer->security.privateKey); if (NULL != contextP->bootstrapServer->security.publicKey) lwm2m_free (contextP->bootstrapServer->security.publicKey); lwm2m_free(contextP->bootstrapServer); } while (NULL != contextP->serverList) { lwm2m_server_t * targetP; targetP = contextP->serverList; contextP->serverList = contextP->serverList->next; registration_deregister(contextP, targetP); if (NULL != targetP->security.privateKey) lwm2m_free (targetP->security.privateKey); if (NULL != targetP->security.publicKey) lwm2m_free (targetP->security.publicKey); lwm2m_free(targetP); } if (NULL != contextP->objectList) { lwm2m_free(contextP->objectList); } lwm2m_free(contextP->endpointName); #endif #ifdef LWM2M_SERVER_MODE while (NULL != contextP->clientList) { lwm2m_client_t * clientP; clientP = contextP->clientList; contextP->clientList = contextP->clientList->next; prv_freeClient(clientP); } #endif while (NULL != contextP->transactionList) { lwm2m_transaction_t * transacP; transacP = contextP->transactionList; contextP->transactionList = contextP->transactionList->next; transaction_free(transacP); } lwm2m_free(contextP); }