int mmsServer_handleGetVariableAccessAttributesRequest( MmsServerConnection* connection, GetVariableAccessAttributesRequest_t* request, int invokeId, ByteBuffer* response) { if (request->present == GetVariableAccessAttributesRequest_PR_name) { if (request->choice.name.present == ObjectName_PR_domainspecific) { Identifier_t domainId = request->choice.name.choice.domainspecific.domainId; Identifier_t nameId = request->choice.name.choice.domainspecific.itemId; char* domainIdStr = createStringFromBuffer(domainId.buf, domainId.size); char* nameIdStr = createStringFromBuffer(nameId.buf, nameId.size); if (DEBUG) printf("getVariableAccessAttributes domainId: %s nameId: %s\n", domainIdStr, nameIdStr); createVariableAccessAttributesResponse(connection, domainIdStr, nameIdStr, invokeId, response); free(domainIdStr); free(nameIdStr); } else { if (DEBUG) printf("GetVariableAccessAttributesRequest with name other than domainspecific is not supported!\n"); return -1; } } else { if (DEBUG) printf("GetVariableAccessAttributesRequest with address not supported!\n"); return -1; } return 0; }
int mmsServer_handleGetVariableAccessAttributesRequest( MmsServerConnection* connection, uint8_t* buffer, int bufPos, int maxBufPos, int invokeId, ByteBuffer* response) { int retVal = 0; GetVariableAccessAttributesRequest_t* request = 0; asn_dec_rval_t rval; /* Decoder return value */ rval = ber_decode(NULL, &asn_DEF_GetVariableAccessAttributesRequest, (void**) &request, buffer + bufPos, maxBufPos - bufPos); if (request->present == GetVariableAccessAttributesRequest_PR_name) { if (request->choice.name.present == ObjectName_PR_domainspecific) { Identifier_t domainId = request->choice.name.choice.domainspecific.domainId; Identifier_t nameId = request->choice.name.choice.domainspecific.itemId; char* domainIdStr = createStringFromBuffer(domainId.buf, domainId.size); char* nameIdStr = createStringFromBuffer(nameId.buf, nameId.size); if (DEBUG) printf("getVariableAccessAttributes domainId: %s nameId: %s\n", domainIdStr, nameIdStr); createVariableAccessAttributesResponse(connection, domainIdStr, nameIdStr, invokeId, response); free(domainIdStr); free(nameIdStr); } else { if (DEBUG) printf("GetVariableAccessAttributesRequest with name other than domainspecific is not supported!\n"); retVal = -1; } } else { if (DEBUG) printf("GetVariableAccessAttributesRequest with address not supported!\n"); retVal = -1; } asn_DEF_GetVariableAccessAttributesRequest.free_struct(&asn_DEF_GetVariableAccessAttributesRequest, request, 0); return retVal; }
int mmsServer_handleGetVariableAccessAttributesRequest( MmsServerConnection connection, uint8_t* buffer, int bufPos, int maxBufPos, uint32_t invokeId, ByteBuffer* response) { int retVal = 0; GetVariableAccessAttributesRequest_t* request = 0; asn_dec_rval_t rval; /* Decoder return value */ rval = ber_decode(NULL, &asn_DEF_GetVariableAccessAttributesRequest, (void**) &request, buffer + bufPos, maxBufPos - bufPos); if (rval.code == RC_OK) { if (request->present == GetVariableAccessAttributesRequest_PR_name) { if (request->choice.name.present == ObjectName_PR_domainspecific) { Identifier_t domainId = request->choice.name.choice.domainspecific.domainId; Identifier_t nameId = request->choice.name.choice.domainspecific.itemId; char* domainIdStr = createStringFromBuffer(domainId.buf, domainId.size); char* nameIdStr = createStringFromBuffer(nameId.buf, nameId.size); if (DEBUG_MMS_SERVER) printf("MMS_SERVER: getVariableAccessAttributes domainId: %s nameId: %s\n", domainIdStr, nameIdStr); createVariableAccessAttributesResponse(connection, domainIdStr, nameIdStr, invokeId, response); GLOBAL_FREEMEM(domainIdStr); GLOBAL_FREEMEM(nameIdStr); } #if (CONFIG_MMS_SUPPORT_VMD_SCOPE_NAMED_VARIABLES == 1) else if (request->choice.name.present == ObjectName_PR_vmdspecific) { Identifier_t nameId = request->choice.name.choice.vmdspecific; char* nameIdStr = createStringFromBuffer(nameId.buf, nameId.size); if (DEBUG_MMS_SERVER) printf("MMS_SERVER: getVariableAccessAttributes (VMD specific) nameId: %s\n", nameIdStr); createVariableAccessAttributesResponse(connection, NULL, nameIdStr, invokeId, response); GLOBAL_FREEMEM(nameIdStr); } #endif /* (CONFIG_MMS_SUPPORT_VMD_SCOPE_NAMED_VARIABLES == 1) */ else { if (DEBUG_MMS_SERVER) printf("GetVariableAccessAttributesRequest with name other than domainspecific is not supported!\n"); retVal = -1; } } else { if (DEBUG_MMS_SERVER) printf("GetVariableAccessAttributesRequest with address not supported!\n"); retVal = -1; } } else { if (DEBUG_MMS_SERVER) printf("GetVariableAccessAttributesRequest parsing request failed!\n"); retVal = -1; } asn_DEF_GetVariableAccessAttributesRequest.free_struct(&asn_DEF_GetVariableAccessAttributesRequest, request, 0); return retVal; }