1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-29 11:21:54 +03:00
Commit Graph

295 Commits

Author SHA1 Message Date
Andrew Tridgell
a2a838d72c r8497: prevent a fd leak in RAW-SEARCH test
(This used to be commit efb151ba79)
2007-10-10 13:23:09 -05:00
Andrew Tridgell
060113de98 r8495: allow for up 10% change in allocated disk space during QFSINFO tests
(This used to be commit 16d752b551)
2007-10-10 13:23:09 -05:00
Andrew Tridgell
fc56396261 r8494: fixed a bug in RAW-SFILEINFO that caused inconsistent results on different platforms
(This used to be commit 9264555541)
2007-10-10 13:23:09 -05:00
Andrew Tridgell
bcec34683d r8491: lower the offset limit that filesystems need to support to pass RAW-WRITE to 2^33
(This used to be commit e499b1abae)
2007-10-10 13:23:09 -05:00
Volker Lendecke
8e05fc188e r8229: A level2 oplock does not conflict a no-oplock open, but is broken on first
write. Test that.

Volker
(This used to be commit 2ad02d5e09)
2007-10-10 13:19:22 -05:00
Volker Lendecke
824f5b4781 r8185: Delete on close on directories:
Creating a file in a directory with delete-on-close set returns
DELETE_PENDING, and trying to set the flag on a non-empty directory returns
DIRECTORY_NOT_EMPTY.

Volker
(This used to be commit 5680f34778)
2007-10-10 13:19:18 -05:00
Volker Lendecke
44b66a73d3 r8176: Exploring the share mode database...
A delete-on-close deleted file is still around while open on another fd. But
only for findfirst, not for qpathinfo :-)

Volker
(This used to be commit dbc7a1a978)
2007-10-10 13:19:17 -05:00
Jeremy Allison
3de3d6a02d r8174: Check DOS error codes in torture chkpath test.
Jeremy.
(This used to be commit ff58ecad04)
2007-10-10 13:19:17 -05:00
Andrew Tridgell
6667788706 r8123: fixed the RAW-NOTIFY and RAW-QFSINFO tests against w2k3
(This used to be commit acd9fad3a4)
2007-10-10 13:19:11 -05:00
Andrew Tridgell
a703329908 r8122: more fixes from testing dos error code handling against w2k3
(This used to be commit b71fbcf5e2)
2007-10-10 13:19:11 -05:00
Andrew Tridgell
19f2cd199f r8118: remove a debugging hack that should not have been in the last commit
(This used to be commit 0f76449a08)
2007-10-10 13:19:10 -05:00
Andrew Tridgell
fee56ea900 r8117: fixed a bunch more dos error code handing.
The biggest change was fixing the RAW-CONTEXT test. It was forcing
capabilities to zero in an attempt to not negotiated extended
security, but as a side effect it was forcing negotiation of dos error
codes. This confused the hell out of the test code!

Also fixed a bunch of places incorrectly using NT_STATUS_V() instead
of NT_STATUS_EQUAL() and several places that had the wrong dos status
codes
(This used to be commit 0b22744f40)
2007-10-10 13:19:10 -05:00
Andrew Tridgell
74942e1a11 r8107: now that we properly separate DOS and NT status codes all the places
that relied on the mapping need to be fixed. The first thing is to get
all the torture tests working against w2k3 again with nt status codes
enabled. The 2nd step will be to make them pass with nt status
disabled.

This starts on the first task, fixing the assumption that
NT_STATUS_INVALID_LOCK_SEQUENCE is a valid substitute for
ERRDOS:ERRbadaccess
(This used to be commit 87cdd11708)
2007-10-10 13:19:08 -05:00
Andrew Tridgell
e0d521ca79 r8104: - added support for our client library to not negotiate nt status codes, controlled
with 'nt status support' option.

- make nt_errstr() display nice strings for dos status codes encoded
  using NT_STATUS_DOS()

- no longer map between dos and nt status codes in the client library,
  instead return using NT_STATUS_DOS()

- fixed the RAW-CONTEXT test to look for
  NT_STATUS_DOS(ERRSRV, ERRbaduid) instead of NT_STATUS_INVALID_HANDLE
(This used to be commit ff5549e87f)
2007-10-10 13:19:08 -05:00
Andrew Tridgell
e7c530a9ea r8058: added testing of delete on close for files and directories
(This used to be commit 214e51b3c8)
2007-10-10 13:19:04 -05:00
Andrew Tridgell
361d126d01 r8051: separate out the MAX EAs test, as it fills disk too much to be run regularly
(This used to be commit dac526845e)
2007-10-10 13:19:03 -05:00
Andrew Tridgell
f792261654 r8004: added a maximum EAs size test from Kukks.
(This used to be commit 426c4d08ac)
2007-10-10 13:18:58 -05:00
Andrew Tridgell
b28e927466 r7899: fixed a crash bug in the RAW-CONTEXT test
(This used to be commit 470ad9a93f)
2007-10-10 13:18:47 -05:00
Andrew Bartlett
b523bde499 r7675: Use correct memory context for anonymous session setup auth context
(no need for it to hang around forever).

Add test for this behaviour.

Andrew Bartlett
(This used to be commit 36dc2491d7)
2007-10-10 13:18:21 -05:00
Stefan Metzmacher
68ff6b1262 r7487: check both files before and after setting the attribs on file1
metze
(This used to be commit 376c0560e0)
2007-10-10 13:17:58 -05:00
Tim Potter
78176b7ee0 r6676: Fix unused variable.
(This used to be commit 699e0adf4c)
2007-10-10 13:16:34 -05:00
Tim Potter
61d53d5d76 r6675: Fix printf warning.
(This used to be commit 513fc9c244)
2007-10-10 13:16:33 -05:00
Andrew Tridgell
965fab8268 r6581: improved the error message for RAW-LOCK timeouts
(This used to be commit 13ab07214e)
2007-10-10 13:16:28 -05:00
Alexander Bokovoy
9779e6d670 r6352: Two new composite calls:
- qfsinfo (query file system information)
- appendacl (append an ACL to existing file's security descriptor and get new
full ACL)

