summaryrefslogtreecommitdiff
path: root/source3/smbd/dir.c
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r20873: Some correctness fixes w.r.t. Samba4 torture BASE-DELETE.Jeremy Allison1-5/+8
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)
2007-10-10r20844: Somewhat radical change - this may break the build (I willJeremy Allison1-12/+19
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)
2007-10-10r20411: Fix originally from SATOH Fumiyasu (slightlyJeremy Allison1-0/+12
modified). Ensure "hide unXXX" parameters don't hide MSDFS links. Bug #3319. Jeremy. (This used to be commit e5466fffc286a99fafe0fcfbf70e903e33baa7f9)
2007-10-10r18547: Add in fixes to mangling dir code - ensure don'tJeremy Allison1-40/+51
look in the paths for wcard - always read directly from incoming packet. Jeremy. (This used to be commit 3745a1af4ea9262fcda28931539fa6ab4c9060d1)
2007-10-10r16945: Sync trunk -> 3.0 for 3.0.24 code. Still needJeremy Allison1-10/+11
to do the upper layer directories but this is what everyone is waiting for.... Jeremy. (This used to be commit 9dafb7f48ca3e7af956b0a7d1720c2546fc4cfb8)
2007-10-10r16537: Fix for bug #3858, all files in a directory notJeremy Allison1-6/+7
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)
2007-10-10r15196: Update a comment that I found confusing (I confuse easily).Paul Green1-1/+1
(This used to be commit eb53f01863f8f9d2980d9c2c8d27899dd39e5fa2)
2007-10-10r14986: Fix OS/2 directory delete bug found by kukks.Jeremy Allison1-8/+28
(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)
2007-10-10r13293: Rather a big patch I'm afraid, but this should fix bug #3347Jeremy Allison1-2/+2
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)
2007-10-10r11657: Tiny improvement to debug error message in dir_check_ftype.Paul Green1-1/+1
(This used to be commit 46674ca21d9c257bc48af97e313b49118c7b478d)
2007-10-10r11511: A classic "friday night check-in" :-). This moves muchJeremy Allison1-1/+1
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)
2007-10-10r11420: Fix issue pointed out by Dina Fine <dina@exanet.com>. We canJeremy Allison1-2/+2
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)
2007-10-10r10558: Fix bug #3010 yet again. Die monster, die !Jeremy Allison1-1/+16
Jeremy. (This used to be commit dba56e8d23dc10a31f0f700b02c8776bdc8f57c1)
2007-10-10r9483: Changed DIR to SMB_STRUCT_DIR because of the amazing stupidity of a ↵Jeremy Allison1-1/+1
UNIX vendor not understanding abstract data types :-(. Jeremy. (This used to be commit be5b4e2fa3ed30b0ff01b47d2354e5f782a12e25)
2007-10-10r9457: Attempt to fix bug #3010 by handling END_OF_DIRECTORY_OFFSETJeremy Allison1-1/+6
consistently. Jeremy. (This used to be commit ac8f22a328d878f064277638d63446bf68b68dfd)
2007-10-10r9286: Fix false positive found by Coverity - wcard must not be null.Jeremy Allison1-12/+14
Jeremy. (This used to be commit 31104e5bcfffdd48071b2062809313679f29961f)
2007-10-10r8689: Fixes bugid #2889 for sure. Turns out the OS/2 dos box doesn't like ↵Jeremy Allison1-14/+21
two offsets to be identical. Make offsets for . and .. different (and explicit). Jeremy. (This used to be commit 217cc66e46b3df35a66fed4055bd5032aab4d73f)
2007-10-10r8655: Still trying to fix #2889. We don't need the DPTR_MASK afterJeremy Allison1-9/+2
all, now thinking it might be to do with flags2... Jeremy. (This used to be commit a3ceabf7c678b5e7f77cc073cf535498ffc67eb6)
2007-10-10r8610: If I'm going to do a debug level zero, at least make it useful.Jeremy Allison1-1/+2
Jeremy. (This used to be commit 99dae22dcf4050b5aacbb2cd4d2a08a183611402)
2007-10-10r8609: Fix for bugid #2889. I think the problem is that the top 16 bits of ↵Jeremy Allison1-2/+8
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)
2007-10-10r8219: Merge the new open code from HEAD to 3.0. Haven't yet run the tortureJeremy Allison1-22/+38
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)
2007-10-10r7893: Add in the extra parameters to opendir() to fix the large ↵Jeremy Allison1-39/+30
directory/insane app problem. Rev vfs version. Doesn't change the normal codepath. Jeremy. (This used to be commit 0f03a6bdcdbdf60da81e0aeffa84ac6e48fc6a04)
2007-10-10r7842: With the patch I sent Steve yesterday this gives us complete POSIX ↵Jeremy Allison1-1/+1
pathnames. ie. files containing : and \ can be accessed from Linux. Jeremy. (This used to be commit e9b8d23d6138d909a65ea70b2e801881e8333b38)
2007-10-10r7617: Fix for bug #2801 - delete veto files was broken with the newJeremy Allison1-1/+17
large directory code. Jeremy. (This used to be commit f397cc08b5628913af4d7f9c2c6d20c778e5d8ca)
2007-10-10r7474: A *foul* and *disgusting* hack to ensure that, at the very lowestJeremy Allison1-1/+23
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)
2007-10-10r7210: Fix my own mistakes up, sorry.Jeremy Allison1-3/+3
Jeremy. (This used to be commit 53c3a954ee0e1c9dc61950f1a9d0a654de9382c6)
2007-10-10r7200: Don't use memset, use SET_STAT_INVALID (has the same effect).Jeremy Allison1-3/+3
Jeremy. (This used to be commit 0b6f87d5e14da461bd2b1c3a4e6f47a69d2cd1c4)
2007-10-10r6625: Remove another global variable left over from a long time ago (magic ↵Jeremy Allison1-1/+1
char). Jeremy. (This used to be commit b1bfa9cb37deb22d1d08bc60ba44d61334f6446e)
2007-10-10r6550: Move function make_dir_struct from util to dir.cJeremy Allison1-0/+34
Jeremy. (This used to be commit 5b86e3dcdf31dec61449d2faede61d24c3a8d79f)
2007-10-10r6548: Fix bug #2622 - remove DPTR_MASK as it makes no sense.Jeremy Allison1-5/+11
Jeremy. (This used to be commit 927681c8c4458c77de2622557f1465fd5ca1c28b)
2007-10-10r6473: Fix for bug #2644 - test for special files to be ignored was reversed.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 7c173dec2efcbe3fe42ffb9a2e85f3fbc8710ec4)
2007-10-10r6417: Strange old IRIX systems return -1 for telldir() whenJeremy Allison1-4/+0
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)
2007-10-10r6225: get rid of warnings from my compiler about nested externsHerb Lewis1-2/+2
(This used to be commit efea76ac71412f8622cd233912309e91b9ea52da)
2007-10-10r6169: Fix bug #2563. Infinite loop on non-existant file with findnext.Jeremy Allison1-3/+2
Jeremy (This used to be commit 065ab9182dc39557b8c26d3d110abe9963ad9568)
2007-10-10r6044: Ensure the old search calls always ask mask_match to translateJeremy Allison1-2/+2
patterns like ????????.??? - even if using an NT1 protocol. Matches W2K3 behavior. Jeremy. (This used to be commit 67f6473f50f3284b9ccbe6f983f23cd42b3b7c9f)
2007-10-10r6022: Fix for bug #2533. Incorrect dir listings from OS/2 clients.Jeremy Allison1-7/+0
Jeremy. (This used to be commit cf8949f684ee9adcd35d56d923b2f5733efc05ac)
2007-10-10r5922: Fix for NASTY NASTY bug #2501. All my fault :-(. Brown paper bag time.Jeremy Allison1-0/+7
Stops Win98 from looping doing findnext on a singleton directory. More testing very welcome. Jeremy. (This used to be commit e32a58742e618a49934e19b72cd5222c9666cf95)
2007-10-10r5843: Removed unused variable - pointed out by jason@ncac.gwu.edu in bugid ↵Jeremy Allison1-3/+1
#2460. Jeremy. (This used to be commit 1f988333ecaedfb21a8deee6eebb9bd4de91bfd6)
2007-10-10r5632: Fix infinite looping bug found by nasty BlueArc test :-).Jeremy Allison1-0/+20
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)
2007-10-10r5508: Typo - ZERO_STRUCT -> ZERO_STRUCTP.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 76e1d90aef45ccc089492d962e0f284e2e4d8e7a)
2007-10-10r5183: Ensure we correctly set the per-connection "case_sensitive" setting.Jeremy Allison1-5/+5
Rename dptrs_open to the more correct dirhandles_open. Remove old #if 1. Jeremy. (This used to be commit c43bae306a18f5716acbe8571f4f414873400cb1)
2007-10-10r5160: First cut at refactoring of directory code to handle non-wildcardJeremy Allison1-63/+149
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)
2007-10-10r5154: Tidy up interface a little.Jeremy Allison1-2/+4
Jeremy. (This used to be commit a38eeb765f4c744ca7bf0aca86bb448240ad295d)
2007-10-10r5152: Restructure the directory handling code, stop using void * pointersJeremy Allison1-220/+162
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)
2007-10-10r5096: Attempt to fix the buildVolker Lendecke1-1/+1
(This used to be commit 5f34139b68460f6fb1046e2b97f16dbeff3fb136)
2007-10-10r5063: Shamelessly steal the Samba4 logic (and some code :-) for directoryJeremy Allison1-135/+215
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)
2007-10-10r4088: Get medieval on our ass about malloc.... :-). Take control of all our ↵Jeremy Allison1-3/+3
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)
2007-10-10r2076: Removed old dir caching code - not being used now we have theJeremy Allison1-109/+0
statcache anyway. New dir caching will be done on nanosecond timestamps. Jeremy. (This used to be commit ba473a580245430009245a4c8b8dcaf9fc4b6406)
2007-10-10r1085: Now it's had some proper user testing, merge in the deferred open ↵Jeremy Allison1-1/+2
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)
2004-04-02Added per-share parameter "store dos attributes". When set, will storeJeremy Allison1-2/+2
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)