logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

snmp_pdu_add_variable, snmp_varlist_add_variable, snmp_add_null_var, snmp_clone_varbind,

Description

       The functions dealing with variable bindings fall into four groups - dealing with the  creation,  setting
       of values, output and deletion of varbinds.

   Creationsnmp_pdu_add_variable will create a new varbind structure, initialised with the name ( objid, objidlen ),
       syntax  (  type  )  and  value  (  value,len ) provided.  This varbind is then added to the end of the
       varbind list in the given PDU.

       snmp_varlist_add_variable is similar, but appends the  new  varbind  to  the  end  of  the  varbind  list
       provided.   When  adding  the  first varbind to an empty list, simply pass the address of the head of the
       list:

                netsnmp_variable_list *vl = NULL;
                snmp_varlist_add_variable(
                          &vl, name1, name1_len,
                          ASN_TYPE, &val1, val1_len);
                snmp_varlist_add_variable(
                          &vl, name2, name2_len,
                          ASN_TYPE, &val2, val2_len);

       In both cases, the routine will return a pointer to the new varbind structure (or  NULL  if  the  varbind
       creation fails).

       snmp_add_null_var  is  a  convenience  function  to  add an empty varbind to the PDU.  without needing to
       specify the NULL value explicitly.  This is the normal mechanism for  constructing  a  GET  (or  similar)
       information retrieval request.
       Again, this returns a pointer to the new varbind, or NULL.

       snmp_clone_varbind  creates a copy of each varbind in the specified list, returning a pointer to the head
       of the new list (or NULL if the cloning fails).

   Settingofvaluessnmp_set_var_objid sets the name of the varbind structure to the specified OID.
       snmp_set_var_typed_value sets the syntax type and value of the varbind structure.
       snmp_set_var_value sets the value of the varbind structure, leaving the syntax type unchanged.
       snmp_set_var_typed_integer is a convenience function to set the  syntax  type  and  value  for  a  32-bit
       integer-based varbind.

       All four of these return 0 if the assignment is successful, or 1 if it is not.

   Outputprint_variable   will   take   an  object  identifier  (as  returned  by  read_objid,  snmp_parse_oid  or
       get_module_node) and an instance of such a variable, and prints to the standard output the  textual  form
       of the object identifier together with the value of the variable.

       fprint_variable does the same, but prints to the FILE pointer specified by the initial parameter.

       snprint_variable  prints  the  same information into the buffer pointed to by buf which is of length len.
       It returns the number of characters printed, or -1 if the buffer was not large  enough.   In  the  latter
       case,  buf  will  typically  contained  a truncated version of the information (but this behaviour is not
       guaranteed).  This function replaces the obsolete function sprint_variable.

       print_value, fprint_value, and snprint_value do the same as the equivalent print_variable  routines,  but
       only displaying the value of the variable, without the corresponding object identifier.

       For displaying the OID of a varbind, see netsnmp_mib_api(3).

   Deletionsnmp_free_var releases all memory used by the given varbind structure.
       snmp_free_varbind releases all memory used by each varbind structure in the varbind list provided.

Name

       snmp_pdu_add_variable,       snmp_varlist_add_variable,       snmp_add_null_var,      snmp_clone_varbind,
       snmp_set_var_objid,     snmp_set_var_value,     snmp_set_var_typed_value,     snmp_set_var_typed_integer,
       print_variable,    fprint_variable,    snprint_variable,    print_value,   fprint_value,   snprint_value,
       snmp_free_var, snmp_free_varbind - netsnmp_varbind_api functions

See Also

netsnmp_pdu_api(3) netsnmp_mib_api(3)

V5.9.4.pre2                                        13 Aug 2010                            NETSNMP_VARBIND_API(3)

Synopsis

#include<net-snmp/varbind_api.h>Creationnetsnmp_variable_list*snmp_pdu_add_variable(netsnmp_pdu*pdu,constoid*objid,size_tobjidlen,u_chartype,constvoid*value,size_tlen);netsnmp_variable_list*snmp_varlist_add_variable(netsnmp_variable_list*varlist,constoid*objid,size_tobjidlen,u_chartype,constvoid*value,size_tlen);netsnmp_variable_list*snmp_add_null_var(netsnmp_pdu*pdu,constoid*objid,size_tobjidlen);netsnmp_variable_list*snmp_clone_varbind(netsnmp_variable_list*varlist);SettingValuesintsnmp_set_var_objid(netsnmp_variable_list*variable,constoid*objid,size_tobjidlen);intsnmp_set_var_value(netsnmp_variable_list*variable,constvoid*value,size_tvallen);intsnmp_set_var_typed_value(netsnmp_variable_list*variable,u_chartype,constvoid*value,size_tvallen);intsnmp_set_var_typed_integer(netsnmp_variable_list*variable,u_chartype,longvalue);Outputvoidprint_variable(constoid*objid,size_tobjidlen,constnetsnmp_variable_list*variable);voidfprint_variable(FILE*fp,constoid*objid,size_tobjidlen,constnetsnmp_variable_list*variable);intsnprint_variable(char*buf,size_tlen,constoid*objid,size_tobjidlen,constnetsnmp_variable_list*variable);voidprint_value(constoid*objid,size_tobjidlen,constnetsnmp_variable_list*variable);voidfprint_value(FILE*fp,constoid*objid,size_tobjidlen,constnetsnmp_variable_list*variable);intsnprint_value(char*buf,size_tlen,constoid*objid,size_tobjidlen,constnetsnmp_variable_list*variable);Deletionvoidsnmp_free_var(netsnmp_variable_list*variable);voidsnmp_free_varbind(netsnmp_variable_list*variables);

See Also