diff options
Diffstat (limited to 'contrib/bsnmp/lib/snmp.c')
-rw-r--r-- | contrib/bsnmp/lib/snmp.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/contrib/bsnmp/lib/snmp.c b/contrib/bsnmp/lib/snmp.c index 322ac9f..744510c 100644 --- a/contrib/bsnmp/lib/snmp.c +++ b/contrib/bsnmp/lib/snmp.c @@ -640,7 +640,7 @@ snmp_pdu_decode_secmode(struct asn_buf *b, struct snmp_pdu *pdu) (pdu->flags & SNMP_MSG_AUTH_FLAG) == 0) return (SNMP_CODE_BADSECLEVEL); - if ((code = snmp_pdu_calc_digest(b, pdu, digest)) != + if ((code = snmp_pdu_calc_digest(pdu, digest)) != SNMP_CODE_OK) return (SNMP_CODE_FAILED); @@ -659,7 +659,7 @@ snmp_pdu_decode_secmode(struct asn_buf *b, struct snmp_pdu *pdu) (pdu->flags & SNMP_MSG_PRIV_FLAG) == 0) return (SNMP_CODE_BADSECLEVEL); - if ((code = snmp_pdu_decrypt(b, pdu)) != SNMP_CODE_OK) + if ((code = snmp_pdu_decrypt(pdu)) != SNMP_CODE_OK) return (SNMP_CODE_FAILED); return (code); @@ -764,6 +764,7 @@ snmp_pdu_encode_header(struct asn_buf *b, struct snmp_pdu *pdu) if (pdu->type != SNMP_PDU_RESPONSE && pdu->type != SNMP_PDU_TRAP && + pdu->type != SNMP_PDU_TRAP2 && pdu->type != SNMP_PDU_REPORT) pdu->flags |= SNMP_MSG_REPORT_FLAG; @@ -869,7 +870,7 @@ snmp_fix_encoding(struct asn_buf *b, struct snmp_pdu *pdu) if (pdu->security_model != SNMP_SECMODEL_USM) return (SNMP_CODE_FAILED); - if (snmp_pdu_encrypt(b, pdu) != SNMP_CODE_OK) + if (snmp_pdu_encrypt(pdu) != SNMP_CODE_OK) return (SNMP_CODE_FAILED); if (pdu->user.priv_proto != SNMP_PRIV_NOPRIV && @@ -884,7 +885,7 @@ snmp_fix_encoding(struct asn_buf *b, struct snmp_pdu *pdu) pdu->digest_ptr -= moved; if (pdu->version == SNMP_V3) { - if ((code = snmp_pdu_calc_digest(b, pdu, pdu->msg_digest)) != + if ((code = snmp_pdu_calc_digest(pdu, pdu->msg_digest)) != SNMP_CODE_OK) return (SNMP_CODE_FAILED); @@ -1176,23 +1177,19 @@ snmp_value_copy(struct snmp_value *to, const struct snmp_value *from) } void -snmp_pdu_init_secparams(struct snmp_pdu *pdu, struct snmp_engine *eng, - struct snmp_user *user) +snmp_pdu_init_secparams(struct snmp_pdu *pdu) { int32_t rval; - memcpy(&pdu->engine, eng, sizeof(pdu->engine)); - memcpy(&pdu->user, user, sizeof(pdu->user)); - - if (user->auth_proto != SNMP_AUTH_NOAUTH) + if (pdu->user.auth_proto != SNMP_AUTH_NOAUTH) pdu->flags |= SNMP_MSG_AUTH_FLAG; - switch (user->priv_proto) { + switch (pdu->user.priv_proto) { case SNMP_PRIV_DES: - memcpy(pdu->msg_salt, &eng->engine_boots, - sizeof(eng->engine_boots)); + memcpy(pdu->msg_salt, &pdu->engine.engine_boots, + sizeof(pdu->engine.engine_boots)); rval = random(); - memcpy(pdu->msg_salt + sizeof(eng->engine_boots), &rval, + memcpy(pdu->msg_salt + sizeof(pdu->engine.engine_boots), &rval, sizeof(int32_t)); pdu->flags |= SNMP_MSG_PRIV_FLAG; break; |