Implement snmpe_send to allow to allow the new application layer to send
authormartijn <martijn@openbsd.org>
Wed, 19 Jan 2022 10:36:35 +0000 (10:36 +0000)
committermartijn <martijn@openbsd.org>
Wed, 19 Jan 2022 10:36:35 +0000 (10:36 +0000)
messages through the current transport mapping code.

OK jmatthew@
tested as part of larger diff by sthen@ and Joel Carnat

usr.sbin/snmpd/snmpe.c
usr.sbin/snmpd/snmpe.h

index e6686db..36b2055 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: snmpe.c,v 1.80 2022/01/19 10:28:13 martijn Exp $      */
+/*     $OpenBSD: snmpe.c,v 1.81 2022/01/19 10:36:35 martijn Exp $      */
 
 /*
  * Copyright (c) 2007, 2008, 2012 Reyk Floeter <reyk@openbsd.org>
@@ -820,6 +820,20 @@ snmpe_dispatchmsg(struct snmp_message *msg)
        snmpe_response(msg);
 }
 
+void
+snmpe_send(struct snmp_message *msg, enum snmp_pdutype type, int32_t requestid,
+    int32_t error, uint32_t index, struct ber_element *varbindlist)
+{
+       msg->sm_request = requestid;
+       msg->sm_pdutype = type;
+       msg->sm_error = error;
+       msg->sm_errorindex = index;
+       msg->sm_varbindresp = varbindlist;
+
+       msg->sm_pdutype = SNMP_C_RESPONSE;
+       snmpe_response(msg);
+}
+
 void
 snmpe_response(struct snmp_message *msg)
 {
index b0bd1a0..265a7a1 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: snmpe.h,v 1.1 2022/01/19 10:22:48 martijn Exp $       */
+/*     $OpenBSD: snmpe.h,v 1.2 2022/01/19 10:36:35 martijn Exp $       */
 
 /*
  * Copyright (c) 2021 Martijn van Duren <martijn@openbsd.org>
@@ -20,5 +20,7 @@
 
 struct snmp_message;
 
+void            snmpe_send(struct snmp_message *, enum snmp_pdutype, int32_t,
+                   int32_t, uint32_t, struct ber_element *);
 const char     *snmpe_pdutype2string(enum snmp_pdutype);
 void            snmp_msgfree(struct snmp_message *);