View file File name : node-validate.m2i Content :############################################################# -*- c -*- ## generic include for XXX. Do not use directly. ## ## ## assumes an integer rc is available and will be tested by caller ## ######################################################################## @if $m2c_mark_boundary == 1@ /** START code generated by node-validate.m2i */ @end@ ######################################################################## ##---------------------------------------------------------------------- ## setup ##---------------------------------------------------------------------- @if $node.enums == 1@ ##------------------------------------------------------ @ if "$node.perltype" ne "BITS"@ /* check that the value is one of defined enums */ if( (SNMPERR_SUCCESS == rc) @ foreach $e $v enum@ @ include m2c_setup_enum.m2i@ && ( $m2c_nv_val != $m2c_ename ) @ end@ # for each ) { rc = SNMP_ERR_WRONGVALUE; } ##------------------------------------------------------ @ else@ # BITS ## { if($m2c_nv_len > 4) { DEBUGMSGTL(("${context}:${node}", "I can not handle BITS > 4 bytes\n")); rc = SNMP_ERR_GENERR; } else if (SNMPERR_SUCCESS == rc){ u_long bits = 0; /* check that value is within enum mask */ memcpy( &bits, $m2c_nv_str, $m2c_nv_len); bits = ntohl( bits ); if( (bits | $m2c_enum_mask) != $m2c_enum_mask) { DEBUGMSGTL(("${context}:${node}", "bad bits set: bits = %x valid = %x", bits, $m2c_enum_mask)); rc = SNMP_ERR_WRONGVALUE; } } @ end@ ##---------------------------------------------------------------------- ## check RANGES ##---------------------------------------------------------------------- @elsif $node.ranges == 1@ @ if ("$node.decl" eq "long") || ("$node.decl" eq "u_long")@ @ eval $m2c_nv_rc = "SNMP_ERR_WRONGVALUE"@ @ eval $m2c_nv_tmp = "$m2c_nv_val"@ @ else@ @ eval $m2c_nv_rc = "SNMP_ERR_WRONGLENGTH"@ @ eval $m2c_nv_tmp = "$m2c_nv_len"@ @ end@ /* check defined range(s). */ if( (SNMPERR_SUCCESS == rc) @ foreach $a $b range $node@ @ if $a == $b@ && ($m2c_nv_tmp != $a) @ else@ && (($m2c_nv_tmp < $a) || ($m2c_nv_tmp > $b)) @ end@ @ end@ ) { rc = $m2c_nv_rc; } @end@ ## ######################################################################## @if $m2c_mark_boundary == 1@ /** END code generated by node-validate.m2i */ @end@