Anyone feeling like trimming a little fat?

On Fri, 2020-05-08 at 11:41 +0200, Martijn van Duren wrote:
> Diff below removes fields from struct oid used by snmpd but not useful
> for snmp(1). Minus 503LoC and -200kb on installed binary.
> No functional change intended.
> 
> OK?
> 
> martijn@
> 
> Index: mib.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/snmp/mib.c,v
> retrieving revision 1.1
> diff -u -p -r1.1 mib.c
> --- mib.c     9 Aug 2019 06:17:59 -0000       1.1
> +++ mib.c     8 May 2020 09:40:59 -0000
> @@ -27,466 +27,9 @@
>  #include "smi.h"
>  
>  static struct oid mib_tree[] = MIB_TREE;
> -static struct oid base_mib[] = {
> -     { MIB(mib_2),                   OID_MIB },
> -     { MIB(sysDescr),                OID_RD },
> -     { MIB(sysOID),                  OID_RD },
> -     { MIB(sysUpTime),               OID_RD },
> -     { MIB(sysContact),              OID_RW },
> -     { MIB(sysName),                 OID_RW },
> -     { MIB(sysLocation),             OID_RW },
> -     { MIB(sysServices),             OID_RS },
> -     { MIB(sysORLastChange),         OID_RD },
> -     { MIB(sysORIndex),              OID_TRD },
> -     { MIB(sysORID),                 OID_TRD },
> -     { MIB(sysORDescr),              OID_TRD },
> -     { MIB(sysORUpTime),             OID_TRD },
> -     { MIB(snmp),                    OID_MIB },
> -     { MIB(snmpInPkts),              OID_RD },
> -     { MIB(snmpOutPkts),             OID_RD },
> -     { MIB(snmpInBadVersions),       OID_RD },
> -     { MIB(snmpInBadCommunityNames), OID_RD },
> -     { MIB(snmpInBadCommunityUses),  OID_RD },
> -     { MIB(snmpInASNParseErrs),      OID_RD },
> -     { MIB(snmpInTooBigs),           OID_RD },
> -     { MIB(snmpInNoSuchNames),       OID_RD },
> -     { MIB(snmpInBadValues),         OID_RD },
> -     { MIB(snmpInReadOnlys),         OID_RD },
> -     { MIB(snmpInGenErrs),           OID_RD },
> -     { MIB(snmpInTotalReqVars),      OID_RD },
> -     { MIB(snmpInTotalSetVars),      OID_RD },
> -     { MIB(snmpInGetRequests),       OID_RD },
> -     { MIB(snmpInGetNexts),          OID_RD },
> -     { MIB(snmpInSetRequests),       OID_RD },
> -     { MIB(snmpInGetResponses),      OID_RD },
> -     { MIB(snmpInTraps),             OID_RD },
> -     { MIB(snmpOutTooBigs),          OID_RD },
> -     { MIB(snmpOutNoSuchNames),      OID_RD },
> -     { MIB(snmpOutBadValues),        OID_RD },
> -     { MIB(snmpOutGenErrs),          OID_RD },
> -     { MIB(snmpOutGetRequests),      OID_RD },
> -     { MIB(snmpOutGetNexts),         OID_RD },
> -     { MIB(snmpOutSetRequests),      OID_RD },
> -     { MIB(snmpOutGetResponses),     OID_RD },
> -     { MIB(snmpOutTraps),            OID_RD },
> -     { MIB(snmpEnableAuthenTraps),   OID_RW },
> -     { MIB(snmpSilentDrops),         OID_RD },
> -     { MIB(snmpProxyDrops),          OID_RD },
> -     { MIBEND }
> -};
> -
> -static struct oid usm_mib[] = {
> -     { MIB(snmpEngine),                      OID_MIB },
> -     { MIB(snmpEngineID),                    OID_RD },
> -     { MIB(snmpEngineBoots),                 OID_RD },
> -     { MIB(snmpEngineTime),                  OID_RD },
> -     { MIB(snmpEngineMaxMsgSize),            OID_RD },
> -     { MIB(usmStats),                        OID_MIB },
> -     { MIB(usmStatsUnsupportedSecLevels),    OID_RD },
> -     { MIB(usmStatsNotInTimeWindow),         OID_RD },
> -     { MIB(usmStatsUnknownUserNames),        OID_RD },
> -     { MIB(usmStatsUnknownEngineId),         OID_RD },
> -     { MIB(usmStatsWrongDigests),            OID_RD },
> -     { MIB(usmStatsDecryptionErrors),        OID_RD },
> -     { MIBEND }
> -};
> -
> -static struct oid hr_mib[] = {
> -     { MIB(host),                            OID_MIB },
> -     { MIB(hrSystemUptime),                  OID_RD },
> -     { MIB(hrSystemDate),                    OID_RD },
> -     { MIB(hrSystemProcesses),               OID_RD },
> -     { MIB(hrSystemMaxProcesses),            OID_RD },
> -     { MIB(hrMemorySize),                    OID_RD },
> -     { MIB(hrStorageIndex),                  OID_TRD },
> -     { MIB(hrStorageType),                   OID_TRD },
> -     { MIB(hrStorageDescr),                  OID_TRD },
> -     { MIB(hrStorageAllocationUnits),        OID_TRD },
> -     { MIB(hrStorageSize),                   OID_TRD },
> -     { MIB(hrStorageUsed),                   OID_TRD },
> -     { MIB(hrStorageAllocationFailures),     OID_TRD },
> -     { MIB(hrDeviceIndex),                   OID_TRD },
> -     { MIB(hrDeviceType),                    OID_TRD },
> -     { MIB(hrDeviceDescr),                   OID_TRD },
> -     { MIB(hrDeviceID),                      OID_TRD },
> -     { MIB(hrDeviceStatus),                  OID_TRD },
> -     { MIB(hrDeviceErrors),                  OID_TRD },
> -     { MIB(hrProcessorFrwID),                OID_TRD },
> -     { MIB(hrProcessorLoad),                 OID_TRD },
> -     { MIB(hrSWRunIndex),                    OID_TRD },
> -     { MIB(hrSWRunName),                     OID_TRD },
> -     { MIB(hrSWRunID),                       OID_TRD },
> -     { MIB(hrSWRunPath),                     OID_TRD },
> -     { MIB(hrSWRunParameters),               OID_TRD },
> -     { MIB(hrSWRunType),                     OID_TRD },
> -     { MIB(hrSWRunStatus),                   OID_TRD },
> -     { MIBEND }
> -};
> -
> -static struct oid if_mib[] = {
> -     { MIB(ifMIB),                   OID_MIB },
> -     { MIB(ifName),                  OID_TRD },
> -     { MIB(ifInMulticastPkts),       OID_TRD },
> -     { MIB(ifInBroadcastPkts),       OID_TRD },
> -     { MIB(ifOutMulticastPkts),      OID_TRD },
> -     { MIB(ifOutBroadcastPkts),      OID_TRD },
> -     { MIB(ifHCInOctets),            OID_TRD },
> -     { MIB(ifHCInUcastPkts),         OID_TRD },
> -     { MIB(ifHCInMulticastPkts),     OID_TRD },
> -     { MIB(ifHCInBroadcastPkts),     OID_TRD },
> -     { MIB(ifHCOutOctets),           OID_TRD },
> -     { MIB(ifHCOutUcastPkts),        OID_TRD },
> -     { MIB(ifHCOutMulticastPkts),    OID_TRD },
> -     { MIB(ifHCOutBroadcastPkts),    OID_TRD },
> -     { MIB(ifLinkUpDownTrapEnable),  OID_TRD },
> -     { MIB(ifHighSpeed),             OID_TRD },
> -     { MIB(ifPromiscuousMode),       OID_TRD },
> -     { MIB(ifConnectorPresent),      OID_TRD },
> -     { MIB(ifAlias),                 OID_TRD },
> -     { MIB(ifCounterDiscontinuityTime), OID_TRD },
> -     { MIB(ifRcvAddressStatus),      OID_TRD },
> -     { MIB(ifRcvAddressType),        OID_TRD },
> -     { MIB(ifStackLastChange),       OID_RD },
> -     { MIB(ifNumber),                OID_RD },
> -     { MIB(ifIndex),                 OID_TRD },
> -     { MIB(ifDescr),                 OID_TRD },
> -     { MIB(ifType),                  OID_TRD },
> -     { MIB(ifMtu),                   OID_TRD },
> -     { MIB(ifSpeed),                 OID_TRD },
> -     { MIB(ifPhysAddress),           OID_TRD },
> -     { MIB(ifAdminStatus),           OID_TRD },
> -     { MIB(ifOperStatus),            OID_TRD },
> -     { MIB(ifLastChange),            OID_TRD },
> -     { MIB(ifInOctets),              OID_TRD },
> -     { MIB(ifInUcastPkts),           OID_TRD },
> -     { MIB(ifInNUcastPkts),          OID_TRD },
> -     { MIB(ifInDiscards),            OID_TRD },
> -     { MIB(ifInErrors),              OID_TRD },
> -     { MIB(ifInUnknownProtos),       OID_TRD },
> -     { MIB(ifOutOctets),             OID_TRD },
> -     { MIB(ifOutUcastPkts),          OID_TRD },
> -     { MIB(ifOutNUcastPkts),         OID_TRD },
> -     { MIB(ifOutDiscards),           OID_TRD },
> -     { MIB(ifOutErrors),             OID_TRD },
> -     { MIB(ifOutQLen),               OID_TRD },
> -     { MIB(ifSpecific),              OID_TRD },
> -     { MIBEND }
> -};
> -
> -static struct oid ip_mib[] = {
> -     { MIB(ipMIB),                   OID_MIB },
> -     { MIB(ipForwarding),            OID_RD },
> -     { MIB(ipDefaultTTL),            OID_RD },
> -     { MIB(ipInReceives),            OID_RD },
> -     { MIB(ipInHdrErrors),           OID_RD },
> -     { MIB(ipInAddrErrors),          OID_RD },
> -     { MIB(ipForwDatagrams),         OID_RD },
> -     { MIB(ipInUnknownProtos),       OID_RD },
> -     { MIB(ipInDelivers),            OID_RD },
> -     { MIB(ipOutRequests),           OID_RD },
> -     { MIB(ipOutDiscards),           OID_RD },
> -     { MIB(ipOutNoRoutes),           OID_RD },
> -     { MIB(ipReasmTimeout),          OID_RD },
> -     { MIB(ipReasmReqds),            OID_RD },
> -     { MIB(ipReasmOKs),              OID_RD },
> -     { MIB(ipReasmFails),            OID_RD },
> -     { MIB(ipFragOKs),               OID_RD },
> -     { MIB(ipFragFails),             OID_RD },
> -     { MIB(ipFragCreates),           OID_RD },
> -     { MIB(ipAdEntAddr),             OID_TRD },
> -     { MIB(ipAdEntIfIndex),          OID_TRD },
> -     { MIB(ipAdEntNetMask),          OID_TRD },
> -     { MIB(ipAdEntBcastAddr),        OID_TRD },
> -     { MIB(ipAdEntReasmMaxSize),     OID_TRD },
> -     { MIB(ipNetToMediaIfIndex),     OID_TRD },
> -     { MIB(ipNetToMediaPhysAddress), OID_TRD },
> -     { MIB(ipNetToMediaNetAddress),  OID_TRD },
> -     { MIB(ipNetToMediaType),        OID_TRD },
> -     { MIBEND }
> -};
> -
> -static struct oid ipf_mib[] = {
> -     { MIB(ipfMIB),                  OID_MIB },
> -     { MIB(ipfInetCidrRouteNumber),  OID_RD },
> -     { MIB(ipfRouteEntIfIndex),      OID_TRD },
> -     { MIB(ipfRouteEntType),         OID_TRD },
> -     { MIB(ipfRouteEntProto),        OID_TRD },
> -     { MIB(ipfRouteEntAge),          OID_TRD },
> -     { MIB(ipfRouteEntNextHopAS),    OID_TRD },
> -     { MIB(ipfRouteEntRouteMetric1), OID_TRD },
> -     { MIB(ipfRouteEntRouteMetric2), OID_TRD },
> -     { MIB(ipfRouteEntRouteMetric3), OID_TRD },
> -     { MIB(ipfRouteEntRouteMetric4), OID_TRD },
> -     { MIB(ipfRouteEntRouteMetric5), OID_TRD },
> -     { MIB(ipfRouteEntStatus),       OID_TRD },
> -     { MIBEND }
> -};
> -
> -static struct oid bridge_mib[] = {
> -     { MIB(dot1dBridge),             OID_MIB },
> -     { MIB(dot1dBaseBridgeAddress) },
> -     { MIB(dot1dBaseNumPorts),       OID_RD },
> -     { MIB(dot1dBaseType),           OID_RD },
> -     { MIB(dot1dBasePort),           OID_TRD },
> -     { MIB(dot1dBasePortIfIndex),    OID_TRD },
> -     { MIB(dot1dBasePortCircuit),    OID_TRD},
> -     { MIB(dot1dBasePortDelayExceededDiscards), OID_TRD },
> -     { MIB(dot1dBasePortMtuExceededDiscards), OID_TRD },
> -     { MIBEND }
> -};
> -
> -static struct oid diskio_mib[] = {
> -     { MIB(ucdDiskIOMIB),                    OID_MIB },
> -     { MIB(diskIOIndex),                     OID_TRD },
> -     { MIB(diskIODevice),                    OID_TRD },
> -     { MIB(diskIONRead),                     OID_TRD },
> -     { MIB(diskIONWritten),                  OID_TRD },
> -     { MIB(diskIOReads),                     OID_TRD },
> -     { MIB(diskIOWrites),                    OID_TRD },
> -     { MIB(diskIONReadX),                    OID_TRD },
> -     { MIB(diskIONWrittenX),                 OID_TRD },
> -     { MIBEND }
> -};
> -
> -static struct oid openbsd_mib[] = {
> -     { MIB(pfMIBObjects),            OID_MIB },
> -     { MIB(pfRunning),               OID_RD },
> -     { MIB(pfRuntime),               OID_RD },
> -     { MIB(pfDebug),                 OID_RD },
> -     { MIB(pfHostid),                OID_RD },
> -     { MIB(pfCntMatch),              OID_RD },
> -     { MIB(pfCntBadOffset),          OID_RD },
> -     { MIB(pfCntFragment),           OID_RD },
> -     { MIB(pfCntShort),              OID_RD },
> -     { MIB(pfCntNormalize),          OID_RD },
> -     { MIB(pfCntMemory),             OID_RD },
> -     { MIB(pfCntTimestamp),          OID_RD },
> -     { MIB(pfCntCongestion),         OID_RD },
> -     { MIB(pfCntIpOptions),          OID_RD },
> -     { MIB(pfCntProtoCksum),         OID_RD },
> -     { MIB(pfCntStateMismatch),      OID_RD },
> -     { MIB(pfCntStateInsert),        OID_RD },
> -     { MIB(pfCntStateLimit),         OID_RD },
> -     { MIB(pfCntSrcLimit),           OID_RD },
> -     { MIB(pfCntSynproxy),           OID_RD },
> -     { MIB(pfCntTranslate),          OID_RD },
> -     { MIB(pfCntNoRoute),            OID_RD },
> -     { MIB(pfStateCount),            OID_RD },
> -     { MIB(pfStateSearches),         OID_RD },
> -     { MIB(pfStateInserts),          OID_RD },
> -     { MIB(pfStateRemovals),         OID_RD },
> -     { MIB(pfLogIfName),             OID_RD },
> -     { MIB(pfLogIfIpBytesIn),        OID_RD },
> -     { MIB(pfLogIfIpBytesOut),       OID_RD },
> -     { MIB(pfLogIfIpPktsInPass),     OID_RD },
> -     { MIB(pfLogIfIpPktsInDrop),     OID_RD },
> -     { MIB(pfLogIfIpPktsOutPass),    OID_RD },
> -     { MIB(pfLogIfIpPktsOutDrop),    OID_RD },
> -     { MIB(pfLogIfIp6BytesIn),       OID_RD },
> -     { MIB(pfLogIfIp6BytesOut),      OID_RD },
> -     { MIB(pfLogIfIp6PktsInPass),    OID_RD },
> -     { MIB(pfLogIfIp6PktsInDrop),    OID_RD },
> -     { MIB(pfLogIfIp6PktsOutPass),   OID_RD },
> -     { MIB(pfLogIfIp6PktsOutDrop),   OID_RD },
> -     { MIB(pfSrcTrackCount),         OID_RD },
> -     { MIB(pfSrcTrackSearches),      OID_RD },
> -     { MIB(pfSrcTrackInserts),       OID_RD },
> -     { MIB(pfSrcTrackRemovals),      OID_RD },
> -     { MIB(pfLimitStates),           OID_RD },
> -     { MIB(pfLimitSourceNodes),      OID_RD },
> -     { MIB(pfLimitFragments),        OID_RD },
> -     { MIB(pfLimitMaxTables),        OID_RD },
> -     { MIB(pfLimitMaxTableEntries),  OID_RD },
> -     { MIB(pfTimeoutTcpFirst),       OID_RD },
> -     { MIB(pfTimeoutTcpOpening),     OID_RD },
> -     { MIB(pfTimeoutTcpEstablished), OID_RD },
> -     { MIB(pfTimeoutTcpClosing),     OID_RD },
> -     { MIB(pfTimeoutTcpFinWait),     OID_RD },
> -     { MIB(pfTimeoutTcpClosed),      OID_RD },
> -     { MIB(pfTimeoutUdpFirst),       OID_RD },
> -     { MIB(pfTimeoutUdpSingle),      OID_RD },
> -     { MIB(pfTimeoutUdpMultiple),    OID_RD },
> -     { MIB(pfTimeoutIcmpFirst),      OID_RD },
> -     { MIB(pfTimeoutIcmpError),      OID_RD },
> -     { MIB(pfTimeoutOtherFirst),     OID_RD },
> -     { MIB(pfTimeoutOtherSingle),    OID_RD },
> -     { MIB(pfTimeoutOtherMultiple),  OID_RD },
> -     { MIB(pfTimeoutFragment),       OID_RD },
> -     { MIB(pfTimeoutInterval),       OID_RD },
> -     { MIB(pfTimeoutAdaptiveStart),  OID_RD },
> -     { MIB(pfTimeoutAdaptiveEnd),    OID_RD },
> -     { MIB(pfTimeoutSrcTrack),       OID_RD },
> -     { MIB(pfIfNumber),              OID_RD },
> -     { MIB(pfIfIndex),               OID_TRD },
> -     { MIB(pfIfDescr),               OID_TRD },
> -     { MIB(pfIfType),                OID_TRD },
> -     { MIB(pfIfRefs),                OID_TRD },
> -     { MIB(pfIfRules),               OID_TRD },
> -     { MIB(pfIfIn4PassPkts),         OID_TRD },
> -     { MIB(pfIfIn4PassBytes),        OID_TRD },
> -     { MIB(pfIfIn4BlockPkts),        OID_TRD },
> -     { MIB(pfIfIn4BlockBytes),       OID_TRD },
> -     { MIB(pfIfOut4PassPkts),        OID_TRD },
> -     { MIB(pfIfOut4PassBytes),       OID_TRD },
> -     { MIB(pfIfOut4BlockPkts),       OID_TRD },
> -     { MIB(pfIfOut4BlockBytes),      OID_TRD },
> -     { MIB(pfIfIn6PassPkts),         OID_TRD },
> -     { MIB(pfIfIn6PassBytes),        OID_TRD },
> -     { MIB(pfIfIn6BlockPkts),        OID_TRD },
> -     { MIB(pfIfIn6BlockBytes),       OID_TRD },
> -     { MIB(pfIfOut6PassPkts),        OID_TRD },
> -     { MIB(pfIfOut6PassBytes),       OID_TRD },
> -     { MIB(pfIfOut6BlockPkts),       OID_TRD },
> -     { MIB(pfIfOut6BlockBytes),      OID_TRD },
> -     { MIB(pfTblNumber),             OID_RD },
> -     { MIB(pfTblIndex),              OID_TRD },
> -     { MIB(pfTblName),               OID_TRD },
> -     { MIB(pfTblAddresses),          OID_TRD },
> -     { MIB(pfTblAnchorRefs),         OID_TRD },
> -     { MIB(pfTblRuleRefs),           OID_TRD },
> -     { MIB(pfTblEvalsMatch),         OID_TRD },
> -     { MIB(pfTblEvalsNoMatch),       OID_TRD },
> -     { MIB(pfTblInPassPkts),         OID_TRD },
> -     { MIB(pfTblInPassBytes),        OID_TRD },
> -     { MIB(pfTblInBlockPkts),        OID_TRD },
> -     { MIB(pfTblInBlockBytes),       OID_TRD },
> -     { MIB(pfTblInXPassPkts),        OID_TRD },
> -     { MIB(pfTblInXPassBytes),       OID_TRD },
> -     { MIB(pfTblOutPassPkts),        OID_TRD },
> -     { MIB(pfTblOutPassBytes),       OID_TRD },
> -     { MIB(pfTblOutBlockPkts),       OID_TRD },
> -     { MIB(pfTblOutBlockBytes),      OID_TRD },
> -     { MIB(pfTblOutXPassPkts),       OID_TRD },
> -     { MIB(pfTblOutXPassBytes),      OID_TRD },
> -     { MIB(pfTblStatsCleared),       OID_TRD },
> -     { MIB(pfTblInMatchPkts),        OID_TRD },
> -     { MIB(pfTblInMatchBytes),       OID_TRD },
> -     { MIB(pfTblOutMatchPkts),       OID_TRD },
> -     { MIB(pfTblOutMatchBytes),      OID_TRD },
> -     { MIB(pfTblAddrTblIndex),       OID_TRD },
> -     { MIB(pfTblAddrNet),            OID_TRD },
> -     { MIB(pfTblAddrMask),           OID_TRD },
> -     { MIB(pfTblAddrCleared),        OID_TRD },
> -     { MIB(pfTblAddrInBlockPkts),    OID_TRD },
> -     { MIB(pfTblAddrInBlockBytes),   OID_TRD },
> -     { MIB(pfTblAddrInPassPkts),     OID_TRD },
> -     { MIB(pfTblAddrInPassBytes),    OID_TRD },
> -     { MIB(pfTblAddrOutBlockPkts),   OID_TRD },
> -     { MIB(pfTblAddrOutBlockBytes),  OID_TRD },
> -     { MIB(pfTblAddrOutPassPkts),    OID_TRD },
> -     { MIB(pfTblAddrOutPassBytes),   OID_TRD },
> -     { MIB(pfTblAddrInMatchPkts),    OID_TRD },
> -     { MIB(pfTblAddrInMatchBytes),   OID_TRD },
> -     { MIB(pfTblAddrOutMatchPkts),   OID_TRD },
> -     { MIB(pfTblAddrOutMatchBytes),  OID_TRD },
> -     { MIB(pfLabelNumber),           OID_RD },
> -     { MIB(pfLabelIndex),            OID_TRD },
> -     { MIB(pfLabelName),             OID_TRD },
> -     { MIB(pfLabelEvals),            OID_TRD },
> -     { MIB(pfLabelPkts),             OID_TRD },
> -     { MIB(pfLabelBytes),            OID_TRD },
> -     { MIB(pfLabelInPkts),           OID_TRD },
> -     { MIB(pfLabelInBytes),          OID_TRD },
> -     { MIB(pfLabelOutPkts),          OID_TRD },
> -     { MIB(pfLabelOutBytes),         OID_TRD },
> -     { MIB(pfLabelTotalStates),      OID_TRD },
> -     { MIB(pfsyncIpPktsRecv),        OID_RD },
> -     { MIB(pfsyncIp6PktsRecv),       OID_RD },
> -     { MIB(pfsyncPktDiscardsForBadInterface), OID_RD },
> -     { MIB(pfsyncPktDiscardsForBadTtl), OID_RD },
> -     { MIB(pfsyncPktShorterThanHeader), OID_RD },
> -     { MIB(pfsyncPktDiscardsForBadVersion), OID_RD },
> -     { MIB(pfsyncPktDiscardsForBadAction), OID_RD },
> -     { MIB(pfsyncPktDiscardsForBadLength), OID_RD },
> -     { MIB(pfsyncPktDiscardsForBadAuth), OID_RD },
> -     { MIB(pfsyncPktDiscardsForStaleState), OID_RD },
> -     { MIB(pfsyncPktDiscardsForBadValues), OID_RD },
> -     { MIB(pfsyncPktDiscardsForBadState), OID_RD },
> -     { MIB(pfsyncIpPktsSent),        OID_RD },
> -     { MIB(pfsyncIp6PktsSent),       OID_RD },
> -     { MIB(pfsyncNoMemory),          OID_RD },
> -     { MIB(pfsyncOutputErrors),      OID_RD },
> -     { MIB(sensorsMIBObjects),       OID_MIB },
> -     { MIB(sensorNumber),            OID_RD },
> -     { MIB(sensorIndex),             OID_TRD },
> -     { MIB(sensorDescr),             OID_TRD },
> -     { MIB(sensorType),              OID_TRD },
> -     { MIB(sensorDevice),            OID_TRD },
> -     { MIB(sensorValue),             OID_TRD },
> -     { MIB(sensorUnits),             OID_TRD },
> -     { MIB(sensorStatus),            OID_TRD },
> -     { MIB(carpMIBObjects),          OID_MIB },
> -     { MIB(carpAllow),               OID_RD },
> -     { MIB(carpPreempt),             OID_RD },
> -     { MIB(carpLog),                 OID_RD },
> -     { MIB(carpIpPktsRecv),          OID_RD },
> -     { MIB(carpIp6PktsRecv),         OID_RD },
> -     { MIB(carpPktDiscardsBadIface), OID_RD },
> -     { MIB(carpPktDiscardsBadTtl),   OID_RD },
> -     { MIB(carpPktShorterThanHdr),   OID_RD },
> -     { MIB(carpDiscardsBadCksum),    OID_RD },
> -     { MIB(carpDiscardsBadVersion),  OID_RD },
> -     { MIB(carpDiscardsTooShort),    OID_RD },
> -     { MIB(carpDiscardsBadAuth),     OID_RD },
> -     { MIB(carpDiscardsBadVhid),     OID_RD },
> -     { MIB(carpDiscardsBadAddrList), OID_RD },
> -     { MIB(carpIpPktsSent),          OID_RD },
> -     { MIB(carpIp6PktsSent),         OID_RD },
> -     { MIB(carpNoMemory),            OID_RD },
> -     { MIB(carpTransitionsToMaster), OID_RD },
> -     { MIB(carpIfNumber),            OID_RD },
> -     { MIB(carpIfIndex),             OID_TRD },
> -     { MIB(carpIfDescr),             OID_TRD },
> -     { MIB(carpIfVhid),              OID_TRD },
> -     { MIB(carpIfDev ),              OID_TRD },
> -     { MIB(carpIfAdvbase),           OID_TRD },
> -     { MIB(carpIfAdvskew),           OID_TRD },
> -     { MIB(carpIfState),             OID_TRD },
> -     { MIB(carpGroupName),           OID_TRD },
> -     { MIB(carpGroupDemote),         OID_TRD },
> -     { MIB(memMIBObjects),           OID_MIB },
> -     { MIB(memMIBVersion),           OID_RD },
> -     { MIB(memIfName),               OID_TRD },
> -     { MIB(memIfLiveLocks),          OID_TRD },
> -     { MIBEND }
> -};
>  
>  void
>  mib_init(void)
>  {
> -     /*
> -      * MIB declarations (to register the OID names)
> -      */
>       smi_mibtree(mib_tree);
> -
> -     /*
> -      * MIB definitions (the implementation)
> -      */
> -
> -     /* SNMPv2-MIB */
> -     smi_mibtree(base_mib);
> -
> -     /* SNMP-USER-BASED-SM-MIB */
> -     smi_mibtree(usm_mib);
> -
> -     /* HOST-RESOURCES-MIB */
> -     smi_mibtree(hr_mib);
> -
> -     /* IF-MIB */
> -     smi_mibtree(if_mib);
> -
> -     /* IP-MIB */
> -     smi_mibtree(ip_mib);
> -
> -     /* IP-FORWARD-MIB */
> -     smi_mibtree(ipf_mib);
> -
> -     /* BRIDGE-MIB */
> -     smi_mibtree(bridge_mib);
> -
> -     /* UCD-DISKIO-MIB */
> -     smi_mibtree(diskio_mib);
> -
> -     /* OPENBSD-MIB */
> -     smi_mibtree(openbsd_mib);
>  }
> Index: smi.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/snmp/smi.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 smi.c
> --- smi.c     17 Jan 2020 09:52:44 -0000      1.7
> +++ smi.c     8 May 2020 09:40:59 -0000
> @@ -537,7 +537,6 @@ smi_oid2string(struct ber_oid *o, char *
>       bzero(buf, len);
>       bzero(&key, sizeof(key));
>       bcopy(o, &key.o_id, sizeof(struct ber_oid));
> -     key.o_flags |= OID_KEY;         /* do not match wildcards */
>  
>       for (i = 0; i < o->bo_n; i++) {
>               key.o_oidlen = i + 1;
> @@ -573,12 +572,6 @@ smi_mibtree(struct oid *oids)
>                       continue;
>               }
>               decl = RB_FIND(oidtree, &smi_oidtree, oid);
> -             decl->o_flags = oid->o_flags;
> -             decl->o_get = oid->o_get;
> -             decl->o_set = oid->o_set;
> -             decl->o_table = oid->o_table;
> -             decl->o_val = oid->o_val;
> -             decl->o_data = oid->o_data;
>       }
>  }
>  
> @@ -593,28 +586,15 @@ smi_findkey(char *name)
>  }
>  
>  struct oid *
> -smi_foreach(struct oid *oid, u_int flags)
> +smi_foreach(struct oid *oid)
>  {
>       /*
>        * Traverse the tree of MIBs with the option to check
>        * for specific OID flags.
>        */
> -     if (oid == NULL) {
> -             oid = RB_MIN(oidtree, &smi_oidtree);
> -             if (oid == NULL)
> -                     return (NULL);
> -             if (flags == 0 || (oid->o_flags & flags))
> -                     return (oid);
> -     }
> -     for (;;) {
> -             oid = RB_NEXT(oidtree, &smi_oidtree, oid);
> -             if (oid == NULL)
> -                     break;
> -             if (flags == 0 || (oid->o_flags & flags))
> -                     return (oid);
> -     }
> -
> -     return (oid);
> +     if (oid == NULL)
> +             return RB_MIN(oidtree, &smi_oidtree);
> +     return RB_NEXT(oidtree, &smi_oidtree, oid);
>  }
>  
>  int
> @@ -626,17 +606,6 @@ smi_oid_cmp(struct oid *a, struct oid *b
>               if (a->o_oid[i] != b->o_oid[i])
>                       return (a->o_oid[i] - b->o_oid[i]);
>       }
> -
> -     /*
> -      * Return success if the matched object is a table
> -      * or a MIB registered by a subagent
> -      * (it will match any sub-elements)
> -      */
> -     if ((b->o_flags & OID_TABLE ||
> -         b->o_flags & OID_REGISTERED) &&
> -         (a->o_flags & OID_KEY) == 0 &&
> -         (a->o_oidlen > b->o_oidlen))
> -             return (0);
>  
>       return (a->o_oidlen - b->o_oidlen);
>  }
> Index: smi.h
> ===================================================================
> RCS file: /cvs/src/usr.bin/snmp/smi.h,v
> retrieving revision 1.1
> diff -u -p -r1.1 smi.h
> --- smi.h     9 Aug 2019 06:17:59 -0000       1.1
> +++ smi.h     8 May 2020 09:40:59 -0000
> @@ -61,23 +61,8 @@ struct oid {
>  
>       char                    *o_name;
>  
> -     u_int                    o_flags;
> -
> -     int                      (*o_get)(struct oid *, struct ber_oid *,
> -                                 struct ber_element **);
> -     int                      (*o_set)(struct oid *, struct ber_oid *,
> -                                 struct ber_element **);
> -     struct ber_oid          *(*o_table)(struct oid *, struct ber_oid *,
> -                                 struct ber_oid *);
> -
> -     long long                o_val;
> -     void                    *o_data;
> -
> -     struct ctl_conn         *o_session;
> -
>       RB_ENTRY(oid)            o_element;
>       RB_ENTRY(oid)            o_keyword;
> -     TAILQ_ENTRY(oid)         o_list;
>  };
>  
>  int smi_init(void);
> @@ -85,7 +70,7 @@ unsigned int smi_application(struct ber_
>  int smi_string2oid(const char *, struct ber_oid *);
>  char *smi_oid2string(struct ber_oid *, char *, size_t, enum smi_oid_lookup);
>  void smi_mibtree(struct oid *);
> -struct oid *smi_foreach(struct oid *, u_int);
> +struct oid *smi_foreach(struct oid *);
>  void smi_debug_elements(struct ber_element *);
>  char *smi_print_element(struct ber_element *, int, enum smi_output_string,
>      enum smi_oid_lookup);
> Index: snmpc.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/snmp/snmpc.c,v
> retrieving revision 1.22
> diff -u -p -r1.22 snmpc.c
> --- snmpc.c   22 Mar 2020 08:59:22 -0000      1.22
> +++ snmpc.c   8 May 2020 09:40:59 -0000
> @@ -1034,7 +1034,7 @@ snmpc_mibtree(int argc, char *argv[])
>       struct oid *oid;
>       char buf[BUFSIZ];
>  
> -     for (oid = NULL; (oid = smi_foreach(oid, 0)) != NULL;) {
> +     for (oid = NULL; (oid = smi_foreach(oid)) != NULL;) {
>               smi_oid2string(&oid->o_id, buf, sizeof(buf), oid_lookup);
>               printf("%s\n", buf);
>       }
> 

Reply via email to