j0j0 at riod.ca
Mon Sep 5 00:12:11 GMT 2005
Andrew Bartlett wrote:
>On Sat, 2005-09-03 at 15:43 -0600, Brad Henry wrote:
>>Here is are two patches for libnet_join.c and libnet_join.h against the
>>SOC/SAMBA_4_0 branch (rev 9988) that fix the remaining libnet_join.c
>>problems. The biggest issue I was having was realizing that I had to use
>>mem_ctx rather than tmp_ctx for the libnet_RpcConnect() call. Without
>>that, even though I was successfully keeping the samr_pipe and
>>user_handle available across calls, the samr_pipe wasn't open.
>It is worth watching the typical pattern in this area. Currently, the
>preferred way to do this kind of thing is to allocate everything on the
>tmp_ctx, then steal it to the final returned context when done. If
>filling in a structure, they should be stolen to that structure (and a
>requirement put on that the structure itself must be allocated with
>talloc(), and not on the stack). Where we don't get that far, we
>talloc_steal to the passed in parent context, as the 'last thing' before
>success. This ensures partial failures are not kept around too long.
>Use talloc_report_full() to see what is on each context, at various
>parts of the function. Now, I'm a bad boy and don't do that very often,
>but that's what the tool is for. It may also be used in gdb:
>while stepping though the function is supported.
>>The only thing that libnet_join.c doesn't do at this moment is the
>>DsAddEntry() to create the CN=NTDS Settings container. I'm pretty
>>confident that it won't be too hard to add, using the code that used to
>>be in dssync.c.
>>I've made some other changes locally towards integrating it into the
>>RPC-NETLOGON torture test to make sure that the code gets thoroughly
>>tested, but I wanted to know your thoughts on this before I went too far.
>That sounds like a good plan. We should be testing this a lot by
>calling all joins via it.
>We also need to ensure we can join ourselves, or work on the server-side
>functionality so that we do. Having a seperate RPC-JOIN test would be a
>good thing (follow up with a single test samlogon) as it would be fast
>enough to be put in the quicktest, but stresses a large area of code.
I definately agree, putting this stuff into the RPC-NETLOGON test was
getting messy awfully quick, so I'll start working it into a separate test.
>On to the patch itself:
>The correct macro here is ZERO_STUCTP.
>Finally, I assume you run things under valgrind?
I'm getting the hang of valgrind and gdb. I made this change, and this
patch also includes a fix for a problem valgrind found, with
libnet_Join_primary_domain() not passing a talloc()'d libnet_JoinDomain
struct to the libnet_JoinDomain() function.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 9345 bytes
Desc: not available
Url : http://lists.samba.org/archive/samba-technical/attachments/20050904/67fd4284/libnet_join.c.2.bin
More information about the samba-technical