On 23/01/2008, Xuan Pan <[EMAIL PROTECTED]> wrote: > I think I need a pointer that > can memorize the current node of the DHCP list so that each time > getNext..function can get the next DHCP node.
Correct. > That's also the reason I was > confused how can I pass both lpDhcpEntry and lpIpRangeEntry from > getfirstIpRangeContext to the getnextIpRangeContext via a single > *loopContext. With the data structures as originally laid out, you can't. > So I used the *dataContext to take the lpDhcpEntry pointer > and *loopContext to take the other one. But how is the iterator to know that's what you are doing?! <sigh> You can't simply unilaterally decide to change the internal operation of a library routine. If you're given an API, then it's up to you to work with that. You can't just change an API to something you like better! But you have identified the fundamental problem here - how can the getNextIpRangeContext() routine move from one DHCP pool to the next, given only the ipRange data structure? The answer is to introduce a new "parent" link into the ipRange data structure. Currently, when you add a new IP range to a given DHCP pool, you have to locate the appropriate dhcpEntry structure, and add the new ipRange structure to the 'iprange' list. What I'm proposing is that at the same time, you set up a link from the new ipRange structure back to this DHCP entry. Something like the following: +----+ |DHCP| <----+---------+ +----+ | | | ^ | | v | | | ===== ===== ===== |ip1| --> |ip2| --> |ip3| ===== ===== ===== (Hopefully that will come out OK in a fixed width font!) > >> lpIpRangeEntry = (LPIPRANGEENTRY)*loopContext; > > lpDhcpEntry = IpIpRangeEntry->dhcp; // <=== new "parent" link That's the purpose of this new 'dhcp' field. The ipRange entry is what is passed from one call to the next. The 'dhcp' link gives you a handle to the relevant DCHP entry (both for the index value, and for moving on to the next pool). Try it - it should work OK. Trust me - I'm not a doctor :-) Dave ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Net-snmp-users mailing list [email protected] Please see the following page to unsubscribe or change other options: https://lists.sourceforge.net/lists/listinfo/net-snmp-users
