static uint8_t prv_get_value(lwm2m_tlv_t * tlvP, server_instance_t * targetP) { // There are no multiple instance resources tlvP->type = LWM2M_TYPE_RESOURCE; switch (tlvP->id) { case LWM2M_SERVER_SHORT_ID_ID: lwm2m_tlv_encode_int(targetP->shortServerId, tlvP); if (0 != tlvP->length) return COAP_205_CONTENT; else return COAP_500_INTERNAL_SERVER_ERROR; case LWM2M_SERVER_LIFETIME_ID: lwm2m_tlv_encode_int(targetP->lifetime, tlvP); if (0 != tlvP->length) return COAP_205_CONTENT; else return COAP_500_INTERNAL_SERVER_ERROR; case LWM2M_SERVER_DISABLE_ID: return COAP_405_METHOD_NOT_ALLOWED; case LWM2M_SERVER_STORING_ID: lwm2m_tlv_encode_bool(targetP->storing, tlvP); if (0 != tlvP->length) return COAP_205_CONTENT; else return COAP_500_INTERNAL_SERVER_ERROR; case LWM2M_SERVER_BINDING_ID: tlvP->value = (uint8_t*)targetP->binding; tlvP->length = strlen(targetP->binding); tlvP->flags = LWM2M_TLV_FLAG_STATIC_DATA; tlvP->dataType = LWM2M_TYPE_STRING; return COAP_205_CONTENT; case LWM2M_SERVER_UPDATE_ID: return COAP_405_METHOD_NOT_ALLOWED; default: return COAP_404_NOT_FOUND; } }
static uint8_t prv_get_value(lwm2m_tlv_t * tlvP, security_instance_t * targetP) { // There are no multiple instance ressources tlvP->type = LWM2M_TYPE_RESOURCE; switch (tlvP->id) { case LWM2M_SECURITY_URI_ID: tlvP->value = (uint8_t*)targetP->uri; tlvP->length = strlen(targetP->uri); tlvP->flags = LWM2M_TLV_FLAG_STATIC_DATA; tlvP->dataType = LWM2M_TYPE_STRING; return COAP_205_CONTENT; case LWM2M_SECURITY_BOOTSTRAP_ID: lwm2m_tlv_encode_bool(targetP->isBootstrap, tlvP); if (0 != tlvP->length) return COAP_205_CONTENT; else return COAP_500_INTERNAL_SERVER_ERROR; case LWM2M_SECURITY_SECURITY_ID: lwm2m_tlv_encode_int(LWM2M_SECURITY_MODE_NONE, tlvP); if (0 != tlvP->length) return COAP_205_CONTENT; else return COAP_500_INTERNAL_SERVER_ERROR; case LWM2M_SECURITY_PUBLIC_KEY_ID: // Here we return an opaque of 1 byte containing 0 tlvP->value = (uint8_t*)""; tlvP->length = 1; tlvP->flags = LWM2M_TLV_FLAG_STATIC_DATA; tlvP->dataType = LWM2M_TYPE_OPAQUE; return COAP_205_CONTENT; case LWM2M_SECURITY_SERVER_PUBLIC_KEY_ID: // Here we return an opaque of 1 byte containing 0 tlvP->value = (uint8_t*)""; tlvP->length = 1; tlvP->flags = LWM2M_TLV_FLAG_STATIC_DATA; tlvP->dataType = LWM2M_TYPE_OPAQUE; return COAP_205_CONTENT; case LWM2M_SECURITY_SECRET_KEY_ID: // Here we return an opaque of 1 byte containing 0 tlvP->value = (uint8_t*)""; tlvP->length = 1; tlvP->flags = LWM2M_TLV_FLAG_STATIC_DATA; tlvP->dataType = LWM2M_TYPE_OPAQUE; return COAP_205_CONTENT; case LWM2M_SECURITY_SMS_SECURITY_ID: lwm2m_tlv_encode_int(LWM2M_SECURITY_MODE_NONE, tlvP); if (0 != tlvP->length) return COAP_205_CONTENT; else return COAP_500_INTERNAL_SERVER_ERROR; case LWM2M_SECURITY_SMS_KEY_PARAM_ID: // Here we return an opaque of 6 bytes containing a buggy value tlvP->value = (uint8_t*)"12345"; tlvP->length = 6; tlvP->flags = LWM2M_TLV_FLAG_STATIC_DATA; tlvP->dataType = LWM2M_TYPE_OPAQUE; return COAP_205_CONTENT; case LWM2M_SECURITY_SMS_SECRET_KEY_ID: // Here we return an opaque of 32 bytes containing a buggy value tlvP->value = (uint8_t*)"1234567890abcdefghijklmnopqrstu"; tlvP->length = 32; tlvP->flags = LWM2M_TLV_FLAG_STATIC_DATA; tlvP->dataType = LWM2M_TYPE_OPAQUE; return COAP_205_CONTENT; case LWM2M_SECURITY_SMS_SERVER_NUMBER_ID: lwm2m_tlv_encode_int(0, tlvP); if (0 != tlvP->length) return COAP_205_CONTENT; else return COAP_500_INTERNAL_SERVER_ERROR; case LWM2M_SECURITY_SHORT_SERVER_ID: lwm2m_tlv_encode_int(targetP->shortID, tlvP); if (0 != tlvP->length) return COAP_205_CONTENT; else return COAP_500_INTERNAL_SERVER_ERROR; case LWM2M_SECURITY_HOLD_OFF_ID: lwm2m_tlv_encode_int(targetP->clientHoldOffTime, tlvP); if (0 != tlvP->length) return COAP_205_CONTENT; else return COAP_500_INTERNAL_SERVER_ERROR; default: return COAP_404_NOT_FOUND; } }