#include <stdarg.h>
#include <stdlib.h>
#include <limits.h>
+
+#define NONAMELESSUNION
+
#include "windef.h"
#include "winbase.h"
#include "snmp.h"
};
static AsnInteger32 mapStructEntryToValue(struct structToAsnValue *map,
- UINT mapLen, void *record, UINT id, BYTE bPduType, SnmpVarBind *pVarBind)
+ UINT mapLen, void *record, UINT id, SnmpVarBind *pVarBind)
{
/* OIDs are 1-based */
if (!id)
{
*pErrorStatus = mapStructEntryToValue(mib2IfEntryMap,
DEFINE_SIZEOF(mib2IfEntryMap),
- &ifTable->table[tableIndex - 1], item, bPduType,
+ &ifTable->table[tableIndex - 1], item,
pVarBind);
if (bPduType == SNMP_PDU_GETNEXT)
ret = setOidWithItemAndInteger(&pVarBind->name,
if (!*pErrorStatus)
{
*pErrorStatus = mapStructEntryToValue(mib2IpMap,
- DEFINE_SIZEOF(mib2IpMap), &ipStats, item, bPduType, pVarBind);
+ DEFINE_SIZEOF(mib2IpMap), &ipStats, item, pVarBind);
if (!*pErrorStatus && bPduType == SNMP_PDU_GETNEXT)
ret = setOidWithItem(&pVarBind->name, &myOid, item);
}
assert(item);
*pErrorStatus = mapStructEntryToValue(mib2IpAddrMap,
DEFINE_SIZEOF(mib2IpAddrMap),
- &ipAddrTable->table[tableIndex - 1], item, bPduType, pVarBind);
+ &ipAddrTable->table[tableIndex - 1], item, pVarBind);
if (!*pErrorStatus && bPduType == SNMP_PDU_GETNEXT)
ret = setOidWithItemAndIpAddr(&pVarBind->name, &myOid, item,
ipAddrTable->table[tableIndex - 1].dwAddr);
assert(item);
*pErrorStatus = mapStructEntryToValue(mib2IpRouteMap,
DEFINE_SIZEOF(mib2IpRouteMap),
- &ipRouteTable->table[tableIndex - 1], item, bPduType, pVarBind);
+ &ipRouteTable->table[tableIndex - 1], item, pVarBind);
if (!*pErrorStatus && bPduType == SNMP_PDU_GETNEXT)
ret = setOidWithItemAndIpAddr(&pVarBind->name, &myOid, item,
ipRouteTable->table[tableIndex - 1].dwForwardDest);
{
*pErrorStatus = mapStructEntryToValue(mib2IpNetMap,
DEFINE_SIZEOF(mib2IpNetMap),
- &ipNetTable[tableIndex - 1], item, bPduType, pVarBind);
+ &ipNetTable[tableIndex - 1], item, pVarBind);
if (!*pErrorStatus && bPduType == SNMP_PDU_GETNEXT)
ret = setOidWithItemAndInteger(&pVarBind->name, &myOid,
item, tableIndex);
if (!*pErrorStatus)
{
*pErrorStatus = mapStructEntryToValue(mib2IcmpMap,
- DEFINE_SIZEOF(mib2IcmpMap), &icmpStats, item, bPduType,
+ DEFINE_SIZEOF(mib2IcmpMap), &icmpStats, item,
pVarBind);
if (!*pErrorStatus && bPduType == SNMP_PDU_GETNEXT)
ret = setOidWithItem(&pVarBind->name, &myOid, item);
if (!*pErrorStatus)
{
*pErrorStatus = mapStructEntryToValue(mib2TcpMap,
- DEFINE_SIZEOF(mib2TcpMap), &tcpStats, item, bPduType, pVarBind);
+ DEFINE_SIZEOF(mib2TcpMap), &tcpStats, item, pVarBind);
if (!*pErrorStatus && bPduType == SNMP_PDU_GETNEXT)
ret = setOidWithItem(&pVarBind->name, &myOid, item);
}
if (!*pErrorStatus)
{
*pErrorStatus = mapStructEntryToValue(mib2UdpMap,
- DEFINE_SIZEOF(mib2UdpMap), &udpStats, item, bPduType, pVarBind);
+ DEFINE_SIZEOF(mib2UdpMap), &udpStats, item, pVarBind);
if (!*pErrorStatus && bPduType == SNMP_PDU_GETNEXT)
ret = setOidWithItem(&pVarBind->name, &myOid, item);
}
assert(item);
*pErrorStatus = mapStructEntryToValue(mib2UdpEntryMap,
DEFINE_SIZEOF(mib2UdpEntryMap),
- &udpTable->table[tableIndex - 1], item, bPduType, pVarBind);
+ &udpTable->table[tableIndex - 1], item, pVarBind);
if (!*pErrorStatus && bPduType == SNMP_PDU_GETNEXT)
{
AsnObjectIdentifier oid;
static struct mibImplementation *findSupportedQuery(UINT *ids, UINT idLength,
UINT *matchingIndex)
{
- int indexHigh = DEFINE_SIZEOF(supportedIDs) - 1, indexLow = 0, i;
- struct mibImplementation *impl = NULL;
+ int indexHigh = DEFINE_SIZEOF(supportedIDs) - 1, indexLow = 0;
AsnObjectIdentifier oid1 = { idLength, ids};
if (!idLength)
return NULL;
- for (i = (indexLow + indexHigh) / 2; !impl && indexLow <= indexHigh;
- i = (indexLow + indexHigh) / 2)
- {
- INT cmp;
- cmp = SnmpUtilOidNCmp(&oid1, &supportedIDs[i].name, idLength);
- if (!cmp)
+ while (indexLow <= indexHigh)
+ {
+ INT cmp, i = (indexLow + indexHigh) / 2;
+ if (!(cmp = SnmpUtilOidNCmp(&oid1, &supportedIDs[i].name, idLength)))
{
- impl = &supportedIDs[i];
*matchingIndex = i;
+ return &supportedIDs[i];
}
- else if (cmp > 0)
+ if (cmp > 0)
indexLow = i + 1;
else
indexHigh = i - 1;
}
- return impl;
+ return NULL;
}
/*****************************************************************************