Re: related tables design

"Xuan Pan" <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
I appreciate your help as always :-)

>>      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!

I know I am not supposed to do that. I actually tried to have a pointer
that points to the current DHCP node in the scope where both getFirst...
and getNext.. can access. Your way of changing the data structure is much
better.

> 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.
> (Hopefully that will come out OK in a fixed width font!)

> 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.
I am working on this solution. I still have a problem that snmp crashes
when I try to snmpget the data from the iprange table. I thought it was
something wrong with the memory allocation with my linked lists.

Then some debug work...

Finally I am stuck in front of an error, Internal error in type switching.
It occurs:

snmp_set_var_value(pIndex, (u_char *)& lpDhcpEntry->index, sizeof(int));
pIndex = pIndex->next_variable;
// Before this!!!!!
snmp_set_var_value(pIndex, (u_char *)& lpIpRangeEntry->index, sizeof(int));

I doubt the error is caused by not registering two indexes correctly by
using netsnmp_table_helper_add_indexes(pTableInfo, ASN_INTEGER,
ASN_INTEGER, 0);

I can't find a tutorial or any documentation about this API. I use a '0'
for the last argument because I read an example comment from the table.c
saying this function can take a variable index parameter list. I wonder
what the last argument '0' stands for. My guess was the number of the
parameters, so I used 2 which is even worse (my getFirstIpRangeContext
even didn't get called).

> Trust me - I'm not a doctor :-)
lol. If my guess is wrong, what could cause the error? I have tried to
generate some debug information in the line "//Before this!!!!!" What I
know is pIndex is not NULL and trying pIndex->type also gives me the same
error.

Pan


-------------------------------------------------------------------------
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.