Quoth Tony Nguyen on Wed, Oct 29, 2008 at 04:13:33PM -0700:
> The updated and incremental webrevs are at:
>
> http://cr.opensolaris.org/~tonyn/firewall29Oct2008/
>
> http://cr.opensolaris.org/~tonyn/firewall-inc/
cmd/cmd-inet/usr.lib/inetd/inetd.c
fmri_to_instance(): Most (by number) of the paths through this
function don't set *scf_instp. Won't that cause
inst_reset_aux_fmri() to call scf_instance_handle() with stack
garbage at 343? For paths where scf_handle_create() returned
success, won't that also cause a handle to be leaked?
319: cstyle says that if one arm of an if statement has braces, they
all should.
409: Does this have to happen in inetd? Can it be done in
restarter_set_states()? Otherwise, doesn't every restarter have to
be changed to accommodate this, which is something you were trying
to avoid?
424: Can this also be done in restarter_set_states()?
470: Is this change an easter egg?
cmd/ipf/svc/ipfd.c
47: Please add text here or elsewhere explaining that the means by
which you're observing events is not stable.
85: SBIN_SH is no longer used.
102: I think you should change this to "Could not open /dev/null",
and include strerror(errno).
106: Is this really a fatal error?
112: Shouldn't you print a message explaining that fork() failed?
131: Could you add some text to this explaining that service-specific
ip filter configuration may not be updated properly?
187,192,199: Shouldn't you give the FMRI of the service which you
can't process an event for?
187,192: Since this program is single-threaded, did you consider doing
this once at the beginning of the program so you wouldn't have to
deal with these errors?
238: It appears that you don't use in_maintenance in this case. Did
you consider moving the isrpc check up before smf_get_state()?
329: Would proceeding if ipfilter is not online be harmful?
347: Shouldn't you include the FMRI of the service you can't update?
355: If the exec() failed, shouldn't you print an error or something?
361: Why is this if statement necessary?
371: I don't understand what you mean by "Repository and libscf are
treated...".
384: Why is it ok to return false if these functions fail? Did you
consider hoisting them out of this function?
401,405,408: Why is it ok to return false if these functions fail?
430-5: Did you consider allocating these outside of this function?
That would reduce the probably that we would encounter an error in
repository_event_process(), which would reduce the probability that
we have to emit the grossly imprecise error at 653.
440: This remark about "inst" seems out of place here.
442: Why do you update the pg? Couldn't that cause you to miss
events, if it's being modified quickly enough?
555,586: If the repository connection is broken, then your
notification requests will be cleared, so repository_event_wait()
will have to re-invoke _scf_notify_add_pgtype().
614: Shouldn't you inform the user that you couldn't allocate memory?
617: Shouldn't you inform the user that that you're exiting because
scf_pg_create() failed, and perhaps why it failed?
623: SCF_ERROR_NOT_BOUND should be impossible since scf_pg_create()
succeeded.
649: Please add a comment explaining why it's appropriate to rebind
and loop without notifying the user of the error.
662: Why don't you have to do anything if a service was deleted?
679: scf_handle_create() can fail, so you should check the return
value. You can file a bug to do this later, though.
cmd/svc/servinfo/servinfo.c
*: This is a new binary, right? Shouldn't it have been mentioned in
the ARC case?
27: Please add a comment explaining what this program does.
lib/librestart/common/librestart.c
_restarter_commit_states(): Don't these changes modify the behavior of
restarter_set_states() in an incompatible fashion? That interface
has been contracted out to Sun Cluster. Have you contacted them?
Shouldn't this be documented in your ARC case?
David