The second one also includes an improvement to security descriptor handling
which allows to copy security descriptor. Written by Peter Novodvorsky
<peter.novodvorsky@ru.ibm.com>

Both functions have corresponding torture tests added. Tested under valgrind and
work against Samba 4 and Windows XP.

ToDo: document composite call creation process in prog_guide.txt
(This used to be commit 441cff62ac)
2007-10-10 13:11:34 -05:00
Andrew Tridgell
d9c15b0f28 r6342: fixed a bad union assumption that caused ACLs to fail on 64 bit machines
Thanks to lars and agruen for finding this
(This used to be commit 2acc069185)
2007-10-10 13:11:33 -05:00
Andrew Bartlett
b3221032d2 r6315: Allow sane session setup behaviour on SPNEGO regarding VUIDs.
Andrew Bartlett
(This used to be commit 6e2327ee9b)
2007-10-10 13:11:31 -05:00
Andrew Bartlett
1372e938fc r6314: A more complete RAW-CONTEXT test. This Samba4 currently fails, but it
now tests areas in extended security handling (SPNEGO) that are just
plain odd...

Andrew Bartlett
(This used to be commit d8d63e8c79)
2007-10-10 13:11:31 -05:00
Andrew Bartlett
2eb3d68062 r6028: A MAJOR update to intergrate the new credentails system fully with
GENSEC, and to pull SCHANNEL into GENSEC, by making it less 'special'.

GENSEC now no longer has it's own handling of 'set username' etc,
instead it uses cli_credentials calls.

In order to link the credentails code right though Samba, a lot of
interfaces have changed to remove 'username, domain, password'
arguments, and these have been replaced with a single 'struct
cli_credentials'.

In the session setup code, a new parameter 'workgroup' contains the
client/server current workgroup, which seems unrelated to the
authentication exchange (it was being filled in from the auth info).

This allows in particular kerberos to only call back for passwords
when it actually needs to perform the kinit.

The kerberos code has been modified not to use the SPNEGO provided
'principal name' (in the mechListMIC), but to instead use the name the
host was connected to as.  This better matches Microsoft behaviour,
is more secure and allows better use of standard kerberos functions.

To achieve this, I made changes to our socket code so that the
hostname (before name resolution) is now recorded on the socket.

In schannel, most of the code from librpc/rpc/dcerpc_schannel.c is now
in libcli/auth/schannel.c, and it looks much more like a standard
GENSEC module.  The actual sign/seal code moved to
libcli/auth/schannel_sign.c in a previous commit.

The schannel credentails structure is now merged with the rest of the
credentails, as many of the values (username, workstation, domain)
where already present there.  This makes handling this in a generic
manner much easier, as there is no longer a custom entry-point.

The auth_domain module continues to be developed, but is now just as
functional as auth_winbind.  The changes here are consequential to the
schannel changes.

