Age | Commit message (Collapse) | Author | Files | Lines |
|
Allow us to correctly refuse to set delete on close on a
non-empty directory. There are still some delete-on-close
wrinkles to be fixed, but I understand how to do that better
now. I'll fix this tomorrow.
Jeremy.
(This used to be commit 029635885825a5562e7974a6f5675cce3bf1b5dc)
|
|
watch carefully - so I'm doing it in one transaction so I can
roll back).
Change check_name(), reduce_name() and dptr_create() to
return NTSTATUS. This helps a lot in error path processing
and especially in reduce_name() allows us to ditch the flaky
and error-prone saving of errno and return errors directly.
Jeremy.
(This used to be commit 6133a694aa429d638320e39ffe1c49d172583ccf)
|
|
modified). Ensure "hide unXXX" parameters don't
hide MSDFS links. Bug #3319.
Jeremy.
(This used to be commit e5466fffc286a99fafe0fcfbf70e903e33baa7f9)
|
|
look in the paths for wcard - always read directly
from incoming packet.
Jeremy.
(This used to be commit 3745a1af4ea9262fcda28931539fa6ab4c9060d1)
|
|
to do the upper layer directories but this is what
everyone is waiting for....
Jeremy.
(This used to be commit 9dafb7f48ca3e7af956b0a7d1720c2546fc4cfb8)
|
|
being deleted when hide unreadable set to true.
Here's the scoop.
This one is really interesting. The pattern of deleting a directory is to do a
findfirst to get the first part of the list, then for each name returned it
does a open/set delete on close/close -> thus deleting the file. Then it does a
findnext with the last file name THAT IT JUST DELETED ! Now we can handle this
in the findnext in the case where hide unreadable is set to false as we look
back in our cache of names and just seek to the right point. The bug is
actually fixed in the first hunk of this patch - the one that removes the
is_visible_file() check after SearchDir returns false. We don't actually need
it and in this case it's causing the delete to be aborted because it can't find
the name (doh ! it was just deleted). We don't need it as SearchDir is only
ever called from findnext, and findnext should only ever be returning names we
gave it.
The rest of the patch are the debugs I used to find
the problem but they're generically useful.
Phew - that one took a while to track down.....
Jerry, please merge for 3.0.23 final.
Jeremy.
(This used to be commit cd048cb775f0a8525fc19aa463db07c477521f5b)
|
|
(This used to be commit eb53f01863f8f9d2980d9c2c8d27899dd39e5fa2)
|
|
(Thanks a lot for all your hard work on this).
We were caching the results of *all* directory
scans, not just the results that match the
client wildcard. This actually made no sense,
as only matches on the client wildcard can be
returned to the client and so might need to
be searched for in the cache. This fixes the
directory cache to only cache entries that we
return to the client.
Jeremy.
(This used to be commit c88af597d042390ff11b26fe802b0b10d0faa6ce)
|
|
by saving the UNIX token used to set a delete on close flag,
and using it when doing the delete. libsmbsharemodes.so still
needs updating to cope with this change.
Samba4 torture tests to follow.
Jeremy.
(This used to be commit 23f16cbc2e8cde97c486831e26bcafd4ab4a9654)
|
|
(This used to be commit 46674ca21d9c257bc48af97e313b49118c7b478d)
|
|
of the Samba4 timezone handling code back into Samba3.
Gets rid of "kludge-gmt" and removes the effectiveness
of the parameter "time offset" (I can add this back
in very easily if needed) - it's no longer being
looked at. I'm hoping this will fix the problems people
have been having with DST transitions. I'll start comprehensive
testing tomorrow, but for now all modifications are done.
Splits time get/set functions into srv_XXX and cli_XXX
as they need to look at different timezone offsets.
Get rid of much of the "efficiency" cruft that was
added to Samba back in the day when the C library
timezone handling functions were slow.
Jeremy.
(This used to be commit 414303bc0272f207046b471a0364fa296b67c1f8)
|
|
only tell at parse time from the wire if an incoming name
has wildcards or not. If it's a mangled name and we demangle
the demangled name may contain wildcard characters. Ensure
these are ignored.
Jeremy.
(This used to be commit 4cd8e2a96b98ff711905e8c6f416b22440c16062)
|
|
Jeremy.
(This used to be commit dba56e8d23dc10a31f0f700b02c8776bdc8f57c1)
|
|
UNIX vendor
not understanding abstract data types :-(.
Jeremy.
(This used to be commit be5b4e2fa3ed30b0ff01b47d2354e5f782a12e25)
|
|
consistently.
Jeremy.
(This used to be commit ac8f22a328d878f064277638d63446bf68b68dfd)
|
|
Jeremy.
(This used to be commit 31104e5bcfffdd48071b2062809313679f29961f)
|
|
two offsets
to be identical. Make offsets for . and .. different (and explicit).
Jeremy.
(This used to be commit 217cc66e46b3df35a66fed4055bd5032aab4d73f)
|
|
all, now thinking it might be to do with flags2...
Jeremy.
(This used to be commit a3ceabf7c678b5e7f77cc073cf535498ffc67eb6)
|
|
Jeremy.
(This used to be commit 99dae22dcf4050b5aacbb2cd4d2a08a183611402)
|
|
the "server state" field must be
non-zero. As we're using the 32 bit field as an offset then normally this field
will be zero. W2K3 fills this field with a counter enumerating the number of
SMBsearch calls on this directory - starting at 1. Add back the 1<<31 bit flag
DPTR_MASK to ensure this is non-zero - with better checks on use.
Jeremy.
(This used to be commit 6415657942c49ea51d4e4f4ee2189c7d70b9c5fa)
|
|
tests on this as it's very late NY time (just wanted to get this work
into the tree). I'll test this over the weekend....
Jerry - in looking at the difference between the two trees there
seem to be some printing/ntprinting.c and registry changes we might
want to examine to try keep in sync.
Jeremy.
(This used to be commit c7fe18761e2c753afbffd3a78abff46472a9b8eb)
|
|
directory/insane app
problem. Rev vfs version. Doesn't change the normal codepath.
Jeremy.
(This used to be commit 0f03a6bdcdbdf60da81e0aeffa84ac6e48fc6a04)
|
|
pathnames.
ie. files containing : and \ can be accessed from Linux.
Jeremy.
(This used to be commit e9b8d23d6138d909a65ea70b2e801881e8333b38)
|
|
large directory code.
Jeremy.
(This used to be commit f397cc08b5628913af4d7f9c2c6d20c778e5d8ca)
|
|
level, . and .. are the first two entries returned when reading a
directory. This also means we can't seek to these offsets, but we
will never be doing that anyway (as far as I can think). The reason
we have to do this is that the NT4 explorer will happily display a
folder marked ".." as a clickable folder (and probably would display
"." as a clickable folder too) if these are not in positions zero
and one of the returned file list. W2K seems to have fixed this but
there are too many older systems out there... Never mind, more for
the "Undocumented CIFS talk", coming to a CIFS2005 conference near
you soon.... :-).
Jeremy.
(This used to be commit 7b6e907922b7d98abe4430ea73712a9c6419ea08)
|
|
Jeremy.
(This used to be commit 53c3a954ee0e1c9dc61950f1a9d0a654de9382c6)
|
|
Jeremy.
(This used to be commit 0b6f87d5e14da461bd2b1c3a4e6f47a69d2cd1c4)
|
|
char).
Jeremy.
(This used to be commit b1bfa9cb37deb22d1d08bc60ba44d61334f6446e)
|
|
Jeremy.
(This used to be commit 5b86e3dcdf31dec61449d2faede61d24c3a8d79f)
|
|
Jeremy.
(This used to be commit 927681c8c4458c77de2622557f1465fd5ca1c28b)
|
|
Jeremy.
(This used to be commit 7c173dec2efcbe3fe42ffb9a2e85f3fbc8710ec4)
|
|
end of directory reached. Don't check for that and bail
when reading directory entries as it's a valid value.
Excellent work from Cale Fairchild <cale@brocku.ca>
tracked this down.
Jeremy.
(This used to be commit a60fe9aba16eac4f195a2359d8b7672d8c8aa240)
|
|
(This used to be commit efea76ac71412f8622cd233912309e91b9ea52da)
|
|
Jeremy
(This used to be commit 065ab9182dc39557b8c26d3d110abe9963ad9568)
|
|
patterns like ????????.??? - even if using an NT1 protocol.
Matches W2K3 behavior.
Jeremy.
(This used to be commit 67f6473f50f3284b9ccbe6f983f23cd42b3b7c9f)
|
|
Jeremy.
(This used to be commit cf8949f684ee9adcd35d56d923b2f5733efc05ac)
|
|
Stops Win98 from looping doing findnext on a singleton directory. More
testing very welcome.
Jeremy.
(This used to be commit e32a58742e618a49934e19b72cd5222c9666cf95)
|
|
#2460.
Jeremy.
(This used to be commit 1f988333ecaedfb21a8deee6eebb9bd4de91bfd6)
|
|
When finding a singleton directory remember that we're
at the end and don't continuously return the same name.
Jeremy.
(This used to be commit 3da50060279609f534aeffe6338b0a2b07d0e8f1)
|
|
Jeremy.
(This used to be commit 76e1d90aef45ccc089492d962e0f284e2e4d8e7a)
|
|
Rename dptrs_open to the more correct dirhandles_open.
Remove old #if 1.
Jeremy.
(This used to be commit c43bae306a18f5716acbe8571f4f414873400cb1)
|
|
directory match more efficiently. Passes RAW-SEARCH under valgrind but needs more
testing (which I'll do later today :-).
Jeremy.
(This used to be commit 0b04dd9d0c6d1fe02d1b5e43f203577bf5466f33)
|
|
Jeremy.
(This used to be commit a38eeb765f4c744ca7bf0aca86bb448240ad295d)
|
|
that just allow the wrong pointer to be assigned :-) and make the
interface more consistent. Fix the FreeBSD directory problem. Last
thing to do is to add the "singleton" directory concept from James
Peach's code.
Jeremy.
(This used to be commit cfa8150fd9932470cb8f3b5e14c0156dda67125d)
|
|
(This used to be commit 5f34139b68460f6fb1046e2b97f16dbeff3fb136)
|
|
evaluation. This stops us from reading the entire directory into
memory at one go, and allows partial reads. It also keeps almost
the same interface to the OpenDir/ReadDir etc. code (sorry James :-).
Next I will optimise the findfirst with exact match code. This speeds
up our interactive response for large directories, but not when a
missing (ie. negative) findfirst is done.
Jeremy
(This used to be commit 0af1d2f6f24f238cb05e10d7d53dcd5b5e0f5f5d)
|
|
allocation
functions so we can funnel through some well known functions. Should help greatly with
malloc checking.
HEAD patch to follow.
Jeremy.
(This used to be commit 620f2e608f70ba92f032720c031283d295c5c06a)
|
|
statcache anyway. New dir caching will be done on nanosecond
timestamps.
Jeremy.
(This used to be commit ba473a580245430009245a4c8b8dcaf9fc4b6406)
|
|
fix. I'm
still doing more testing, but it fixes a behaviour that we've been wrong
on ever since the start of Samba.
Jeremy.
(This used to be commit 894cc6d16296b934c112786eec896846156aee5d)
|
|
dos attributes in an EA. Based on an original patch from tridge, but
modified somewhat to cover all cases.
Jeremy.
(This used to be commit ed653cd468213e0be901bc654aa3748ce5837947)
|