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