The only removed function at this point is the RPC-LOGIN test
(simulating the load of a WinXP login), which needs much more work to
clean it up (it contains copies of too much code from all over the
torture suite, and I havn't been able to penetrate its 'structure').

Andrew Bartlett
(This used to be commit 2301a4b38a)
2007-10-10 13:11:15 -05:00
Jelmer Vernooij
05bc2d7b2c r5928: Use cli_credentials in:
- gtk+ (returned by GtkHostBindingDialog as well now)
 - torture/
 - librpc/
 - lib/com/dcom/
(This used to be commit ccefd78233)
2007-10-10 13:11:08 -05:00
Andrew Tridgell
e82aad1ce3 r5298: - got rid of pstring.h from includes.h. This at least makes it a bit
less likely that anyone will use pstring for new code

 - got rid of winbind_client.h from includes.h. This one triggered a
   huge change, as winbind_client.h was including system/filesys.h and
   defining the old uint32 and uint16 types, as well as its own
   pstring and fstring.
(This used to be commit 9db6c79e90)
2007-10-10 13:09:38 -05:00
Andrew Tridgell
131dc76d56 r5197: moved events code to lib/events/ (suggestion from metze)
(This used to be commit 7f54c8a339)
2007-10-10 13:09:30 -05:00
Andrew Tridgell
66170ef8b3 r5185: make all the events data structures private to events.c. This will
make it possible to add optimisations to the events code such as
keeping the next timed event in a sorted list, and using epoll for
file descriptor events.

I also removed the loop events code, as it wasn't being used anywhere,
and changed timed events to always be one-shot (as adding a new timed
event in the event handler is so easy to do if needed)
(This used to be commit d7b4b6de51)
2007-10-10 13:09:29 -05:00
Andrew Tridgell
9a70f446fc r5126: the composite code is no longer client specific or smb specific, so
rename the core structure to composite_context and the wait routine to
composite_wait() (suggestion from metze)
(This used to be commit cf11d05e35)
2007-10-10 13:09:25 -05:00
Jeremy Allison
ebf1d79986 r5071: Reverted (per tridge request).
Jeremy.
(This used to be commit 554e27023f)
2007-10-10 13:09:19 -05:00
Jeremy Allison
90ba985c6b r5068: I'm pretty sure an old search request is allowed to return changed case
versions of filenames. Tridge please check I haven't screwed this up.
Jeremy.
(This used to be commit 40c1e16b5b)
2007-10-10 13:09:18 -05:00
Andrew Tridgell
759da3b915 r5037: got rid of all of the TALLOC_DEPRECATED stuff. My apologies for the
large commit. I thought this was worthwhile to get done for
consistency.
(This used to be commit ec32b22ed5)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
93e27bec15 r5035: fixed composite test to use --num-ops command line option
(This used to be commit f36e4cf686)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
3e44c4a3ba r4951: some of the code dealing with libcli was getting too complex trying to
handle the inverted memory hierarchy that a normal session
establishment gave. The inverted hierarchy came from that fact that
you first establish a socket, then a transport, then a session and
finally a tree. That leads to the socket being at the top of the
memory hierarchy and the tree at the bottom, which makes no sense from
the users point of view, as they want to be able to free the tree and
have everything disappear.

The core problem was that the libcli interface didn't distinguish
between establishing a primary context and a secondary context. If you
establish a 2nd session on a transport then you want the transport to
be referenced by the session, whereas if you establish a primary
session then you want the transport to be a child of the session.

To fix this I have added "parent_ctx" and "primary" arguments to the
libcli intialisation functions. This makes using the library much
easier, and gives us a memory hierarchy that makes much more sense.

I was prompted to do this by a bug in the cifs backend, which was
caused by the socket not being properly torn down on a disconnect due
to the inverted memory hierarchy.
(This used to be commit 5e8fd5f701)
2007-10-10 13:09:09 -05:00
Volker Lendecke
63ba8383e1 r4949: First version of a fetchfile composite function which connects to a server and
loads a file. Needs a smb url parsing wrapper.

Volker
(This used to be commit fa435bf7c8)
2007-10-10 13:09:08 -05:00
Andrew Tridgell
48e07444e8 r4792: use type safety int the test suite too
(This used to be commit 4a963e3b7a)
2007-10-10 13:08:55 -05:00
Andrew Tridgell
79f32d794a r4779: demonstrate doing 50 parallel loadfile operations, with a callback for completion
(This used to be commit b8c5269482)
2007-10-10 13:08:54 -05:00
Andrew Tridgell
7cbc768376 r4777: added a smb_composite_sesssetup() async composite function. This
encapsulates all the different session setup methods, including the
multi-pass spnego code.

I have hooked this into all the places that previously used the
RAW_SESSSETUP_GENERIC method, and have removed the old
RAW_SESSSETUP_GENERIC code from clisession.c and clitree.c. A nice
side effect is that these two modules are now very simple again, back
to being "raw" session setup handling, which was what was originally
intended.

I have also used this to replace the session setup code in the
smb_composite_connect() code, and used that to build a very simple
replacement for smbcli_tree_full_connection().

As a result, smbclient, smbtorture and all our other SMB connection
code now goes via these composite async functions. That should give
them a good workout!
(This used to be commit 080d0518bc)
2007-10-10 13:08:53 -05:00
Stefan Metzmacher
592fce7fb1 r4726: - use the name tcon and tid instead of conn and cnum
- make use of talloc destructors

metze
(This used to be commit 8308da6ce4)
2007-10-10 13:08:48 -05:00
Andrew Tridgell
287515fd3d r4710: added a smb_composite_savefile() function, and expanded the test suite a little
(This used to be commit ef4dbc443d)
2007-10-10 13:08:46 -05:00
Andrew Tridgell
1d795fa57b r4700: first attempt at a composite async function, smb_composite_loadfile(),
which combineds ntcreatex, readx and close into a single call that
behaves just like a normal libcli async call.
(This used to be commit 516f68fb05)
2007-10-10 13:08:45 -05:00
Andrew Tridgell
4e73b4b222 r4612: make the output for the w2k3 acl bug a bit clearer
(This used to be commit 24ec8c4274)
2007-10-10 13:08:33 -05:00
Andrew Tridgell
297a63b6c9 r4596: added a dynamic inheritance ACLs test. As far as I can tell w2k3 does not do
dynamic inheritance
(This used to be commit ebe6b00284)
2007-10-10 13:08:31 -05:00
Andrew Tridgell
11ce2cfd70 r4591: - converted the other _p talloc functions to not need _p
- added #if TALLOC_DEPRECATED around the _p functions

- fixes the code that broke from the above

while doing this I fixed quite a number of places that were
incorrectly using the non type-safe talloc functions to use the type
safe ones. Some were even doing multiplies for array allocation, which
is potentially unsafe.
(This used to be commit 6e7754abd0)
2007-10-10 13:08:30 -05:00
Andrew Tridgell
1a019f9883 r4583: print which bit failed in the owner bits check
(This used to be commit f893ad9c45)
2007-10-10 13:08:29 -05:00
Andrew Tridgell
468b3fcef2 r4582: finally worked out what is going on with the inherited ACLs test and win2003. It is a
win2003 bug!

This new test code works against w2k, and against longhorn, but fails
against w2k3. When tested against w2k3 it allows a open with an access
mask that should be denied by the given ACL, after setting up the ACL
using inheritance. Note that only the very specific
SEC_RIGHTS_FILE_ALL mask incorrectly succeeds, so they must have a
special case for that mask. Maybe its an optimisation gone wrong?

I don't know if there are any serious security implications to this,
but it is pretty clearly wrong, and has been fixed in longhorn.
(This used to be commit 4f9fd767db)
2007-10-10 13:08:29 -05:00
Andrew Tridgell
ddc10d4d37 r4549: got rid of a lot more uses of plain talloc(), instead using
talloc_size() or talloc_array_p() where appropriate.

also fixed a memory leak in pvfs_copy_file() (failed to free a memory
context)
(This used to be commit 89b74b5354)
2007-10-10 13:08:25 -05:00
Andrew Tridgell
cc55aef7c1 r4547: - added talloc_new(ctx) macro that is a neater form of the common talloc(ctx, 0) call.
- cleaned up some talloc usage in various files

I'd like to get to the point that we have no calls to talloc(), at
which point we will rename talloc_p() to talloc(), to encourage
everyone to use the typesafe functions.
(This used to be commit e6c81d7c9f)
2007-10-10 13:08:20 -05:00
Andrew Tridgell
3b21422ae8 r4463: added testing of the special SID_CREATOR_OWNER inheritance rules
(This used to be commit 5448c72ebe)
2007-10-10 13:07:53 -05:00
Stefan Metzmacher
00c7f9eed8 r4422: make lp_set_cmdline("torture:dangerous", "Yes") a bool parameter
metze
(This used to be commit 19482a2245)
2007-10-10 13:07:47 -05:00
Andrew Tridgell
447a346f0d r4407: stricter checking of parameters on hard link creation in the RAW-RENAME test
(This used to be commit b239589b00)
2007-10-10 13:07:44 -05:00
Andrew Tridgell
e20be5a6be r4402: use __location__ instead of __LINE__ in the RAW-RENAME test
(This used to be commit 09ac133820)
2007-10-10 13:07:43 -05:00
Andrew Tridgell
a477387cd0 r4401: stricter test for correct ACL inheritance in RAW-ACLS
(This used to be commit 1bb7691963)
2007-10-10 13:07:43 -05:00
Andrew Tridgell
d39ae54341 r4389: added checking for the default inherited ACL, which is used when no ACEs
are inheritable
(This used to be commit e30b8d5783)
2007-10-10 13:07:41 -05:00
Andrew Tridgell
66b8ff22e0 r4388: - allow ACE flags to be specified in security_descriptor_create()
- added a test for all combinations of the inheritance ACE flags and how
  they are propogated to child directories and files
(This used to be commit fdb38c8e4b)
2007-10-10 13:07:41 -05:00
Andrew Tridgell
5e4e61c827 r4364: - added support for testing of chained SMB operations in smbtorture
- added test for chained OpenX/ReadX, simulating the OS/2 workplace shell

- fixed a bug in handling chained fnum in openx and ntcreatex in the server

(yes, I'm on holiday, but this bug was annoying me ....)
(This used to be commit b3b8958a18)
2007-10-10 13:07:38 -05:00
Andrew Tridgell
8e90f88c25 r4317: check the count of replies in the os2 ea_list torture test
(This used to be commit 10861b3fa0)
2007-10-10 13:07:33 -05:00
Andrew Tridgell
ed42a64901 r4263: added support for the trans2 RAW_SEARCH_EA_LIST information
level. This is quite a strange level that we've never seen before, but
is used by the os2 workplace shell.

note w2k screws up this level when unicode is negotiated, so it only
passes the RAW-SEARCH test when you force non-unicode
(This used to be commit 25189b8fbf)
2007-10-10 13:07:29 -05:00
Andrew Tridgell
3b8e83a8c8 r4243: a sniff from kukks showed that the ea_set interface in trans2 setfileinfo allows
for multiple EAs to be set at once. This fixes all the ea code to allow for that.
(This used to be commit b26828bef5)
2007-10-10 13:07:28 -05:00
Andrew Tridgell
c9cce9e623 r4183: expanded the RAW-MKDIR torture test to test creation of EA lists
(This used to be commit 0134d8e9cc)
2007-10-10 13:07:24 -05:00
Andrew Tridgell
fbd8c61ff7 r4173: - new t2open code, that can cope with "create with EAs". Many thanks
to kukks on #samba-technical for the sniffs that allowed me to work
  this out

- much simpler ntvfs open generic mapping code

- added t2open create with EA torture test to RAW-OPEN test
(This used to be commit a56d95ad89)
2007-10-10 13:07:22 -05:00
Andrew Tridgell
e60bf04d4f r4164: added a test that simulates a OS/2 file delete. This includes seek by
name back into a directory for files that no longer exist.
(This used to be commit 57204a1533)
2007-10-10 13:07:21 -05:00
Andrew Tridgell
6ca874f71a r4147: converted from NT_USER_TOKEN to struct security_token
this is mostly just a tidyup, but also adds the privilege_mask, which
I will be using shortly in ACL checking.

note that I had to move the definition of struct security_token out of
security.idl as pidl doesn't yet handle arrays of pointers, and the
usual workaround (to use a intermediate structure) would make things
too cumbersome for this structure, especially given we never encode it
to NDR.
(This used to be commit 7b446af09b)
2007-10-10 13:06:31 -05:00
Andrew Tridgell
690b352fc1 r4074: make the RAW-ACLS test use the new lsa helper functions to determine
the privileges of the user running the test. This allows the test to
work out what the expected access masks are.
(This used to be commit dcf6c297d3)
2007-10-10 13:06:23 -05:00
Stefan Metzmacher
9112a632f6 r4063: - change char * -> uint8_t in struct request_buffer
- change smbcli_read/write to take void * for the buffers to match read(2)/write(2)

all this fixes a lot of gcc-4 warnings

metze
(This used to be commit b94f92bc66)
2007-10-10 13:06:21 -05:00
Andrew Tridgell
6a58011be5 r4061: more additions to the RAW-ACLS test, to help me work out some details for pvfs
(This used to be commit 273165e53a)
2007-10-10 13:06:21 -05:00
Andrew Tridgell
6e6374cb5b r4055: fixed more places to use type safe allocation macros
(This used to be commit eec698254f)
2007-10-10 13:06:20 -05:00
Andrew Tridgell
7dcfd94f81 r4053: expanded and fixed a bug in the RAW-ACLS test
(This used to be commit 0d19b4a09f)
2007-10-10 13:06:18 -05:00
Andrew Tridgell
4183b2ac38 r4037: fixed a bunch of "might be uninitialised" warnings after enabling -O1 in my compile
(This used to be commit 0928b1f5b6)
2007-10-10 13:06:16 -05:00
Andrew Tridgell
3b863542dc r4036: expanded the RAW-ACLS torture test to include tests for the
generic->specific access mask mappings, and tests of the behaviour of
SID_CREATOR_OWNER and SEC_FLAG_MAXIMUM_ALLOWED
(This used to be commit f572fe6d29)
2007-10-10 13:06:16 -05:00
Andrew Tridgell
cc8f4358cc r4035: more effort on consistent naming of the access mask bits.
This removes the duplicate named SEC_RIGHTS_MAXIMUM_ALLOWED and
SEC_RIGHTS_FULL_CONTROL, which are just other names for
SEC_FLAG_MAXIMUM_ALLOWED and SEC_RIGHTS_FILE_ALL. The latter names
match the new naming conventions in security.idl

Also added names for the generic->specific mappings for files are
directories
(This used to be commit 17a4e0b3ac)
2007-10-10 13:06:16 -05:00
Andrew Tridgell
fdc9f417d8 r4011: get rid of rpc_secdes.h and replace it with a single sane set of
definitions for security access masks, in security.idl

The previous definitions were inconsistently named, and contained many
duplicate and misleading entries. I kept finding myself tripping up
while using them.
(This used to be commit 01c0fa722f)
2007-10-10 13:06:13 -05:00
Andrew Tridgell
85215a9a26 r3835: - added testing of setting an initial ACL on a file using NTTRANS create
- added support for initial ACLs in pvfs backend
(This used to be commit 05ee9179f7)
2007-10-10 13:05:58 -05:00
Andrew Tridgell
012be92f0a r3830: unified the query/set security descriptor code with the rest of the
queryfileinfo/setfileinfo logic, so querying/setting a security
descriptor is treated as just another file query/set operation.

This will allow NTVFS backends to see the query/set security
descriptor operations as RAW_FILEINFO_SEC_DESC and
RAW_SFILEINFO_SEC_DESC operations.
(This used to be commit f68a6b6b91)
2007-10-10 13:05:57 -05:00
Andrew Tridgell
bbf009b46f r3829: added a RAW-ACLS test suite that tests query/set of ACLs on a file
(This used to be commit 2ff9816ae0)
2007-10-10 13:05:57 -05:00
Andrew Tridgell
cae123912c r3828: added testing of opening an existing file with EAs (the EAs are ignored)
(This used to be commit 6d53c6a0ae)
2007-10-10 13:05:57 -05:00
Andrew Tridgell
5f868bc1ac r3826: - added testing of ea lists in NTTRANS CREATE
- fixed push/pull of chained ea lists

- fixed a bug in the nttrans wire encoding
(This used to be commit fcd0922407)
2007-10-10 13:05:57 -05:00
Andrew Tridgell
5efd740d4d r3821: added client side code and test code for NTTRANS_CREATE
(This used to be commit 8422789c06)
2007-10-10 13:05:56 -05:00
Andrew Tridgell
856f663adc r3800: - fixed delete-on-close behaviour for streams
- added a delete-on-close test to RAW-STREAMS

- don't allow rename of streams at the moment (I need to work out if
  its supposed to be allowed first)
(This used to be commit f4b2b1311d)
2007-10-10 13:05:55 -05:00
Andrew Tridgell
ae7caf08c1 r3798: added support for alternate data streams in xattrs into pvfs.
The trickiest part about this was getting the sharing and locking
rules right, as alternate streams are separate locking spaces from the
main file for the purposes of byte range locking, and separate for
most share violation rules.

I suspect there are still problems with delete on close with alternate
data streams. I'll look at that next.
(This used to be commit b6452c4a20)
2007-10-10 13:05:54 -05:00
Andrew Tridgell
ca90965a3a r3793: add some streams tests that show how the :$DATA suffix is handled
(This used to be commit 41d8c95c94)
2007-10-10 13:05:54 -05:00
Andrew Tridgell
4719461a07 r3746: added RAW-STREAMS and RAW-EAS tests to smbtorture
(This used to be commit 5ed3d68d20)
2007-10-10 13:05:50 -05:00
Andrew Tridgell
1c59d825af r3717: - expanded the RAW-RENAME test a little
- added support for wildcard rename in pvfs

- made more consistent use of pvfs_map_errno()
(This used to be commit e255d1c3a8)
2007-10-10 13:05:46 -05:00
Andrew Tridgell
0e255bb542 r3699: - split the delayed write testing out of RAW-WRITE, as it is not yet
clear what the correct behaviour is for delayed stat info update.

- use a common torture_setup_dir() function for setting up a test
  directory in torture tests.
(This used to be commit f7fb34715b)
2007-10-10 13:05:45 -05:00
Andrew Tridgell
5f608f23d3 r3594: continue conversion to __location__ from __LINE__ for error reporting
(This used to be commit 425e36ca4d)
2007-10-10 13:05:37 -05:00
Andrew Tridgell
44b5e5a580 r3576: don't consider short share delay timeouts to be an error, so we can
run test_posix.sh in a reaonable time by using posix:sharedelay=100000

this still tests correct multiplex behaviour
(This used to be commit 64a6db5b02)
2007-10-10 13:05:33 -05:00
Andrew Tridgell
a9158e0d47 r3574: the RAW-OPEN test changes broke a couple of the other tests. This
fixes most of them, although RAW-SEARCH still fails (due to an
interaction with the new xattr code)
(This used to be commit 09b4652b40)
2007-10-10 13:05:33 -05:00
Andrew Tridgell
439c1524fb r3573: added trans2open support to smbd and pvfs, and fine-tuned the open->generic ntvfs mapping code.
(This used to be commit ed844192d7)
2007-10-10 13:05:33 -05:00
Andrew Tridgell
1d97e7b9d8 r3540: added testing of SMBntcancel in the open/open/close mux
testing. Interestingly, w2k3 does not allow the cancel of an
outstanding async open request, whereas it does allow the cancel of an
outstanding async lock request. To support this I have changed the
pvfs_wait interface to provide a enum on why the event is happening,
so the callback can decide what to do.
(This used to be commit f23d6a2800)
2007-10-10 13:05:30 -05:00
Andrew Tridgell
80eef3ea66 r3539: much nicer async open delay code.
The previous code didn't handle the case where the file got renamed or
deleted while waiting for the sharing violation delay. To handle this
we need to make the 2nd open a full open call, including the name
resolve call etc. Luckily this simplifies the logic.

I also expanded the RAW-MUX test to include the case where we do
open/open/open/close/close, with the 3rd open async, and that open
gets retried after both the first close and the 2nd close, with the
first retry failing and the 2nd retry working. The tests the "async
reply after a async reply" logic in pvfs_open().
(This used to be commit eded2ad9c9)
2007-10-10 13:05:29 -05:00
Andrew Tridgell
c870ae8b89 r3528: added support for the SMBntcancel() operation, which cancels any
outstanding async operation (triggering an immediate timeout).

pvfs now passes the RAW-MUX test
(This used to be commit 3423e2f414)
2007-10-10 13:05:28 -05:00
Andrew Tridgell
dde0705807 r3507: - added deferred replies on sharing violation in pvfs open. The
deferred reply is short-circuited immediately when the file is
  closed by another user, allowing it to be opened by the waiting user.

- added a sane set of timeval manipulation routines

- converted all the events code and code that uses it to use struct
  timeval instead of time_t, which allows for microsecond resolution
  instead of 1 second resolution. This was needed for doing the pvfs
  deferred open code, and is why the patch is so big.
(This used to be commit 0d51511d40)
2007-10-10 13:05:23 -05:00
Andrew Tridgell
3643fb1109 r3463: separated out some more headers (asn_1.h, messages.h, dlinklist.h and ioctl.h)
(This used to be commit b97e395c81)
2007-10-10 13:05:17 -05:00
Andrew Tridgell
8692564e35 r3458: more solaris portability fixes, the main one being that we can't use a
structure element called "open" as its a macro on solaris.
(This used to be commit 4e92e15c4e)
2007-10-10 13:05:16 -05:00
Andrew Tridgell
ead3508ac8 r3447: more include/system/XXX.h include files
(This used to be commit 264ce91810)
2007-10-10 13:05:12 -05:00
Andrew Tridgell
9f1210a243 r3419: moved the libcli/raw structures into libcli/raw/libcliraw.h
and made them private
(This used to be commit 386ac565c4)
2007-10-10 13:05:07 -05:00
Andrew Tridgell
ba6d5fcb97 r3324: made the smbtorture code completely warning free
(This used to be commit 7067bb9b52)
2007-10-10 13:04:55 -05:00
Andrew Tridgell
074da7ccf7 r3288: - updated the path processing in pvfs to pass the RAW-CHKPATH test. This
rather extensive test reveals some really bizarre error code
  handling in w2k3.

- extended and simplified the RAW-CHKPATH test, making it easier to
  read (note that Samba3 fails the new tests - jra may wish to look)

- marked RAW-CHKPATH as pass for pvfs
(This used to be commit 32dccf91cf)
2007-10-10 13:04:50 -05:00
Andrew Tridgell
b9ddb09f03 r3276: - allow for more than 256 open old style searches (limit currently set at an arbitrary 5000)
- auto-cleanup old searches that the client forgot to close (common with old searches)

- expanded the RAW-SEARCH test to test more than 256 old searches, and
  old search rewind (w2k3 fails this - it appears to not support rewind
  on old style searches)
(This used to be commit bc83d823b2)
2007-10-10 13:04:48 -05:00
Andrew Tridgell
3b5c992481 r3270: - added another unlink test
- removed BASE-TRANS2 from the list of tests to be worked on (its
  already in the "passes" list)
(This used to be commit 8ba10229c3)
2007-10-10 13:04:48 -05:00
Andrew Tridgell
f493f7be97 r3261: added seek to RAW-SEARCH test
(This used to be commit 05530bfb99)
2007-10-10 13:04:47 -05:00
Andrew Tridgell
991588e70c r3259: expanded the RAW-SEARCH test some more
(This used to be commit cc58d249f9)
2007-10-10 13:04:47 -05:00
Andrew Tridgell
b3ada7f4f5 r3257: make the RAW-SEARCH test less sensitive to the servers directory ordering
(This used to be commit 097823bbde)
2007-10-10 13:04:47 -05:00
Andrew Tridgell
4db039c3f3 r3254: - expanded the RAW-IOCTL test
- fixed the old ioctl interface to not check handle before failing

- pvs now passes RAW-IOCTL
(This used to be commit 98f6dbdba4)
2007-10-10 13:04:46 -05:00
Andrew Tridgell
d16b621ca9 r3251: - move the openattr test code into basic/attr.c
- cleaned up the RAW-WRITE test so it passes against w2k3, and gives
  more useful error messages
(This used to be commit d4042c4364)
2007-10-10 13:04:46 -05:00
Andrew Tridgell
920c0bba82 r3245: use __location__ in RAW-SEARCH
(This used to be commit 3d5f7f4ac4)
2007-10-10 13:04:45 -05:00
Andrew Tridgell
2b5b463892 r3242: make the RAW-READ test not exercise the 0-0 lock, which is not deterministic
(This used to be commit ecd4e315b9)
2007-10-10 13:04:45 -05:00
Andrew Tridgell
3511e5e806 r3236: test a few more combinations in RAW-UNLINK
(This used to be commit 5b239ad57b)
2007-10-10 13:04:43 -05:00
Andrew Tridgell
1f7fbaf493 r3235: try readx beyond 64k in RAW-READ
(This used to be commit e07c557eca)
2007-10-10 13:04:43 -05:00
Andrew Tridgell
e1c43f243a r3206: - added the reverse map for ERRbaduid to NT_STATUS_INVALID_HANDLE
- force disable spnego in the RAW-CONTEXT test (it breaks the test)
(This used to be commit 3f247ec21c)
2007-10-10 13:04:41 -05:00
Andrew Tridgell
925cb13fcd r3199: added a couple more test paths to RAW-CHKPATH
(This used to be commit 17f10a39c8)
2007-10-10 13:04:40 -05:00
Andrew Tridgell
7780bec7b4 r3198: check for too many .. components in filenames
pvfs now passes RAW-MKDIR
(This used to be commit 41adb385f1)
2007-10-10 13:04:40 -05:00
Andrew Tridgell
9c10d74be7 r3191: use __location__ in RAW-UNLINK test
(This used to be commit fb1929743a)
2007-10-10 13:04:38 -05:00
Andrew Tridgell
3cf018b517 r3180: - basic support for SEC_RIGHT_MAXIMUM_ALLOWED in pvfs
- RAW-CONTEXT test now passes
(This used to be commit 0dae9fef09)
2007-10-10 13:04:37 -05:00
Andrew Tridgell
def9a12bcc r3173: make the RAW-QFILEINFO test cope better with null strings from the server
(This used to be commit a10fca41de)
2007-10-10 13:04:36 -05:00
Andrew Tridgell
a3ff7f7d37 r3108: try to cope with servers that put FILE_ATTRIBUTE_NONINDEXED on files in the RAW-OPEN test
(This used to be commit bed7d12f26)
2007-10-10 13:02:22 -05:00
Andrew Tridgell
d3c5d8ccfd r3105: using __location__ instead of __LINE__ to give info on error locations is more useful
(This used to be commit 80dd22a1f1)
2007-10-10 13:02:21 -05:00
Andrew Tridgell
31a4070fcc r3085: make the RAW-WRITE tests more robust to errors in previous parts of the test
(This used to be commit 6ea815b6d4)
2007-10-10 13:01:57 -05:00
Andrew Tridgell
384f87bd38 r3034: - fixed a bug in message dispatch, when the dispatch function called messaging_deregister()
- added a pvfs_lock_close_pending() hook to remove pending locks on file close

 - fixed the private ptr argument to messaging_deregister() in pvfs_wait

 - fixed a bug in continuing lock requests after a lock that is blocking a pending lock is removed

 - removed bogus brl_unlock() call in lock continue

 - corrected error code for LOCKING_ANDX_CHANGE_LOCKTYPE

 - expanded the lock cancel test suite to test lock cancel by unlock and by close

 - added a testsuite for LOCKING_ANDX_CHANGE_LOCKTYPE
(This used to be commit 5ef80f034d)
2007-10-10 13:00:00 -05:00
Andrew Tridgell
0ca4a77005 r3030: added testing of lock cancel, and some more special offsets (locks
with the top bit set are special)
(This used to be commit f732a983d4)
2007-10-10 13:00:00 -05:00
Andrew Tridgell
d0cc571e30 r3029: implemented byte range lock timeouts.
This adds a pvfs_wait_message() routine which uses the new messaging
system, event timers and talloc destructors to give a nice generic
async event handling system with a easy to use interface. The
extensions to pvfs_lock.c are based on calls to pvfs_wait_message()
routines.

We now pass all of our smbtorture locking tests, although while
writing this code I have thought of some additonal tests that should
be added, particularly for lock cancel operations. I'll work on that
soon.

This commit also extends the smbtorture lock tests to test the rather
weird 0xEEFFFFFF locking semantics that I have discovered in
win2003. Win2003 treats the 0xEEFFFFFF boundary as special, and will
give different error codes on either side of it. Locks on both sides
are allowed, the only difference is which error code is given when a
lock is denied. Anyone like to hazard a guess as to why? It has
me stumped.
(This used to be commit 4395c0557a)
2007-10-10 13:00:00 -05:00
Andrew Tridgell
1edc2f95e3 r2983: report a failure if a server doesn't update the write time at all
after 2 minutes
(This used to be commit b2298a1c5f)
2007-10-10 12:59:54 -05:00
Andrew Tridgell
970ba3a736 r2982: added a test that shows the amount of time a server takes to update
the write time on a file after a write.
(This used to be commit efee3c90f9)
2007-10-10 12:59:54 -05:00
Andrew Tridgell
a1abaa6ba9 r2929: longhorn does not produce sorted directory listings! This is
excellent, as it means we don't lose any compatibility by also not
giving sorted listings. I was very much afraid that applications had
begun to rely on this (as its guaranteed by w2k NTFS).

no longer mark a non-sorting server as an error
(This used to be commit 1d21c9a9d1)
2007-10-10 12:59:49 -05:00
Volker Lendecke
b33be58874 r2912: Test for the sort-of weird file stamp semantics. The last_write seems to be
updated only by an arbitrary close() after the file was actually written to.

Volker
(This used to be commit ab52ebfdcc)
2007-10-10 12:59:47 -05:00
Andrew Tridgell
fea0571034 r2909: fix some RAW-SEARCH torture mem leaks
(This used to be commit 75ca5ba509)
2007-10-10 12:59:47 -05:00
Volker Lendecke
3b6a240284 r2895: Another nut to crack, not sure how hard: The statinfo on a file does obviously
not change during a write. The nasty thing: Excel 2003 obviosly does depend on
this.

Volker
(This used to be commit 8e26775134)
2007-10-10 12:59:45 -05:00
Andrew Tridgell
16ed45d627 r2738: free up the session information as soon as it is invalidated in the
RAW-CONTEXT test case
(This used to be commit f4a7a3282a)
2007-10-10 12:59:28 -05:00
Andrew Tridgell
b2f1a29e43 r2710: continue with the new style of providing a parent context whenever
possible to a structure creation routine. This makes for much easier
global cleanup.
(This used to be commit e14ee428ec)
2007-10-10 12:59:25 -05:00
Andrew Tridgell
aa12305945 r2680: switched the libcli/raw/ code over to use talloc_reference(), which simplifies things quite a bit
(This used to be commit c82a9cf750)
2007-10-10 12:59:21 -05:00
Andrew Tridgell
5b44130afa r2671: we're getting too many errors caused by the talloc_realloc() API not
taking a context (so when you pass a NULL pointer you end up with
memory in a top level context). Fixed it by changing the API to take a
context. The context is only used if the pointer you are reallocing is
NULL.
(This used to be commit 8dc23821c9)
2007-10-10 12:59:20 -05:00
Andrew Tridgell
e3880fa759 r2660: - converted the libcli/raw/ library to use talloc_increase_ref_count()
rather than manual reference counts

- properly support SMBexit in the cifs and posix backends

- added a logoff method to all backends

With these changes the RAW-CONTEXT test now passes against the posix backend
(This used to be commit c315d6ac1c)
2007-10-10 12:59:18 -05:00
Andrew Tridgell
ec0128ef01 r2649: - used some cpp tricks to make users of talloc() and talloc_realloc()
to get auto-naming of pointers very cheaply.

- fixed a couple of memory leaks found with the new tricks

A typical exit report for smbd is now:

talloc report on 'null_context' (total 811 bytes in 54 blocks)
        auth/auth_sam.c:334            contains     20 bytes in   1 blocks
        struct auth_serversupplied_info contains    498 bytes in  33 blocks
        UNNAMED                        contains      8 bytes in   1 blocks
        lib/data_blob.c:40             contains     16 bytes in   1 blocks
        iconv(CP850,UTF8)              contains     61 bytes in   4 blocks
        iconv(UTF8,CP850)              contains     61 bytes in   4 blocks
        iconv(UTF8,UTF-16LE)           contains     67 bytes in   4 blocks
        iconv(UTF-16LE,UTF8)           contains     67 bytes in   4 blocks
        UNNAMED                        contains     13 bytes in   1 blocks

which is much better than before
(This used to be commit 6e721393d0)
2007-10-10 12:59:16 -05:00
Andrew Tridgell
82b61938ac r2593: don't crash if the server doesn't know that 0 count searches mean 1
(This used to be commit 640ced4530)
2007-10-10 12:59:11 -05:00
Andrew Tridgell
ca60193f24 r2520: - finished implementing the server side of the old style search requests
(This used to be commit 4e4859c06b)
2007-10-10 12:59:01 -05:00
Andrew Tridgell
23ba434b01 r2469: complete overhaul of the old-style RAW_SEARCH_ calls (the OS/2 and
original core level calls). The old code was completely wrong in many respects.

also fixed the EA_SIZE level in the server

extended the RAW-SEARCH test suite to test the new code properly
(This used to be commit 71480271ad)
2007-10-10 12:58:56 -05:00
Andrew Tridgell
6108ead954 r2462: added a test for the error code for no matching filename
(This used to be commit 7bfbbc38ed)
2007-10-10 12:58:55 -05:00
Andrew Tridgell
d78a1ac756 r2457: expanded the RAW-SEARCH test to test for what happens when a directory
is modified while being searched, and whether the server always
returns sorted directory listings.
(This used to be commit e23514c78f)
2007-10-10 12:58:55 -05:00
Jeremy Allison
f0ae80e18c r2217: Ad-hoc tests to allow me to work out the correct error code
for the bad path algorithm.
Jeremy.
(This used to be commit d2d32d8f2b)
2007-10-10 12:58:32 -05:00
Jeremy Allison
ebe1733768 r2151: Added some more ad-hoc tests. Found bugs in Samba3 with these :-).
Jeremy.
(This used to be commit fe6506e190)
2007-10-10 12:58:27 -05:00
Stefan Metzmacher
8aa051c7b2 r2071: - change smbtorture to use the popt_common stuff
this means -U DOM\\user is know allowed

