summaryrefslogtreecommitdiffstats
path: root/contrib/bsnmp/lib/snmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bsnmp/lib/snmp.c')
-rw-r--r--contrib/bsnmp/lib/snmp.c25
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;
OpenPOWER on IntegriCloud