On Fri, 4 Jan 2008 10:37:16 +0530 deepak wrote: DB>void clSnmpOidCpy(ClSNMPRequestInfoT * pReqInfo, ClUint32T * pOid)
Here is one major problem.. An OID array is an array of longs, not int32. On a 64 bit system this means 8 bytes each, not 32, You should use the 'oid' type defined in the net-snmp headers. DB> /* COPY COLUMN OID FROM reqVar->name TO requestInfo.oid */ DB> /* oidLen is tableoid length + depth till attribute oid. So, in this case depth till column will be 2. DB> 1-entry oid of table DB> 2-actual column. */ DB> requestInfo.oidLen = OID_LENGTH (smCfgTblSim1TableOid) + 2; DB> clSnmpOidCpy(&requestInfo, (ClUint32T *) reqVar->name); I think this code is also troublesome, depending on what you are doing with requestInfo. Here, you are copying reqVar->name, which is the OID from the incoming request. This OID may have nothing to do with your table! Now, I haven't played with an iterator helper in a while, so it may be that the iterator helper, being its helpful self, has updated the requestVar with the correct OID. But in general, handler shouldn't examine this value. DB> index = table_info->indexes; DB> [...] DB> memcpy(& (requestInfo.index.smCfgTblSim1TableInfo.smCfgTblSim1IntIdx1), DB> (void *)index->val.integer, index->val_len); The same hold here. The table_info->indexes are the indexes of the incoming request, not the indexes for the current row. If you are using this value to figure out which object to get, you might be getting the wrong data. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Net-snmp-coders mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/net-snmp-coders