- torture:userdomain is a new smb.conf parameter
  because lp_workgroup is not the domain of the user

- we use torture:userdomain now in the tests instad of lp_workgroup

- for backward compat the userdomain is lp_workgroup() by default and
  not lp_netbios_name(), which my change later to match 'net' and 'smbclient'..

- we now have dublicate options e.g. -N -s ...
  tridge: can we change this?

metze
(This used to be commit 4733dcbf5f)
2007-10-10 12:58:23 -05:00
Stefan Metzmacher
b0856b8ad0 r1996: fix compiler warnings
metze
(This used to be commit dd8d68f3ec)
2007-10-10 12:58:16 -05:00
Andrew Tridgell
b83ba93eae r1983: a completely new implementation of talloc
This version does the following:

  1) talloc_free(), talloc_realloc() and talloc_steal() lose their
     (redundent) first arguments

  2) you can use _any_ talloc pointer as a talloc context to allocate
     more memory. This allows you to create complex data structures
     where the top level structure is the logical parent of the next
     level down, and those are the parents of the level below
     that. Then destroy either the lot with a single talloc_free() or
     destroy any sub-part with a talloc_free() of that part

  3) you can name any pointer. Use talloc_named() which is just like
     talloc() but takes the printf style name argument as well as the
     parent context and the size.

The whole thing ends up being a very simple piece of code, although
some of the pointer walking gets hairy.

So far, I'm just using the new talloc() like the old one. The next
step is to actually take advantage of the new interface
properly. Expect some new commits soon that simplify some common
coding styles in samba4 by using the new talloc().
(This used to be commit e35bb094c5)
2007-10-10 12:58:14 -05:00
Andrew Tridgell
ada86316e5 r1820: added a strcmp_safe() that handles NULL pointers. Needed for the
search torture test, as some servers return really bad entries.
(This used to be commit c900ebb3ac)
2007-10-10 12:57:59 -05:00
Andrew Bartlett
14924a9fe7 r1795: Fix the multiple session setup torture tests.
Andrew Bartlett
(This used to be commit c4036f2189)
2007-10-10 12:57:57 -05:00
Andrew Bartlett
63c5ca7d58 r1769: Add a new torture test to check vuid properties, and SPNEGO/non-SPNEGO games.
Andrew Bartlett
(This used to be commit 90d70a63ee)
2007-10-10 12:57:55 -05:00