Thanks Meem.

 >That is, could the same thing be
 >accomplished in a simpler manner by merely regarding the global visibility
 >of the ipnetif_t in the AVL trees as itself being a reference?

Possibly. I'll take a look.

 >I'd also still like to understand why we need to have sdev_ipnetops.c (or,
 >moreover, anything outside of ipnet.c) interacting with ipnetif_t objects.
 >It just makes things more complex.  Is there a reason why my earlier
 >suggestion of introducing and ipnet_getdev() function (which would just
 >return a dev_t) won't work for sdev_ipnetops.c?

I just haven't made that change yet. I was trying to get a first pass at 
the other locking problem done.

 >In the current code, I also don't see how the ipnet_populate_if()
 >reference counting stuff works -- i.e., if ipnet_if_getby_index() returns
 >non-NULL, then we hold a reference to an ipnetif_t, otherwise we call
 >ipnet_create_if() and we don't hold a reference (though this would be
 >addressed if ipnet_create_if() acquired a reference as suggested above).

Ok.

 >can handle the stack usage (which I think should be OK since it's only 416
 >bytes more than your current stack utilization), it be much cleaner to
 >revise the definition for ipnet_create_ifaddr() and declare addresses as
 >sockaddr_storage -- e.g.:

Ok.

Thanks again.

Phil

Reply via email to