|
Packit |
fcad23 |
############################################################# -*- c -*-
|
|
Packit |
fcad23 |
## generic include for XXX. Do not use directly.
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
########################################################################
|
|
Packit |
fcad23 |
@if $m2c_mark_boundary == 1@
|
|
Packit |
fcad23 |
/** START code generated by node-get.m2i */
|
|
Packit |
fcad23 |
@end@
|
|
Packit |
fcad23 |
########################################################################
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
@include m2c_setup_node.m2i@
|
|
Packit |
fcad23 |
@eval $m2c_node_realloc = 2@ // malloc
|
|
Packit |
fcad23 |
/**
|
|
Packit |
fcad23 |
* Extract the current value of the $node data.
|
|
Packit |
fcad23 |
*
|
|
Packit |
fcad23 |
* Set a value using the data context for the row.
|
|
Packit |
fcad23 |
*
|
|
Packit |
fcad23 |
@if $m2c_node_get_comments ne ""@
|
|
Packit |
fcad23 |
$m2c_node_get_comments
|
|
Packit |
fcad23 |
*
|
|
Packit |
fcad23 |
@end@
|
|
Packit |
fcad23 |
* @param rowreq_ctx
|
|
Packit |
fcad23 |
* Pointer to the row request context.
|
|
Packit |
fcad23 |
* @param $m2c_node_param_ref_name
|
|
Packit |
fcad23 |
* Pointer to storage for a $node.decl variable
|
|
Packit |
fcad23 |
@if $m2c_node_needlength == 1@
|
|
Packit |
fcad23 |
* @param $m2c_node_param_ref_lname
|
|
Packit |
fcad23 |
* Pointer to a size_t. On entry, it will contain the size (in bytes)
|
|
Packit |
fcad23 |
* pointed to by $node.
|
|
Packit |
fcad23 |
* On exit, this value should contain the data size (in bytes).
|
|
Packit |
fcad23 |
@end@
|
|
Packit |
fcad23 |
*
|
|
Packit |
fcad23 |
* @retval MFD_SUCCESS : success
|
|
Packit |
fcad23 |
* @retval MFD_SKIP : skip this node (no value for now)
|
|
Packit |
fcad23 |
* @retval MFD_ERROR : Any other error
|
|
Packit |
fcad23 |
@if $m2c_node_needlength == 1@
|
|
Packit |
fcad23 |
*
|
|
Packit |
fcad23 |
* @note If you need more than (*$m2c_node_param_ref_lname) bytes of memory,
|
|
Packit |
fcad23 |
* allocate it using malloc() and update $m2c_node_param_ref_name.
|
|
Packit |
fcad23 |
* DO NOT free the previous pointer.
|
|
Packit |
fcad23 |
* The MFD helper will release the memory you allocate.
|
|
Packit |
fcad23 |
*
|
|
Packit |
fcad23 |
* @remark If you call this function yourself, you are responsible
|
|
Packit |
fcad23 |
* for checking if the pointer changed, and freeing any
|
|
Packit |
fcad23 |
* previously allocated memory. (Not necessary if you pass
|
|
Packit |
fcad23 |
* in a pointer to static memory, obviously.)
|
|
Packit |
fcad23 |
@end@
|
|
Packit |
fcad23 |
*/
|
|
Packit |
fcad23 |
int
|
|
Packit |
fcad23 |
${node}_get( ${context}_rowreq_ctx *rowreq_ctx, $m2c_node_param_ref )
|
|
Packit |
fcad23 |
{
|
|
Packit |
fcad23 |
@ifconf syntax-$node.syntax-get.m2i@
|
|
Packit |
fcad23 |
@ include syntax-$node.syntax-get.m2i@
|
|
Packit |
fcad23 |
@else@
|
|
Packit |
fcad23 |
@ include generic-get-decl.m2i@
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
DEBUGMSGTL(("verbose:${context}:${node}_get","called\n"));
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
netsnmp_assert(NULL != rowreq_ctx);
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
/*
|
|
Packit |
fcad23 |
* TODO:231:o: |-> Extract the current value of the $node data.
|
|
Packit |
fcad23 |
@if $m2c_node_needlength == 0@
|
|
Packit |
fcad23 |
* copy $m2c_node_lh from $m2c_data_item_base
|
|
Packit |
fcad23 |
@else@
|
|
Packit |
fcad23 |
* copy $m2c_node_lh data and $m2c_node_lhs from $m2c_data_item_base
|
|
Packit |
fcad23 |
@end@
|
|
Packit |
fcad23 |
*/
|
|
Packit |
fcad23 |
@ if ("$m2c_data_context" eq "generated") && ($m2c_node_skip_get != 1)@
|
|
Packit |
fcad23 |
@ include generic-ctx-get.m2i@
|
|
Packit |
fcad23 |
@ else@
|
|
Packit |
fcad23 |
@ if ($m2c_node_skip_get != 1)@
|
|
Packit |
fcad23 |
/*
|
|
Packit |
fcad23 |
* TODO:235:M: |-> Remove log message/SKIP once you've set $node data
|
|
Packit |
fcad23 |
*/
|
|
Packit |
fcad23 |
snmp_log(LOG_ERR,"${context} node $node not implemented: skipping\n");
|
|
Packit |
fcad23 |
@ end@
|
|
Packit |
fcad23 |
return MFD_SKIP;
|
|
Packit |
fcad23 |
@ end@
|
|
Packit |
fcad23 |
## ------------------------------------------------------------------
|
|
Packit |
fcad23 |
@ if $node.decl =~ /long/i@ # ASN_INTEGER ASN_COUNTER ASN_GAUGE
|
|
Packit |
fcad23 |
@ include generic-get-long.m2i@
|
|
Packit |
fcad23 |
@ elsif $node.decl =~ /char/i@ # ASN_OCTET_STR ASN_OPAQUE
|
|
Packit |
fcad23 |
@ include generic-get-char.m2i@
|
|
Packit |
fcad23 |
@ elsif $node.decl =~ /oid/i@ # ASN_OBJECT_ID
|
|
Packit |
fcad23 |
@ include generic-get-oid.m2i@
|
|
Packit |
fcad23 |
@ elsif $node.decl =~ /U64/i@ # ASN_COUNTER64
|
|
Packit |
fcad23 |
@ include generic-get-U64.m2i@
|
|
Packit |
fcad23 |
@ else@
|
|
Packit |
fcad23 |
@ print ERROR: unknown node.decl: $node.decl@
|
|
Packit |
fcad23 |
@ exit@
|
|
Packit |
fcad23 |
@ end@
|
|
Packit |
fcad23 |
## ------------------------------------------------------------------
|
|
Packit |
fcad23 |
@ if ($m2c_node_skip_mapping != 1) && ("$m2c_data_context" ne "generated")@
|
|
Packit |
fcad23 |
@ include generic-value-map.m2i@
|
|
Packit |
fcad23 |
@ end@
|
|
Packit |
fcad23 |
@ include generic-get-decl-bot.m2i@ // copy value out
|
|
Packit |
fcad23 |
@end@ # no syntax include
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
return MFD_SUCCESS;
|
|
Packit |
fcad23 |
} /* ${node}_get */
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
##
|
|
Packit |
fcad23 |
########################################################################
|
|
Packit |
fcad23 |
@if $m2c_mark_boundary == 1@
|
|
Packit |
fcad23 |
/** END code generated by node-get.m2i */
|
|
Packit |
fcad23 |
@end@
|