Age | Commit message (Collapse) | Author | Files | Lines |
|
work out some way to do a decent test suite for this.
(This used to be commit 9a9a0d0e791e4b64f0a35c921729e623b977af47)
|
|
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 01c0fa722f80ceeb3f81f01987de95f365a2ed3d)
|
|
- added support for sticky write times after a setfileinfo, by using a
write_time field in the DosAttrib xattr structure.
(This used to be commit 4a52fae82d8305e999f94f1947daa21dab54cdfd)
|
|
- added support for initial ACLs in pvfs backend
(This used to be commit 05ee9179f74d243aa22fa00be7873c5db76a8ad1)
|
|
call has an optional sec_desc and ea_list.
(This used to be commit 8379ad14e3d51a848a99865d9ce8d56a301e8a3c)
|
|
- 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 f4b2b1311da6e37ac0947a3419d89c77ebbd6b63)
|
|
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 b6452c4a2068cf7e837778559da002ae191b508a)
|
|
(the IDL, and the load/save meta-data logic)
- changed pvfs_resolve_name() to default to non-wildcard, needing
PVFS_RESOLVE_WILDCARD to enable wildcards. Most callers don't want
wildcards, so defaulting this way makes more sense.
- fixed deletion of EAs
(This used to be commit e7afd4403cc1b7e0928776929f8988aa6f15640b)
|
|
(This used to be commit ad7815fababe5783df5e8fb4a490921a5af693d6)
|
|
(This used to be commit 3d50982f5419b9a5c53f2b82a2313669cdeaaa21)
|
|
- added support for wildcard rename in pvfs
- made more consistent use of pvfs_map_errno()
(This used to be commit e255d1c3a811c480a850452aaf636d9fa36f69fe)
|
|
pvfs. This prevents a possible crash due to free ordering on
unexpected disconnect.
(This used to be commit bfca9eb7cb7a2caf3a232d538808ff2ade8e1ca9)
|
|
BASE-DENYDOS test.
- pvfs now passes BASE-DENY1 and BASE-DENYDOS.
(This used to be commit aa09df22ee729c02552638859236d9068e9748ae)
|
|
preparation for adding code to pass the BASE-DENY1 and BASE-DENYDOS
tests, which require a shared filesystem handle for some specific
combinations of two DENY_DOS opens on the same connection.
(This used to be commit 6e4fdf01d19051e3923d7703dbf990fc1722b09a)
|
|
- added initial support for MODE_INFORMATION in setfileinfo (I have no
idea what "mode information" on a file is - it takes a value of 0,
2, 4 or 6. What could it be?)
(This used to be commit e53ec2f6b68e1d19149c36ea8fcd25a204db38fb)
|
|
- pvfs now passes BASE-OPENATTR
- pvfs also passes the BASE-DEFER_OPEN test, but it is not a well
formed test for regular running so I am removing it from the list of
tests to run in test_posix.sh (the test is covered better by RAW-MUX
anyway)
(This used to be commit cb76bd218ed4194ea151264d495aa902ddf03b3c)
|
|
fixes most of them, although RAW-SEARCH still fails (due to an
interaction with the new xattr code)
(This used to be commit 09b4652b40c4cfca027765178bd5a0adbaa666c2)
|
|
open->generic ntvfs mapping code.
(This used to be commit ed844192d7f7ed487290f719df65f256a5b0b9bc)
|
|
FILE_ATTRIBUTE_ARCHIVE)
(This used to be commit b07feaafd16e42e84ba51004a6a9d4a3cb8f9a37)
|
|
stored in posix xattrs
(This used to be commit bad6a88371264cffce2bf5d6ce904b7b357081de)
|
|
attributes of files.
I decided to use IDL/NDR to encode the attribute, as it gives us a
simple way to describe and extend the saved attributes.
The xattr code needs to hook into quite a few more places in the pvfs
code, but this at least gets the basics done. I will start encoding
alternate data streams streams, DOS EAs etc soon using the same basic
mechanism.
I'll probably stick to "version 1" for the xattr.idl for quite a while
even though it will be changing, as I don't expect anyone to be
deploying this in production just yet. Once we have production users
we will need to keep compatibility by supporting all the old version
numbers in xattr.idl.
(This used to be commit c54253ed1b7dce1d14f43e747da61089aea87094)
|
|
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 f23d6a28008a13588cde24b5012ec21e488ac47a)
|
|
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 eded2ad9c91f5ba587ef4f7f5f5a6dceb4b51ff3)
|
|
"posix:sharedelay = usecs"
(This used to be commit c4758776491e5ed9f5b8c387226d1e75bc70eb2e)
|
|
outstanding async operation (triggering an immediate timeout).
pvfs now passes the RAW-MUX test
(This used to be commit 3423e2f41461d054067ef168b9b986f62cc8f77c)
|
|
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 0d51511d408d91eb5f68a35e980e0875299b1831)
|
|
ioctl.h)
(This used to be commit b97e395c814762024336c1cf4d7c25be8da5813a)
|
|
(This used to be commit 4f33247f1ca60416415a61a7afac43c9dc8a61fd)
|
|
(This used to be commit 264ce9181089922547e8f6f67116f2d7277a5105)
|
|
SA_RIGHT_FILE_EXECUTE, which depends on a flags2 bit
(This used to be commit c36851d230bcf552ed79322f8358060ab164ec09)
|
|
(This used to be commit 22abdfca961a00e7c48ba4231e12f254781d315d)
|
|
.dll files
(This used to be commit ba1bfd51e1b694cb69afe559f695addaf03b4d81)
|
|
- pvfs now passes the RAW-CLOSE test
(This used to be commit 98aea91ce67a0c64a98537bfe244495f10672323)
|
|
(This used to be commit 090574c6982f703b124a5a123d2199be8f5b3968)
|
|
different type of unlink an seach mismatches
- wildcard directory listings that have attribute
FILE_ATTRIBUTE_DIRECTORY and match "." or ".." should be failed.
- don't set the write_time on SMBclose unless it is non-zero
- added much better support for setfileinfo and setpathinfo in pvfs
- better (and more efficient) handling of .. and . components in filenames
(This used to be commit 9305b07af395a158cb9f0c1c9486f7122c79d357)
|
|
openx portion of RAW-OPEN
- fixed directory size reporting to make it consistent. we now pass
the ntcreatex portion of RAW-OPEN
(This used to be commit 6282e5811b8d4f1c17152d86875ac60d1323779d)
|
|
dos attribute
(This used to be commit f6fb1e3493a2a0734747f769cd1013215d967cde)
|
|
correctness). pvfs now passes the BASE-RENAME test.
(This used to be commit 4cf3f65a5c19fdad62a0bdef225b2d9002cf8c8b)
|
|
- RAW-CONTEXT test now passes
(This used to be commit 0dae9fef09ec8bce19c39a0caf36e0882e507bc4)
|
|
(This used to be commit 4e28c45bafa453eaa94716a5b77d830b81efe6cf)
|
|
now pass BASE-UNLINK.
(This used to be commit f23a2f8538bda8f6790e86c93ee22436388b2975)
|
|
(This used to be commit a953d4a42c8fa3fe930c319d5157fc406a1035da)
|
|
directory
in pvfs_open, to make analysing sniffs easy
(This used to be commit 5c16ed02542f7e143d66f4ba8d166bb6882bf53a)
|
|
(This used to be commit abbfca1401818edd896493ab9c875224e3b7e0e7)
|
|
(This used to be commit f8041feaebc9170763ce04d2dd90cfc1c7889c21)
|
|
share_access support). This is enough for us to pass the BASE-DENY2
test, but is a long way from fully correct share modes.
(This used to be commit b5a6dd3cbf28a3a3b3a3656042ac8f50fca29e1c)
|
|
zeroing. This makes it clearer what bits are not yet implemented (and
is more valgrind friendly)
(This used to be commit 18b471327b596f3ea8f6a7b39ba0a83b2584ed0b)
|
|
pvfs_open, and handle the various race conditions that are inherent in
cifs on unix, so we do the best we can when the race happens.
the ntcreatex code is really starting to take shape now
(This used to be commit 395c3815b468ae55de9a1135e478711f0e7d8cfc)
|
|
preparation for the full share modes and ntcreatex code that I am
working on.
highlights include:
- changed the way a backend determines if it is allowed to process a
request asynchronously. The previous method of looking at the
send_fn caused problems when an intermediate ntvfs module disabled
it, and the caller then wanted to finished processing using this
function. The new method is a REQ_CONTROL_MAY_ASYNC flag in
req->control_flags, which is also a bit easier to read
- fixed 2 bugs in the readbraw server code. One related to trying to
answer a readbraw with smb signing (which can't work, and crashed
our signing code), the second related to error handling, which
attempted to send a normal SMB error packet, when readbraw must
send a 0 read reply (as it has no header)
- added several more ntvfs_generic.c generic mapping functions. This
means that backends no longer need to implement such esoteric
functions as SMBwriteunlock() if they don't want to. The backend
can just request the mapping layer turn it into a write followed by
an unlock. This makes the backends considerably simpler as they
only need to implement one style of each function for lock, read,
write, open etc, rather than the full host of functions that SMB
provides. A backend can still choose to implement them
individually, of course, and the CIFS backend does that.
- simplified the generic structures to make them identical to the
principal call for several common SMB calls (such as
RAW_WRITE_GENERIC now being an alias for RAW_WRITE_WRITEX).
- started rewriting the pvfs_open() code in preparation for the full
ntcreatex semantics.
- in pvfs_open and ipc_open, initially allocate the open file
structure as a child of the request, so on error we don't need to
clean up. Then when we are going to succeed the open steal the
pointer into the long term backend context. This makes for much
simpler error handling (and fixes some bugs)
- use a destructor in the ipc backend to make sure that everthing is
cleaned up on receive error conditions.
- switched the ipc backend to using idtree for fnum allocation
- in the ntvfs_generic mapping routines, use a allocated secondary
structure not a stack structure to ensure the request pointer
remains valid even if the backend replies async.
(This used to be commit 3457c1836c09c82956697eb21627dfa2ed37682e)
|
|
idr_get_new() limits
- change idr_get_new() to use > instead of >= in the limit check
(This used to be commit 834b09929bcb8aabdd151b7c2306001497cabdb4)
|