jan damborsky wrote:
> Hi Evan,
>
> my apologies - I accidentally hit 'Send' button,
> I have couple of additional comments :-)
>
> Thank you,
> Jan
>
>
> ai_trans.c
> ----------
>
> 96-108 might be simplified as:
>
> ...
> if (handle->trans == NULL)
> return (AI_TRANS_ERR);
>
> /*
> * Setup the transaction to modify the property
> * group.
> */
> if (scf_transaction_start(handle->trans, handle->pg) != 0) {
> scf_transaction_destroy(handle->trans);
> handle->trans = NULL;
> return (AI_TRANS_ERR);
> }
> ...
OK fixed.
>
>
> 132 - nit: according to man page, scf_transaction_commit()
> returns -1 on failure:
>
> 132 if (scf_transaction_commit(handle->trans) < 0)
> ->
> 132 if (scf_transaction_commit(handle->trans) == -1)
>
changed.
>
> 206 - 209 - 'value' and 'entry' are deallocated only if some kind
> of failure happens. Where/when are those objects to be deallocated
> if everything succeeds here ?
>
I'm not sure I follow here. We don't return from this function without running
past this code so the calls to scf_value_destroy() and scf_entry_destroy() will
always get called unless 'value' and 'entry' are NULL.
>
> ai_utils.c
> ----------
> 52 - since ssize_t is not a pointer, I might recommend to
> return 0 instead of NULL in case of failure.
>
> 61-62 - is this check valid ? Looking at the scf_limit man page,
> it is not specified that 0 is invalid value.
Yes this is a valid check. If scf_limit fails it -1 which is waht we're
checking
for. However the comment is incorrect and should state that if scf_limit fails
we return MAXPATHLEN.
* Return:
* ssize_t - Success
* MAXPATHLEN - on failure of scf_limit
>
> 66 - Why is MAXPATHLEN returned in case of failure ?
> According to 52, Shouldn't be 0 returned in that case ?
comment fixed...
>
> 79-80 - comment is not correct
>
fixed
> 84, 114, 154, 190, 252, 327, 395, 440, 557 -
> it might be more appropriate if function returns
> ai_errno_t instead of int
fixed
>
> 171 - It seems that return code doesn't reflect the
> failure, since it was checked on 168 that property
> group exists
you're right the return code is incorrect. I added "AI_PG_DELETE_ERR,
/* Failed to delete PG */" in the header file and this now returns that
error.
>
> 268 - what happens, if scf_limit() fails in ai_get_scf_limit() ?
>
vallen get MAXPATHLEN in it.
> 271, 464 - since scf_limit() doesn't include space for terminating
> null byte, it perhaps should be:
>
> 271,466:
> valuestr = malloc(vallen);
> ->
> valuestr = malloc(vallen + 1);
changed.
>
>
> 342 goto out;
> ->
> 342 return (ret);
changed
>
>
>
> 351 ret = AI_NO_MEM;
> 352 goto out;
> ->
> 351 return (AI_NO_MEM);
changed.
>
>
> 409,414:
> goto out;
> ->
> return (ret);
changed.
>
>
> 417 if ((ret = ai_end_transaction(handle)) != AI_SUCCESS) {
> ->
> 417 return (ai_end_transaction(handle));
I added another function that needs to be called here in case the call to
end_transaction fails. This fucntion (ai_abort_tranaction) will clean things up
if there is a transaction failure. For more on this see my response to Sundar's
comments.
>
>
> 464, 465, 499, 566, 595
> - how is it handled, if scf_limit() fails in ai_get_scf_limit() ?
I don't understand what you mean here. In each instance we'll have MAXPATHLEN
as
the value in vallen and we'll use that for getting the value.
>
>
> 642 - nit:
> if (handle != NULL) {
> ...
> ->
> if (handle == NULL)
> return;
> ...
done.
>
>
> 634 - 635 - comment is not correct
>
fixed
>
> 643, 646, 656: nit
> - please define and use 'unbind' as boolean_t
Done
Thanks for the comments!!!
-evan
>
>
>
>
>
> On 03/30/09 12:10, jan damborsky wrote:
>> Hi Evan,
>>
>> please see below for libaiscf comments.
>>
>> Thank you,
>> Jan
>>
>>
>> libaiscf/Makefile
>> -----------------
>> general comment - I can see that mix of ${} and $()
>> is used for variables - I might recommend to pick
>> one of them - perhaps $(), since it seems to be used
>> more and also in other Makefiles.
>>
>> 42 - might this line be removed ?
>>
>> 27,69,72 - since SUBDIRS is empty, I think this
>> code could be removed and 59 simplified:
>>
>> 59 all: $(HDRS) static dynamic .WAIT $(SUBDIRS)
>> ->
>> 59 all: $(HDRS) static dynamic
>>
>> ai_create.c
>> -----------
>>
>> since there is only ai_delete_install_service() function
>> defined there, it might be better to use ai_delete.c
>> name of the file instead of ai_create.c
>>
>> 55 - according to comment at 51, it might be better if function
>> returns ai_errno_t instead of int.
>>
>> 74 - ai_get_instance() might be used instead
>>
>>
>> ai_trans.c
>> ----------
>>
>> 60, 126, 156 - it might be better to return ai_errno_t instead of int
>>
>> On 03/27/09 16:17, Evan Layton wrote:
>>> Thanks Jan!
>>>
>>> We'd like to get this done by close of business on Tuesday if
>>> possible so we have some time to make the changes from the comments
>>> we receive.
>>>
>>> -evan
>>>
>>> jan damborsky wrote:
>>>> Hi Evan,
>>>>
>>>> I could take a look at libaiscf library.
>>>> When you would like to have it done ?
>>>>
>>>> Jan
>>>>
>>>>
>>>> On 03/26/09 22:41, Evan Layton wrote:
>>>>> My apologies for the delay. I have fixed the problems with the
>>>>> mis-merge, sanity tested the changes and updated the webrev. I've
>>>>> listed out the files and split things up between the library and
>>>>> installadm. Just pick a subset of files and let me know what you're
>>>>> looking at som we make sure everyting gets covered.
>>>>>
>>>>> And thanks again to Sue for catching the mis-merge!!!
>>>>>
>>>>> Thanks!
>>>>> -evan
>>>>>
>>>>> installadm files:
>>>>> usr/src/cmd/installadm/Makefile
>>>>> usr/src/cmd/installadm/installadm-common.sh
>>>>> usr/src/cmd/installadm/installadm.c
>>>>> usr/src/cmd/installadm/installadm.h
>>>>> usr/src/cmd/installadm/installadm_util.c
>>>>> usr/src/cmd/installadm/server.xml
>>>>> usr/src/cmd/installadm/setup-service.sh
>>>>> usr/src/cmd/installadm/svc-install-server
>>>>> usr/src/pkgdefs/SUNWinstall-libs/prototype_com
>>>>>
>>>>> libaiscf Library files:
>>>>> usr/src/lib/Makefile
>>>>> usr/src/lib/libaiscf/Makefile
>>>>> usr/src/lib/libaiscf/ai_create.c
>>>>> usr/src/lib/libaiscf/ai_trans.c
>>>>> usr/src/lib/libaiscf/ai_utils.c
>>>>> usr/src/lib/libaiscf/libaiscf.h
>>>>>
>>>>>
>>>>> And if anybody is REALLY board here's the test files...
>>>>>
>>>>> optional files:
>>>>> usr/src/cmd/installadm/test/installadm_test.c
>>>>> usr/src/cmd/installadm/test/manual_tests
>>>>>
>>>>>
>>>>> Evan Layton wrote:
>>>>>> Sue pointed out that the webrev shows that I have a mis-merge so
>>>>>> if you're looking at the changes please stop. I'll get the
>>>>>> mis-merge fixed and send out a new webrev as soon as possible.
>>>>>>
>>>>>> Thanks,
>>>>>> -evan
>>>>>>
>>>>>>
>>>>>> Evan Layton wrote:
>>>>>>>
>>>>>>> We need to get the fix for 7218 code reviewed. There are around
>>>>>>> 2000 lines of changes and new code so we'll need volunteers that
>>>>>>> can take sections of the code to look at. I'm sending this out
>>>>>>> now so the link is out there but I'll want to get things divided
>>>>>>> up tomorrow morning and get folks looking at this tomorrow.
>>>>>>>
>>>>>>> The bug is 7218
>>>>>>> http://defect.opensolaris.org/bz/show_bug.cgi?id=7218
>>>>>>>
>>>>>>> Webrev:
>>>>>>> http://cr.opensolaris.org/~evanl/7218/
>>>>>>>
>>>>>>> Thanks!
>>>>>>> -evan
>>>>>>> _______________________________________________
>>>>>>> caiman-discuss mailing list
>>>>>>> caiman-discuss at opensolaris.org
>>>>>>> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss
>>>>>>
>>>>>> _______________________________________________
>>>>>> caiman-discuss mailing list
>>>>>> caiman-discuss at opensolaris.org
>>>>>> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss
>>>>>
>>>>> _______________________________________________
>>>>> caiman-discuss mailing list
>>>>> caiman-discuss at opensolaris.org
>>>>> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss
>>>>
>>>
>>
>> _______________________________________________
>> caiman-discuss mailing list
>> caiman-discuss at opensolaris.org
>> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss
>