Matthieu Patou [Wed, 25 Nov 2009 13:26:35 +0000 (16:26 +0300)]
s4: Improve updateprovision
* Define a simple upgrade process mode (module storage change, file name change, copy of new file)
* Move the schema, configuration and current object upgrade into full upgrade mode
* Added the --full switch to select the full upgrade mode, and made simple upgrade mode the default
* Make updateprovision works without any switch (update the provision in the default location)
* Cleanup the messages
* Create the reference provision in a subdirectory of the updated provision
Jeremy Allison [Wed, 25 Nov 2009 21:17:56 +0000 (13:17 -0800)]
Make us pass RAW-CHKPATH with a case sensitive share.
I know Volker will look at this closely so here's the explaination :-).
Originally on a case-sensitive share we simply did a stat (or lstat)
call and returned success of fail based on the result. However this
failed to take account of incoming paths with a wildcard (which must
always fail, and with different error messages depending on whether
the wildcard is the last component or in the path). Also it failed
to take account of a stat fail with ENOENT due to a missing component
of the path as the last component (which is ok as it could be a new
file) or if the ENOENT was due to the missing component within
the path (not the last component) - which must return the correct
error. What this means is that with "case sensitive = yes" we do
one more talloc call (to get the parent directory) and one more
stat call (on the parent directory) in the case where the stat
call fails. I think this is an acceptable overhead to enable
case sensitive shares to return the correct error messages for
applications. Volker please examine carefully :-).
Jeremy.
Jeremy Allison [Wed, 25 Nov 2009 18:20:38 +0000 (10:20 -0800)]
Fix bug 6892 - When a chown operation is issued via Windows Explorer, all ACLS are wiped out.
Merges existing DACLs when a ACL set operation comes in with only owner or group values set.
Jeremy.
Tim Prouty [Wed, 25 Nov 2009 16:03:36 +0000 (08:03 -0800)]
s4 torture: Change RAW-OPLOCK to use the documented version of SET_END_OF_FILE_INFO
The passtrhough version of SET_END_OF_FILE_INFO is tested in
RAW-SFILEINFO-END-OF-FILE.
Additionally, the first opener is changed to use SHARE_WRITE for the
share mode since SET_END_OF_FILE_INFO actually writes data to the file
via truncating/extending.
Tim Prouty [Wed, 25 Nov 2009 00:29:19 +0000 (16:29 -0800)]
s4 torture: Add two new setfileinfo tests
These tests expose a potential bug in winXP, win7, and likely others.
There is also a bug in samba where share modes aren't being enforced
where they should.
For more details see:
http://lists.samba.org/archive/cifs-protocol/2009-November/001130.html
Tim Prouty [Wed, 25 Nov 2009 00:25:02 +0000 (16:25 -0800)]
s4 torture: Split up the torture suite setup for RAW-SFILEINFO
A side effect of this change is that RAW-SFILEINFO now runs the whole
suite instead of just the first test. I changed the name of the first
test to RAW-SFILEINFO-BASE and changed all of the selftest scripts
that call it.
Jeremy Allison [Wed, 25 Nov 2009 00:40:08 +0000 (16:40 -0800)]
Remove call into reduce_name if case sensitive. This allows us to pass
RAW-CHKPATH when case sensitive = yes, but isn't the correct way to do
it. I'm testing a larger patch to smbd/filename.c that should fix this
correctly, and will add a torture test to ensure RAW-CHKPATH is run against
a case sensitive share once this is done.
Jeremy.
This was the cause of the breakage of the "LogonGetDomainInfo" testsuite. I
think my behaviour is more correct to Windows Server since the test works
against it (at least release 2003 R2).
One problem I discovered is that freshly joined workstations don't get their
DNS name into the directory. Therefore I think also another part (maybe another
RPC call) is able to do this.
s4:ldap.py - fix the schema update test on Windows Server
Apparently Windows Server (2003) doesn't like the comma delimiter here. I got
always error 16 ("LDB_NO_SUCH_ATTRIBUTE"). With this change the test works
again.
Volker Lendecke [Tue, 24 Nov 2009 15:51:30 +0000 (16:51 +0100)]
s3: Always try SamLogonEx
Required for cluster systems working in a Samba domain. With NT4 this won't
work, but real NT4 DCs should not be around in environments that pay big bucks
for a cluster... And if they are, they can always install a Samba DC trusting
that NT4 domain.
Jeremy Allison [Tue, 24 Nov 2009 05:06:54 +0000 (21:06 -0800)]
Restore NtCreateX case handling with FILE_FLAG_POSIX_SEMANTICS to the way
it worked in 3.3.x and 3.2.x. UCF_POSIX_PATHNAMES may no longer be needed,
as lp_posix_pathnames() being set isn't the same as case handling from
NtCreateX (lp_posix_pathnames() changes the STAT calls to LSTAT, not
the case semantics).
Jeremy.
Brad Hards [Tue, 24 Nov 2009 02:43:59 +0000 (13:43 +1100)]
s4:param remove reference to private header from source4/param/param.h
source4/param/param.h has a
param.h is a public header (and parmlist isn't, even if the relative path
could work), so I suggest making it a forward declaration in the header, and
including parmlist.h in the implementation.
(commit message included from e-mail by Andrew Bartlett) Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Jeremy Allison [Mon, 23 Nov 2009 23:01:34 +0000 (15:01 -0800)]
Proper fix for #6898 - Samba duplicates file content on appending. Pointed out by Volker.Restores the pathname handling for FILE_FLAG_POSIX_SEMANTICS but still prevents the O_APPEND problems. Jeremy.
Michael Adam [Fri, 20 Nov 2009 23:48:40 +0000 (00:48 +0100)]
s3: add dbwrap_torture - a tool to stress test tdb transactions through dbwrap
This can be used to also test tdb transactions on clustered installations
throught ctdb. The test is modeled after the ctdb_transaction.c test program
from the ctdb source code. It runs transactions in a tight loop on a test
database called "transactions.tdb" (by default), increasing a counter in each
iteration. In a clustered environment, a counter is maintained for each node.
Jeremy Allison [Mon, 23 Nov 2009 18:09:47 +0000 (10:09 -0800)]
Fix bug #6898 - Samba duplicates file content on appending
Clients using a Windows open call should not be able to set
FILE_FLAG_POSIX_SEMANTICS in an open.
Jeremy.
Andrew Bartlett [Mon, 23 Nov 2009 09:30:35 +0000 (20:30 +1100)]
s4:dsdb Move module configuration from each ldb into samba_dsdb.c
This makes getting the module order correct, the obligation of Samba4
developers, and not system administrators. In particular, once an ldb
is updated to use only the 'samba_dsdb' module, no further changes to the
ldb should be required when upgrading to later Samba4 versions.
(thanks to metze for the suggestion of samba_dsdb as a long-term
stable name for the module)
Andrew Bartlett [Fri, 20 Nov 2009 01:16:33 +0000 (12:16 +1100)]
s4:provision Simplify the module list
This makes the member server much more like the DC, the objectGUID
module replaces the repl_meta_data module.
We also generally rework the construction of the list, building a full
list in python, and then transforming it into a string, rather than
playing string concatonation games