Lines Matching full:resp
169 snmp_pdu_create_response(const struct snmp_pdu *pdu, struct snmp_pdu *resp) in snmp_pdu_create_response() argument
171 memset(resp, 0, sizeof(*resp)); in snmp_pdu_create_response()
172 strcpy(resp->community, pdu->community); in snmp_pdu_create_response()
173 resp->version = pdu->version; in snmp_pdu_create_response()
175 resp->type = SNMP_PDU_REPORT; /* RFC 3414.4 */ in snmp_pdu_create_response()
177 resp->type = SNMP_PDU_RESPONSE; in snmp_pdu_create_response()
178 resp->request_id = pdu->request_id; in snmp_pdu_create_response()
179 resp->version = pdu->version; in snmp_pdu_create_response()
181 if (resp->version != SNMP_V3) in snmp_pdu_create_response()
184 memcpy(&resp->engine, &pdu->engine, sizeof(pdu->engine)); in snmp_pdu_create_response()
185 memcpy(&resp->user, &pdu->user, sizeof(pdu->user)); in snmp_pdu_create_response()
186 snmp_pdu_init_secparams(resp); in snmp_pdu_create_response()
187 resp->identifier = pdu->identifier; in snmp_pdu_create_response()
188 resp->security_model = pdu->security_model; in snmp_pdu_create_response()
189 resp->context_engine_len = pdu->context_engine_len; in snmp_pdu_create_response()
190 memcpy(resp->context_engine, pdu->context_engine, in snmp_pdu_create_response()
191 resp->context_engine_len); in snmp_pdu_create_response()
192 strlcpy(resp->context_name, pdu->context_name, in snmp_pdu_create_response()
193 sizeof(resp->context_name)); in snmp_pdu_create_response()
203 struct snmp_pdu *resp, void *data) in snmp_get() argument
215 snmp_pdu_create_response(pdu, resp); in snmp_get()
217 if (snmp_pdu_encode_header(resp_b, resp) != SNMP_CODE_OK) in snmp_get()
222 resp->bindings[i].var = pdu->bindings[i].var; in snmp_get()
229 snmp_pdu_free(resp); in snmp_get()
234 resp->bindings[i].syntax = except; in snmp_get()
238 resp->bindings[i].syntax = tp->syntax; in snmp_get()
239 ret = (*tp->op)(&context.ctx, &resp->bindings[i], in snmp_get()
248 snmp_pdu_free(resp); in snmp_get()
253 resp->bindings[i].syntax = SNMP_SYNTAX_NOSUCHINSTANCE; in snmp_get()
258 snmp_pdu_free(resp); in snmp_get()
262 resp->nbindings++; in snmp_get()
264 err = snmp_binding_encode(resp_b, &resp->bindings[i]); in snmp_get()
269 snmp_pdu_free(resp); in snmp_get()
277 snmp_pdu_free(resp); in snmp_get()
282 if (snmp_fix_encoding(resp_b, resp) != SNMP_CODE_OK) { in snmp_get()
405 struct snmp_pdu *resp, void *data) in snmp_getnext() argument
415 snmp_pdu_create_response(pdu, resp); in snmp_getnext()
417 if (snmp_pdu_encode_header(resp_b, resp)) in snmp_getnext()
422 &resp->bindings[i], pdu); in snmp_getnext()
426 snmp_pdu_free(resp); in snmp_getnext()
430 resp->nbindings++; in snmp_getnext()
432 err = snmp_binding_encode(resp_b, &resp->bindings[i]); in snmp_getnext()
437 snmp_pdu_free(resp); in snmp_getnext()
445 snmp_pdu_free(resp); in snmp_getnext()
450 if (snmp_fix_encoding(resp_b, resp) != SNMP_CODE_OK) { in snmp_getnext()
460 struct snmp_pdu *resp, void *data) in snmp_getbulk() argument
473 snmp_pdu_create_response(pdu, resp); in snmp_getbulk()
475 if (snmp_pdu_encode_header(resp_b, resp) != SNMP_CODE_OK) in snmp_getbulk()
485 &resp->bindings[resp->nbindings], pdu); in snmp_getbulk()
489 snmp_pdu_free(resp); in snmp_getbulk()
494 &resp->bindings[resp->nbindings++]); in snmp_getbulk()
504 snmp_pdu_free(resp); in snmp_getbulk()
517 if (resp->nbindings == SNMP_MAX_BINDINGS) in snmp_getbulk()
523 &resp->bindings[resp->nbindings], pdu); in snmp_getbulk()
526 &resp->bindings[resp->nbindings - in snmp_getbulk()
528 &resp->bindings[resp->nbindings], pdu); in snmp_getbulk()
532 snmp_pdu_free(resp); in snmp_getbulk()
535 if (resp->bindings[resp->nbindings].syntax != in snmp_getbulk()
540 &resp->bindings[resp->nbindings++]); in snmp_getbulk()
550 snmp_pdu_free(resp); in snmp_getbulk()
559 if (snmp_fix_encoding(resp_b, resp) != SNMP_CODE_OK) { in snmp_getbulk()
676 struct snmp_pdu *resp, void *data) in snmp_set() argument
690 snmp_pdu_create_response(pdu, resp); in snmp_set()
692 if (snmp_pdu_encode_header(resp_b, resp)) in snmp_set()
721 snmp_pdu_free(resp); in snmp_set()
740 snmp_pdu_free(resp); in snmp_set()
754 snmp_pdu_free(resp); in snmp_set()
760 if (snmp_value_copy(&resp->bindings[i], b)) { in snmp_set()
763 snmp_pdu_free(resp); in snmp_set()
766 asnerr = snmp_binding_encode(resp_b, &resp->bindings[i]); in snmp_set()
770 snmp_pdu_free(resp); in snmp_set()
775 snmp_pdu_free(resp); in snmp_set()
778 resp->nbindings++; in snmp_set()
851 snmp_pdu_free(resp); in snmp_set()
876 snmp_pdu_free(resp); in snmp_set()
892 b = &resp->bindings[i]; in snmp_set()
907 if (snmp_fix_encoding(resp_b, resp) != SNMP_CODE_OK) { in snmp_set()
909 snmp_pdu_free(resp); in snmp_set()
981 struct snmp_pdu resp; in snmp_make_errresp() local
985 snmp_pdu_create_response(pdu, &resp); in snmp_make_errresp()
987 if ((code = snmp_pdu_decode_header(pdu_b, &resp)) != SNMP_CODE_OK) in snmp_make_errresp()
991 if (resp.user.priv_proto != SNMP_PRIV_NOPRIV && in snmp_make_errresp()
992 (asn_get_header(pdu_b, &type, &resp.scoped_len) != ASN_ERR_OK in snmp_make_errresp()
1004 if (asn_get_octetstring(pdu_b, (u_char *)resp.context_engine, in snmp_make_errresp()
1009 resp.context_engine_len = len; in snmp_make_errresp()
1011 if (asn_get_octetstring(pdu_b, (u_char *)resp.context_name, in snmp_make_errresp()
1016 resp.context_name[len] = '\0'; in snmp_make_errresp()
1031 err = snmp_parse_pdus_hdr(pdu_b, &resp, &len); in snmp_make_errresp()
1039 resp.error_status = pdu->error_status; in snmp_make_errresp()
1040 resp.error_index = pdu->error_index; in snmp_make_errresp()
1041 resp.type = SNMP_PDU_RESPONSE; in snmp_make_errresp()
1043 code = snmp_pdu_encode_header(resp_b, &resp); in snmp_make_errresp()
1054 code = snmp_fix_encoding(resp_b, &resp); in snmp_make_errresp()