What is required to make schannel.tdb TDB_CLEAR_IF_FIRST

Andrew Bartlett abartlet at samba.org
Tue Jun 22 22:26:56 MDT 2010


On Tue, 2010-06-15 at 10:06 +1000, Andrew Bartlett wrote: 
> On Mon, 2010-06-14 at 21:00 +0200, Volker Lendecke wrote:
> > On Mon, Jun 14, 2010 at 02:14:09PM -0400, simo wrote:
> > > Looks like the other way around AFAIK.
> > > You use always TDB_CLEAR_IF_FIRST and just make sure you open (and keep
> > > open) the TDB in main(). So the main() one is always the first and
> > > always cleans the TDB on restart, while any other caller cannot clear it
> > > because it is not the "first" (does not have the lock).
> > 
> > Please watch out -- we have a little different semantics in
> > Samba3. If you want to use CLEAR_IF_FIRST, make sure you
> > have it already open in the parent, see for example
> > 4cdbe07b2563.
> 
> Thanks, that is *exactly* the kind of example I needed.  I'll knock up a
> patch and post it here for review.  

Attached is my proposed set of changes.  They pass 'make test' in Samba3
and resolve the delay in Samba4's 'make test' around the schannel tests.
(I'm chasing down some apparently unrelated issues there, but I'll
ensure it passes 'make test' there too). 

I think I've followed the pattern given above correctly.  If someone
could please push/review/comment I would appreciate it. 

Thanks,

Andrew Bartlett


More information about the samba-technical mailing list