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
