This was from a sequence of early attempts to work towards a new
application layer. I can give more reasoning behind it, but the bottom
line is that it's currently dead weight.

OK to remove this code again?

martijn@

Index: snmpd.h
===================================================================
RCS file: /cvs/src/usr.sbin/snmpd/snmpd.h,v
retrieving revision 1.102
diff -u -p -r1.102 snmpd.h
--- snmpd.h     19 Jan 2022 10:25:04 -0000      1.102
+++ snmpd.h     20 Jan 2022 13:38:28 -0000
@@ -403,8 +403,6 @@ struct snmp_message {
        u_int8_t                 sm_data[READ_BUF_SIZE];
        size_t                   sm_datalen;
 
-       uint32_t                 sm_transactionid;
-
        u_int                    sm_version;
 
        /* V1, V2c */
@@ -441,11 +439,7 @@ struct snmp_message {
 
        struct ber_element      *sm_varbind;
        struct ber_element      *sm_varbindresp;
-
-       RB_ENTRY(snmp_message)   sm_entry;
 };
-RB_HEAD(snmp_messages, snmp_message);
-extern struct snmp_messages snmp_messages;
 
 /* Defined in SNMPv2-MIB.txt (RFC 3418) */
 struct snmp_stats {
@@ -644,8 +638,6 @@ void                 snmpe(struct privsep *, struct pr
 void            snmpe_shutdown(void);
 void            snmpe_dispatchmsg(struct snmp_message *);
 void            snmpe_response(struct snmp_message *);
-int             snmp_messagecmp(struct snmp_message *, struct snmp_message *);
-RB_PROTOTYPE(snmp_messages, snmp_message, sm_entry, snmp_messagecmp)
 
 /* trap.c */
 void            trap_init(void);
Index: snmpe.c
===================================================================
RCS file: /cvs/src/usr.sbin/snmpd/snmpe.c,v
retrieving revision 1.82
diff -u -p -r1.82 snmpe.c
--- snmpe.c     19 Jan 2022 11:00:56 -0000      1.82
+++ snmpe.c     20 Jan 2022 13:38:28 -0000
@@ -58,8 +58,6 @@ int    snmpe_encode(struct snmp_message *)
 struct imsgev  *iev_parent;
 static const struct timeval    snmpe_tcp_timeout = { 10, 0 }; /* 10s */
 
-struct snmp_messages snmp_messages = RB_INITIALIZER(&snmp_messages);
-
 static struct privsep_proc procs[] = {
        { "parent",     PROC_PARENT }
 };
@@ -246,11 +244,6 @@ snmpe_parse(struct snmp_message *msg)
 
        msg->sm_errstr = "invalid message";
 
-       do {
-               msg->sm_transactionid = arc4random();
-       } while (msg->sm_transactionid == 0 ||
-           RB_INSERT(snmp_messages, &snmp_messages, msg) != NULL);
-
        if (ober_scanf_elements(root, "{ie", &ver, &a) != 0)
                goto parsefail;
 
@@ -910,8 +903,6 @@ snmpe_response(struct snmp_message *msg)
 void
 snmp_msgfree(struct snmp_message *msg)
 {
-       if (msg->sm_transactionid != 0)
-               RB_REMOVE(snmp_messages, &snmp_messages, msg);
        event_del(&msg->sm_sockev);
        ober_free(&msg->sm_ber);
        if (msg->sm_req != NULL)
@@ -974,12 +965,3 @@ snmpe_encode(struct snmp_message *msg)
 #endif
        return 0;
 }
-
-int
-snmp_messagecmp(struct snmp_message *m1, struct snmp_message *m2)
-{
-       return (m1->sm_transactionid < m2->sm_transactionid ? -1 :
-           m1->sm_transactionid > m2->sm_transactionid);
-}
-
-RB_GENERATE(snmp_messages, snmp_message, sm_entry, snmp_messagecmp)

Reply via email to