X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/24598ce6b7cfe72ada92aed48691fdf092d94fc7..a890c4489fa1bcee9f455ee28d772bb1ccf590bf:/print-snmp.c diff --git a/print-snmp.c b/print-snmp.c index ba326018..f5501582 100644 --- a/print-snmp.c +++ b/print-snmp.c @@ -66,7 +66,7 @@ #include #include -#ifdef HAVE_SMI_H +#ifdef USE_LIBSMI #include #endif @@ -323,15 +323,15 @@ static const struct obj_abrev { * temporary internal representation while decoding an ASN.1 data stream. */ struct be { - u_int32_t asnlen; + uint32_t asnlen; union { caddr_t raw; int32_t integer; - u_int32_t uns; + uint32_t uns; const u_char *str; struct { - u_int32_t high; - u_int32_t low; + uint32_t high; + uint32_t low; } uns64; } data; u_short id; @@ -472,7 +472,7 @@ asn1_parse(netdissect_options *ndo, elem->asnlen = *p; p++; len--; hdr++; if (elem->asnlen & ASN_BIT8) { - u_int32_t noct = elem->asnlen % ASN_BIT8; + uint32_t noct = elem->asnlen % ASN_BIT8; elem->asnlen = 0; if (len < noct) { ND_PRINT((ndo, "[asnlen? %d<%d]", len, noct)); @@ -551,7 +551,7 @@ asn1_parse(netdissect_options *ndo, case COUNTER: case GAUGE: case TIMETICKS: { - register u_int32_t data; + register uint32_t data; ND_TCHECK2(*p, elem->asnlen); elem->type = BE_UNS; data = 0; @@ -562,7 +562,7 @@ asn1_parse(netdissect_options *ndo, } case COUNTER64: { - register u_int32_t high, low; + register uint32_t high, low; ND_TCHECK2(*p, elem->asnlen); elem->type = BE_UNS64; high = 0, low = 0; @@ -662,8 +662,8 @@ asn1_print(netdissect_options *ndo, struct be *elem) { u_char *p = (u_char *)elem->data.raw; - u_int32_t asnlen = elem->asnlen; - u_int32_t i; + uint32_t asnlen = elem->asnlen; + uint32_t i; switch (elem->type) { @@ -867,7 +867,7 @@ asn1_decode(u_char *p, u_int length) } #endif -#ifdef LIBSMI +#ifdef USE_LIBSMI struct smi2be { SmiBasetype basetype; @@ -896,8 +896,9 @@ smi_decode_oid(netdissect_options *ndo, unsigned int oidsize, unsigned int *oidlen) { u_char *p = (u_char *)elem->data.raw; - u_int32_t asnlen = elem->asnlen; + uint32_t asnlen = elem->asnlen; int o = 0, first = -1, i = asnlen; + unsigned int firstval; for (*oidlen = 0; ndo->ndo_sflag && i-- > 0; p++) { ND_TCHECK(*p); @@ -911,12 +912,12 @@ smi_decode_oid(netdissect_options *ndo, */ if (first < 0) { first = 0; + firstval = o / OIDMUX; + if (firstval > 2) firstval = 2; + o -= firstval * OIDMUX; if (*oidlen < oidsize) { - oid[*oidlen] = o / OIDMUX; - if (oid[*oidlen] > 2) oid[*oidlen] = 2; + oid[(*oidlen)++] = firstval; } - o -= oid[*oidlen] * OIDMUX; - if (*oidlen < oidsize) (*oidlen)++; } if (*oidlen < oidsize) { oid[(*oidlen)++] = o; @@ -1199,7 +1200,7 @@ varbind_print(netdissect_options *ndo, { struct be elem; int count = 0, ind; -#ifdef LIBSMI +#ifdef USE_LIBSMI SmiNode *smiNode = NULL; #endif int status; @@ -1246,7 +1247,7 @@ varbind_print(netdissect_options *ndo, asn1_print(ndo, &elem); return; } -#ifdef LIBSMI +#ifdef USE_LIBSMI smiNode = smi_print_variable(ndo, &elem, &status); #else status = asn1_print(ndo, &elem); @@ -1272,7 +1273,7 @@ varbind_print(netdissect_options *ndo, } } else { if (elem.type != BE_NULL) { -#ifdef LIBSMI +#ifdef USE_LIBSMI status = smi_print_value(ndo, smiNode, pduid, &elem); #else status = asn1_print(ndo, &elem);