s4:provision - Fix up the provision of "standalone" and "member" mode
Both modes weren't possible anymore since 1.) the secrets entry wasn't created,
2.) a lookup in winbindd was done using "lp_workgroup()" rather than
"lp_sam_name()" (since on the mentioned two configurations we use the netbios
name as domainname - and not the workgroup).
Andrew Tridgell [Fri, 27 Nov 2009 08:10:50 +0000 (19:10 +1100)]
s4-torture: fixed error code for s4 in SMB2-LOCK test
s4 returns NETWORK_NAME_DELETED if you attempt to use an invalid tree connection
for a lock. This test (correctly I think) happens before we validate the file handle.
That implies that when you pass both a closed handle and a invalid tree you
should get NT_STATUS_NETWORK_NAME_DELETED.
Andrew Tridgell [Fri, 27 Nov 2009 03:54:22 +0000 (14:54 +1100)]
s4-torture: fixed expected error codes for s4 in SMB2-LOCK
I think the error/success codes returned by windows for these tests
are quite bogus. The ones s4 gives are much more reasonable. The
locking ones returning NT_STATUS_SUCCESS could lead to data loss, as
an application thinks it has a file locked correctly when it fact it
doesn't, so it could do an unsafe modify.
Andrew Tridgell [Fri, 27 Nov 2009 03:42:05 +0000 (14:42 +1100)]
s4-drstest: don't use getenv("LDB_URL") in test suites
I was stumped for a while as to why the drs test suite was failing for
me. It turned out that it looked for LDB_URL in the environment, and
used it if set. I had it set in my terminal, and it was happily
munching on my sam.ldb while testing. Quite a cute bug really :-)
Andrew Tridgell [Fri, 27 Nov 2009 03:18:39 +0000 (14:18 +1100)]
s4-ldb: better to test for valid arguments in ldb library than commandline
We were testing for valid DNs in ldbrename in the command line
tool. This hid a bug in the ldb library where we caught a bad DN in
the objectclass module rather than in the main ldb code. It is better
to do validation of the DNs passed on the command line in the library
code, as this gives us more consistent error handling between the
programming APIs for ldb and the command line.
Andrew Tridgell [Thu, 26 Nov 2009 02:06:01 +0000 (13:06 +1100)]
s4-install: fixed install path for python scripts
when we install python scripts we need to fix the internal path used
to find modules. We also need to install the scripts in the right
place. Most of them should go in $SBINDIR not share/setup/
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.