On 21/10/08 03:22 PM, Tony Nguyen wrote: > Dareen, > > Thanks for your comments. See my responses inline. > > Darren Reed wrote: >> Just to get things moving along... >> >> repval.c lines 829-829 >> Type: E >> Priority: 1 >> Comment: what doe this function do and why? > This is a convenient function for deleting a repository property. > Changes in inetd and SMF restarter and startd code implement a > mechanism to communicate that a service is placed in maintenance by > request of another service. This allows us to place a service with > misconfigured firewall policy into maintenance and communicate to > users via svcs -x that network/ipfilter has placed the service into > maintenance. User can then look at the network/ipfilter log file for > details reasons.
The point here is that what is being done is not obvious from either the function name or quickly reading the code. A comment would really help. >> ipfd.c line 63 >> Type: T >> Priority: 3 >> Comment: calling the variable "pid" is a bit misleading, it is the >> parent pid >> > Isn't it the child's pid returned to the parent? What do you suggest? No. you're right, my brain was flipped. >> ipfd.c line 273 >> Type: T >> Priority: 1 >> Comment: If we get here from 158 then aren't we using v before it >> has been initialised? > v is initialized to NULL. Hmm? On which line? 148 static boolean_t 149 is_correct_event(const char *fmri, const scf_propertygroup_t *pg, 150 const boolean_t isrpc) 151 { 152 char *pg_name, *value, *state = NULL; 153 scf_value_t *v; 154 boolean_t ret = B_FALSE, in_maintenance = B_FALSE; 155 156 if ((pg_name = umem_alloc(max_scf_value_size, UMEM_DEFAULT)) 157 == NULL) 158 goto out; ... 268 out: 269 if (state) 270 free(state); 271 272 umem_free(pg_name, max_scf_value_size); 273 scf_value_destroy(v); 274 275 return (ret); 276 } >> ipfd.c line 402-543 >> Type: T >> Priority: 2 >> Comment: This appears to be a busy-wait loop and of concern is that >> there doesn't appear to be anything to moderate the looping. Consider >> adding in a delay/pause/sleep for a short period of time, if only so >> that >> syslog doesn't get spam'd with messages. >> > Not quite. _scf_notify_wait results in a blocked thread, see > rc_notify_info_wait in rc_node.c, until an interested event happened. In the absence of a man page for _scf_notify_wait(), it might be worthwhile adding a commit here that mentions the behaviour. Darren