Logo
Home page Net-SNMP

Archive Search:

Require all words?

Site Search:
Google
Main Page | Modules | Data Structures | File List | Data Fields | Related Pages | Examples

mib parsing and datatype manipulation routines.
[The Net-SNMP library]


Data Structures

struct   _PrefixList
struct   parse_hints

Typedefs

typedef _PrefixList *  PrefixListPtr
typedef _PrefixList  PrefixList

Enumerations

enum   inet_address_type {
  IPV4 = 1, IPV6 = 2, IPV4Z = 3, IPV6Z = 4,
  DNS = 16
}

Functions

int  _sprint_hexstring_line (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const u_char *cp, size_t line_len)
  Prints a hexadecimal string into a buffer.
int  sprint_realloc_hexstring (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const u_char *cp, size_t len)
int  sprint_realloc_asciistring (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const u_char *cp, size_t len)
  Prints an ascii string into a buffer.
int  sprint_realloc_octet_string (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints an octet string into a buffer.
int  sprint_realloc_counter64 (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints a counter into a buffer.
int  sprint_realloc_opaque (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints an object identifier into a buffer.
int  sprint_realloc_object_identifier (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints an object identifier into a buffer.
int  sprint_realloc_timeticks (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints a timetick variable into a buffer.
int  sprint_realloc_hinted_integer (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, long val, const char decimaltype, const char *hint, const char *units)
  Prints an integer according to the hint into a buffer.
int  sprint_realloc_integer (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints an integer into a buffer.
int  sprint_realloc_uinteger (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints an unsigned integer into a buffer.
int  sprint_realloc_gauge (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints a gauge value into a buffer.
int  sprint_realloc_counter (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints a counter value into a buffer.
int  sprint_realloc_networkaddress (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints a network address into a buffer.
int  sprint_realloc_ipaddress (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints an ip-address into a buffer.
int  sprint_realloc_null (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints a null value into a buffer.
int  sprint_realloc_bitstring (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Prints a bit string into a buffer.
int  sprint_realloc_nsapaddress (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  sprint_realloc_badtype (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Fallback routine for a bad type, prints "Variable has bad type" into a buffer.
int  sprint_realloc_by_type (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
  Universal print routine, prints a variable into a buffer according to the variable type.
tree *  get_tree_head (void)
  Retrieves the tree head.
char *  snmp_out_toggle_options (char *options)
void  snmp_out_toggle_options_usage (const char *lead, FILE *outf)
char *  snmp_in_options (char *optarg, int argc, char *const *argv)
char *  snmp_in_toggle_options (char *options)
void  snmp_in_toggle_options_usage (const char *lead, FILE *outf)
  Prints out a help usage for the in* toggle options.
void  register_mib_handlers (void)
void  netsnmp_set_mib_directory (const char *dir)
char *  netsnmp_get_mib_directory (void)
void  netsnmp_fixup_mib_directory (void)
void  init_mib (void)
  Initialises the mib reader.
void  shutdown_mib (void)
  Unloads all mibs.
void  print_mib (FILE *fp)
  Prints the MIBs to the file fp.
void  print_ascii_dump (FILE *fp)
void  set_function (struct tree *subtree)
  Set's the printing function printomat in a subtree according it's type.
int  read_objid (const char *input, oid *output, size_t *out_len)
  Reads an object identifier from an input string into internal OID form.
void  netsnmp_sprint_realloc_objid (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, int *buf_overflow, const oid *objid, size_t objidlen)
tree *  netsnmp_sprint_realloc_objid_tree (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, int *buf_overflow, const oid *objid, size_t objidlen)
int  sprint_realloc_objid (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const oid *objid, size_t objidlen)
int  snprint_objid (char *buf, size_t buf_len, const oid *objid, size_t objidlen)
void  print_objid (const oid *objid, size_t objidlen)
  Prints an oid to stdout.
void  fprint_objid (FILE *f, const oid *objid, size_t objidlen)
  Prints an oid to a file descriptor.
int  sprint_realloc_variable (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const oid *objid, size_t objidlen, const netsnmp_variable_list *variable)
int  snprint_variable (char *buf, size_t buf_len, const oid *objid, size_t objidlen, const netsnmp_variable_list *variable)
void  print_variable (const oid *objid, size_t objidlen, const netsnmp_variable_list *variable)
  Prints a variable to stdout.
void  fprint_variable (FILE *f, const oid *objid, size_t objidlen, const netsnmp_variable_list *variable)
  Prints a variable to a file descriptor.
int  sprint_realloc_value (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const oid *objid, size_t objidlen, const netsnmp_variable_list *variable)
int  snprint_value (char *buf, size_t buf_len, const oid *objid, size_t objidlen, const netsnmp_variable_list *variable)
void  print_value (const oid *objid, size_t objidlen, const netsnmp_variable_list *variable)
void  fprint_value (FILE *f, const oid *objid, size_t objidlen, const netsnmp_variable_list *variable)
int  build_oid_segment (netsnmp_variable_list *var)
  Takes the value in VAR and turns it into an OID segment in var->name.
int  build_oid_noalloc (oid *in, size_t in_len, size_t *out_len, oid *prefix, size_t prefix_len, netsnmp_variable_list *indexes)
int  build_oid (oid **out, size_t *out_len, oid *prefix, size_t prefix_len, netsnmp_variable_list *indexes)
int  parse_oid_indexes (oid *oidIndex, size_t oidLen, netsnmp_variable_list *data)
int  parse_one_oid_index (oid **oidStart, size_t *oidLen, netsnmp_variable_list *data, int complete)
int  dump_realloc_oid_to_inetaddress (const int addr_type, const oid *objid, size_t objidlen, u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, char quotechar)
int  dump_realloc_oid_to_string (const oid *objid, size_t objidlen, u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, char quotechar)
tree *  get_tree (const oid *objid, size_t objidlen, struct tree *subtree)
  Clone of get_symbol that doesn't take a buffer argument.
void  print_description (oid *objid, size_t objidlen, int width)
  Prints on oid description on stdout.
void  fprint_description (FILE *f, oid *objid, size_t objidlen, int width)
  Prints on oid description into a file descriptor.
int  snprint_description (char *buf, size_t buf_len, oid *objid, size_t objidlen, int width)
int  sprint_realloc_description (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, oid *objid, size_t objidlen, int width)
int  get_module_node (const char *fname, const char *module, oid *objid, size_t *objidlen)
int  get_wild_node (const char *name, oid *objid, size_t *objidlen)
int  get_node (const char *name, oid *objid, size_t *objidlen)
void  clear_tree_flags (register struct tree *tp)
void  print_oid_report (FILE *fp)
void  print_oid_report_enable_labeledoid (void)
void  print_oid_report_enable_oid (void)
void  print_oid_report_enable_suffix (void)
void  print_oid_report_enable_symbolic (void)
void  print_oid_report_enable_mibchildoid (void)
char *  uptime_string (u_long timeticks, char *buf)
  Converts timeticks to hours, minutes, seconds string.
char *  uptime_string_n (u_long timeticks, char *buf, size_t buflen)
oid *  snmp_parse_oid (const char *argv, oid *root, size_t *rootlen)
  Given a string, parses an oid out of it (if possible).
const char *  parse_octet_hint (const char *hint, const char *value, unsigned char **new_val, int *new_val_len)
u_char  mib_to_asn_type (int mib_type)
int  netsnmp_str2oid (const char *S, oid *O, int L)
  Converts a string to its OID form.
int  netsnmp_oid2chars (char *C, int L, const oid *O)
  Converts an OID to its character form.
int  netsnmp_oid2str (char *S, int L, oid *O)
  Converts an OID to its string form.
int  snprint_by_type (char *buf, size_t buf_len, netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_hexstring (char *buf, size_t buf_len, const u_char *cp, size_t len)
int  snprint_asciistring (char *buf, size_t buf_len, const u_char *cp, size_t len)
int  snprint_octet_string (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_opaque (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_object_identifier (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_timeticks (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_hinted_integer (char *buf, size_t buf_len, long val, const char *hint, const char *units)
int  snprint_integer (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_uinteger (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_gauge (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_counter (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_networkaddress (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_ipaddress (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_null (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_bitstring (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_nsapaddress (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_counter64 (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)
int  snprint_badtype (char *buf, size_t buf_len, const netsnmp_variable_list *var, const struct enum_list *enums, const char *hint, const char *units)

Variables

tree *  tree_head
tree *  Mib
oid  RFC1213_MIB [] = { 1, 3, 6, 1, 2, 1 }
PrefixList  mib_prefixes []

Function Documentation

int _sprint_hexstring_line u_char **  buf,
size_t *  buf_len,
size_t *  out_len,
int  allow_realloc,
const u_char *  cp,
size_t  line_len
 

Prints a hexadecimal string into a buffer.

The characters pointed by *cp are encoded as hexadecimal string.

If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)

Parameters:
buf  address of the buffer to print to.
buf_len  address to an integer containing the size of buf.
out_len  incremented by the number of characters printed.
allow_realloc  if not zero reallocate the buffer to fit the needed size.
cp  the array of characters to encode.
len  the array length of cp.
Returns:
1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.)

Definition at line 271 of file mib.c.

References snmp_realloc().

int build_oid oid **  out,
size_t *  out_len,
oid *  prefix,
size_t  prefix_len,
netsnmp_variable_list indexes
 

xxx-rks: should free previous value?

Definition at line 3590 of file mib.c.

Referenced by netsnmp_table_build_oid().

int build_oid_segment netsnmp_variable_list var  ) 
 

Takes the value in VAR and turns it into an OID segment in var->name.

Parameters:
var  The variable.
Returns:
SNMPERR_SUCCESS or SNMPERR_GENERR

Definition at line 3454 of file mib.c.

References variable_list::name, variable_list::name_length, variable_list::name_loc, SNMP_FREE, variable_list::type, variable_list::val, and variable_list::val_len.

void fprint_description FILE *  f,
oid *  objid,
size_t  objidlen,
int  width
 

Prints on oid description into a file descriptor.

Parameters:
f  The file descriptor to print to.
objid  The object identifier.
objidlen  The object id length.
width  Number of subidentifiers.

Definition at line 4436 of file mib.c.

References SNMP_FREE.

Referenced by print_description().

void fprint_objid FILE *  f,
const oid *  objid,
size_t  objidlen
 

Prints an oid to a file descriptor.

Parameters:
f  The file descriptor to print to.
objid  The oid to print
objidlen  The length of oidid.

Definition at line 3182 of file mib.c.

References SNMP_FREE.

Referenced by print_objid().

void fprint_variable FILE *  f,
const oid *  objid,
size_t  objidlen,
const netsnmp_variable_list variable
 

Prints a variable to a file descriptor.

Parameters:
f  The file descriptor to print to.
objid  The object id.
objidlen  The length of teh object id.
variable  The variable to print.

Definition at line 3329 of file mib.c.

References SNMP_FREE.

Referenced by print_variable().

struct tree* get_tree const oid *  objid,
size_t  objidlen,
struct tree *  subtree
 

Clone of get_symbol that doesn't take a buffer argument.

See also:
get_symbol

Definition at line 4391 of file mib.c.

struct tree* get_tree_head void   ) 
 

Retrieves the tree head.

Returns:
the tree head.

Definition at line 2051 of file mib.c.

int get_wild_node const char *  name,
oid *  objid,
size_t *  objidlen
 
See also:
comments on find_best_tree_node for usage after first time.

Definition at line 5441 of file mib.c.

Referenced by snmp_parse_oid().

void init_mib void   ) 
 

Initialises the mib reader.

Reads in all settings from the environment.

Definition at line 2560 of file mib.c.

References netsnmp_fixup_mib_directory(), netsnmp_get_mib_directory(), netsnmp_getenv(), and SNMP_FREE.

Referenced by init_snmp().

void netsnmp_fixup_mib_directory void   ) 
 

swap in the new value and repeat

Definition at line 2513 of file mib.c.

References netsnmp_get_mib_directory(), netsnmp_getenv(), netsnmp_set_mib_directory(), and SNMP_FREE.

Referenced by init_mib().

char* netsnmp_get_mib_directory void   ) 
 

Check if the environment variable is set

Not set use hard coded path

Definition at line 2466 of file mib.c.

References netsnmp_getenv(), and netsnmp_set_mib_directory().

Referenced by init_mib(), and netsnmp_fixup_mib_directory().

int netsnmp_oid2chars char *  C,
int  L,
const oid *  O
 

Converts an OID to its character form.

in example 5 . 1 . 2 . 3 . 4 . 5 = 12345

Parameters:
C  The character buffer.
L  The length of the buffer.
O  The oid.
Returns:
0 on Sucess, 1 on failure.

length

Definition at line 6228 of file mib.c.

Referenced by netsnmp_oid2str().

int netsnmp_oid2str char *  S,
int  L,
oid *  O
 

Converts an OID to its string form.

in example 5 . 'h' . 'e' . 'l' . 'l' . 'o' = "hello\0" (null terminated)

Parameters:
S  The character string buffer.
L  The length of the string buffer.
O  The oid.
Returns:
0 on Sucess, 1 on failure.

Definition at line 6256 of file mib.c.

References netsnmp_oid2chars().

void netsnmp_set_mib_directory const char *  dir  ) 
 

New dir starts with '+', thus we add it.

If dir starts with '+' skip '+' it.

set_string calls strdup, so if we allocated memory, free it

Definition at line 2411 of file mib.c.

References SNMP_FREE.

Referenced by netsnmp_fixup_mib_directory(), and netsnmp_get_mib_directory().

int netsnmp_str2oid const char *  S,
oid *  O,
int  L
 

Converts a string to its OID form.

in example "hello" = 5 . 'h' . 'e' . 'l' . 'l' . 'o'

Parameters:
S  The string.
O  The oid.
L  The length of the oid.
Returns:
0 on Sucess, 1 on failure.

Definition at line 6193 of file mib.c.

void print_description oid *  objid,
size_t  objidlen,
int  width
 

Prints on oid description on stdout.

See also:
fprint_description

Definition at line 4420 of file mib.c.

References fprint_description().

void print_mib FILE *  fp  ) 
 

Prints the MIBs to the file fp.

Parameters:
fp  The file descriptor to print to.

Definition at line 2763 of file mib.c.

void print_objid const oid *  objid,
size_t  objidlen
 

Prints an oid to stdout.

Parameters:
objid  The oid to print
objidlen  The length of oidid.

Definition at line 3168 of file mib.c.

References fprint_objid().

void print_variable const oid *  objid,
size_t  objidlen,
const netsnmp_variable_list variable
 

Prints a variable to stdout.

Parameters:
objid  The object id.
objidlen  The length of teh object id.
variable  The variable to print.

Definition at line 3313 of file mib.c.

References fprint_variable().

int read_objid const char *  input,
oid *  output,
size_t *  out_len
 

Reads an object identifier from an input string into internal OID form.

When called, out_len must hold the maximum length of the output array.

Parameters:
input  the input string.
output  the oid wirte.
out_len  number of subid's in output.
Returns:
1 if successful.
If an error occurs, this function returns 0 and MAY set snmp_errno. snmp_errno is NOT set if SET_SNMP_ERROR evaluates to nothing. This can make multi-threaded use a tiny bit more robust.

Definition at line 2861 of file mib.c.

References SNMP_FREE.

Referenced by snmp_parse_oid().

void set_function struct tree *  subtree  ) 
 

Set's the printing function printomat in a subtree according it's type.

Parameters:
subtree  The subtree to set.

Definition at line 2784 of file mib.c.

void shutdown_mib void   ) 
 

Unloads all mibs.

Definition at line 2740 of file mib.c.

References SNMP_FREE.

Referenced by snmp_shutdown().

void snmp_in_toggle_options_usage const char *  lead,
FILE *  outf
 

Prints out a help usage for the in* toggle options.

Parameters:
lead  The lead to print for every line.
outf  The file descriptor to write to.

Definition at line 2323 of file mib.c.

oid* snmp_parse_oid const char *  argv,
oid *  root,
size_t *  rootlen
 

Given a string, parses an oid out of it (if possible).

It will try to parse it based on predetermined configuration if present or by every method possible otherwise. If a suffix has been registered using NETSNMP_DS_LIB_OIDSUFFIX, it will be appended to the input string before processing.

Parameters:
argv  The OID to string parse
root  An OID array where the results are stored.
rootlen  The max length of the array going in and the data length coming out.
Returns:
The root oid pointer if successful, or NULL otherwise.

Definition at line 5799 of file mib.c.

References get_wild_node(), and read_objid().

int sprint_realloc_asciistring u_char **  buf,
size_t *  buf_len,
size_t *  out_len,
int  allow_realloc,
const u_char *  cp,
size_t  len
 

Prints an ascii string into a buffer.

The characters pointed by *cp are encoded as an ascii string.

If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)

Parameters:
buf  address of the buffer to print to.
buf_len  address to an integer containing the size of buf.
out_len  incremented by the number of characters printed.
allow_realloc  if not zero reallocate the buffer to fit the needed size.
cp  the array of characters to encode.
len  the array length of cp.
Returns:
1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.)

Definition at line 367 of file mib.c.

References snmp_realloc().

Referenced by sprint_realloc_octet_string().

int sprint_realloc_badtype u_char **  buf,
size_t *  buf_len,
size_t *  out_len,
int  allow_realloc,
const netsnmp_variable_list var,
const struct enum_list *  enums,
const char *  hint,
const char *  units
 

Fallback routine for a bad type, prints "Variable has bad type" into a buffer.

If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)

Parameters:
buf  Address of the buffer to print to.
buf_len  Address to an integer containing the size of buf.
out_len  Incremented by the number of characters printed.
allow_realloc  if not zero reallocate the buffer to fit the needed size.
var  The variable to encode.
enums  The enumeration ff this variable is enumerated. may be NULL.
hint  Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL.
units  Contents of the UNITS clause of the MIB. may be NULL.
Returns:
1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.)

Definition at line 1936 of file mib.c.

Referenced by sprint_realloc_by_type().

int sprint_realloc_bitstring u_char **  buf,
size_t *  buf_len,
size_t *  out_len,
int  allow_realloc,
const netsnmp_variable_list var,
const struct enum_list *  enums,
const char *  hint,
const char *  units
 

Prints a bit string into a buffer.

If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)

Parameters:
buf  Address of the buffer to print to.
buf_len  Address to an integer containing the size of buf.
out_len  Incremented by the number of characters printed.
allow_realloc  if not zero reallocate the buffer to fit the needed size.
var  The variable to encode.
enums  The enumeration ff this variable is enumerated. may be NULL.
hint  Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL.
units  Contents of the UNITS clause of the MIB. may be NULL.
Returns:
1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.)

Definition at line 1797 of file mib.c.

References sprint_realloc_by_type(), variable_list::type, variable_list::val, and variable_list::val_len.

Referenced by sprint_realloc_by_type().

int sprint_realloc_by_type u_char **  buf,
size_t *  buf_len,
size_t *  out_len,
int  allow_realloc,
const netsnmp_variable_list var,
const struct enum_list *  enums,
const char *  hint,
const char *  units
 

Universal print routine, prints a variable into a buffer according to the variable type.

If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)

Parameters:
buf  Address of the buffer to print to.
buf_len  Address to an integer containing the size of buf.
out_len  Incremented by the number of characters printed.
allow_realloc  if not zero reallocate the buffer to fit the needed size.
var  The variable to encode.
enums  The enumeration ff this variable is enumerated. may be NULL.
hint  Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL.
units  Contents of the UNITS clause of the MIB. may be NULL.
Returns:
1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.)

Definition at line 1971 of file mib.c.

References sprint_realloc_badtype(), sprint_realloc_bitstring(), sprint_realloc_counter(), sprint_realloc_counter64(), sprint_realloc_gauge(), sprint_realloc_integer(), sprint_realloc_ipaddress(),