static void prv_restore_objects(lwm2m_context_t * context) { uint16_t i; /* * Restore content of objects 0 (security) and 1 (server) */ for (i = 0; i < context->numObject; i++) { lwm2m_object_t * object = context->objectList[i]; if (NULL != object) { switch (object->objID) { case LWM2M_SECURITY_OBJECT_ID: // first delete internal content clean_security_object(object); // then restore previous object copy_security_object(object, backupObjectArray[0]); break; case LWM2M_SERVER_OBJECT_ID: // first delete internal content clean_server_object(object); // then restore previous object copy_server_object(object, backupObjectArray[1]); break; default: break; } } } // restart the old servers fprintf(stdout, "[BOOTSTRAP] ObjectList restored\r\n"); }
static void prv_backup_objects(lwm2m_context_t * context) { uint16_t i; for (i = 0; i < BACKUP_OBJECT_COUNT; i++) { if (NULL != backupObjectArray[i]) { switch (backupObjectArray[i]->objID) { case LWM2M_SECURITY_OBJECT_ID: clean_security_object(backupObjectArray[i]); lwm2m_free(backupObjectArray[i]); break; case LWM2M_SERVER_OBJECT_ID: clean_server_object(backupObjectArray[i]); lwm2m_free(backupObjectArray[i]); break; default: break; } } backupObjectArray[i] = (lwm2m_object_t *)lwm2m_malloc(sizeof(lwm2m_object_t)); if(backupObjectArray[i] != NULL) memset(backupObjectArray[i], 0, sizeof(lwm2m_object_t)); } /* * Backup content of objects 0 (security) and 1 (server) */ copy_security_object(backupObjectArray[0], (lwm2m_object_t *)LWM2M_LIST_FIND(context->objectList, LWM2M_SECURITY_OBJECT_ID)); copy_server_object(backupObjectArray[1], (lwm2m_object_t *)LWM2M_LIST_FIND(context->objectList, LWM2M_SERVER_OBJECT_ID)); }
static void prv_backup_objects(lwm2m_context_t * context) { uint16_t i; for (i = 0; i < BACKUP_OBJECT_COUNT; i++) { if (NULL != backupObjectArray[i]) { backupObjectArray[i]->closeFunc(backupObjectArray[i]); lwm2m_free(backupObjectArray[i]); } backupObjectArray[i] = (lwm2m_object_t *)lwm2m_malloc(sizeof(lwm2m_object_t)); memset(backupObjectArray[i], 0, sizeof(lwm2m_object_t)); } /* * Backup content of objects 0 (security) and 1 (server) */ for (i = 0; i < context->numObject; i++) { lwm2m_object_t * object = context->objectList[i]; if (NULL != object) { switch (object->objID) { case LWM2M_SECURITY_OBJECT_ID: copy_security_object(backupObjectArray[0], object); break; case LWM2M_SERVER_OBJECT_ID: copy_server_object(backupObjectArray[1], object); break; default: break; } } } }
static void prv_restore_objects(lwm2m_context_t * context) { lwm2m_object_t * targetP; /* * Restore content of objects 0 (security) and 1 (server) */ targetP = (lwm2m_object_t *)LWM2M_LIST_FIND(context->objectList, LWM2M_SECURITY_OBJECT_ID); // first delete internal content clean_security_object(targetP); // then restore previous object copy_security_object(targetP, backupObjectArray[0]); targetP = (lwm2m_object_t *)LWM2M_LIST_FIND(context->objectList, LWM2M_SERVER_OBJECT_ID); // first delete internal content clean_server_object(targetP); // then restore previous object copy_server_object(targetP, backupObjectArray[1]); // restart the old servers fprintf(stdout, "[BOOTSTRAP] ObjectList restored\r\n"); }