Hi John,

Thanks for fixing the additional fallback case.


On 02/18/11 10:09, John Fischer wrote:
Ethan,

Thanks for the review. I wasn't ignoring your careful review just trying to
produce a better answer.  i truly appreciate your time and effort.

See below,

John

On 02/15/11 06:10 PM, Ethan Quach wrote:
John,

544-550 - does this logic account for the fact that if exclude_network == false, and networks == 0.0.0.0/0, (these are the default values) then we really want to include all of the systems networks? This block comment above at 528-539 does not indicate that.

It does account for the exclude_network == false and networks == 0.0.0.0/0. The main difference here was that the code needed to handle the case where these were uninitialized. I will be handling
that case differently now, see the answer below.

544 - for the case where networks == 0.0.0.0/0, is self.networks None here or will we enter this if clause?

I am handling it differently. In __init__() I set the networks and exclude_networks to their defaults (0.0.0.0/0, false respectively). Then in the case that the tool is registering I check to see if these have truly been initialized and if not then I do the original function calls from __init__().

I'm still not quite following here. Let's say we're currently processing some interface address, 10.0.0.1, and the 'self.exclude' and 'self.networks' are set to their default values. At 543, wouldn't 'in_net' be set to False? And if so, we'd not enter the if at 545, and we wouldn't set 'include_it' to True. Which means we just continue at 549. Doesn't that mean we're skipping interface 10.0.0.1 ?


806-812 - For browse, why do we need to ask the SMF service for the number of install services that are configured on the local system? Browse, is supposed to be an outward looking query, so the number of services we have configured on the running host seems irrelevant.

Right, this is more of an educated guess only.

Some history....

As you will recall dns-sd loops indefinitely that is because it is attempting to get all the services that are registered. However, that has the undesirable side effect of our various tools needing to kill the application after some set time (typically it was 5 seconds).

Yeah, I recall this, but that was a command-line interface. I was under the impression that with us now calling into a library to interact with mdns, there'd be more finer grained interfaces for us to get exactly what we need without having to query the open wild to verify local services.


aimdns was designed to loop a reasonable number of times. Originally that was 5 times with a timeout of 1 second for the select call within the process loop. What I found was that sometimes that was insufficient. So I came up with an educated guess of the number of local services * the number of interfaces should be sufficient for all the registered services to get processed.

So it seems to me that perhaps this browse function isn't a generic "browse" function at all (which could be my disconnect here, because I'm assuming it's supposed to be).

Its internals (per this loop count) seem to be catered toward the use on the AI server side, as some value we'd generate by default to try to ensure the result would at least yield all of the install services from the local machine. Would you agree?


-ethan


_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss

Reply via email to