1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-21 12:23:50 +03:00
Commit Graph

85 Commits

Author SHA1 Message Date
Jeremy Allison
9dafb7f48c r16945: Sync trunk -> 3.0 for 3.0.24 code. Still need
to do the upper layer directories but this is what
everyone is waiting for....

Jeremy.
2007-10-10 11:19:14 -05:00
Jeremy Allison
abc21cc732 r11945: Make us follow the newly documented pathname processing rules:
"As a special case for directories with large numbers of files, if the
case options are set as follows, "case sensitive = yes", "case
preserve = no", "short preserve case = no" then the "default case"
option will be applied and will modify all filenames sent from the client
when accessing this share."
This is needed as fixing the case preserve rules to only apply to
new filenames broke the large directory fix. Glad we caught this
before release. Thanks to jht for this one.
Jeremy.
2007-10-10 11:05:38 -05:00
Jeremy Allison
ba931a0151 r11861: Fix inspired by Thomas Neumann <t.neumann@iku-ag.de> to ensure that
default case applies only to new files and correctly examines 8.3
and long names.
Jeremy.
2007-10-10 11:05:31 -05:00
Jeremy Allison
238b35d2e6 r11346: Fix for bug found by Dina Fine. If in case sensitive mode then
the mangle cache is no good (3 letter extension could be wrong
case - so don't demangle in this case - leave as mangled and
allow the mangling of the directory entry read (which is done
case insensitively) to match instead. This will lead to more
false positive matches but we fail completely without it.
Jeremy.
2007-10-10 11:05:13 -05:00
Jeremy Allison
0f03a6bdcd r7893: Add in the extra parameters to opendir() to fix the large directory/insane app
problem. Rev vfs version. Doesn't change the normal codepath.
Jeremy.
2007-10-10 10:58:02 -05:00
Jeremy Allison
53c3a954ee r7210: Fix my own mistakes up, sorry.
Jeremy.
2007-10-10 10:57:05 -05:00
Jeremy Allison
0b6f87d5e1 r7200: Don't use memset, use SET_STAT_INVALID (has the same effect).
Jeremy.
2007-10-10 10:57:05 -05:00
Jeremy Allison
2673ccd19f r6631: More typo's. Sorry.
Jeremy.
2007-10-10 10:56:48 -05:00
Jeremy Allison
b1bfa9cb37 r6625: Remove another global variable left over from a long time ago (magic char).
Jeremy.
2007-10-10 10:56:47 -05:00
Jeremy Allison
2e1f727184 r5792: Added new parameter "inherit owner". If set on a share, the created file/directory
will be owned by the same uid as the containing directory. Doing this for directories
in a race-free mannor has only been tested on Linux (it depends on being able to open
a directory and then do a fchown on that file descriptor). If this functionality is
not available then the code silently downgrades to not changing the ownership of a
new directory. This new parameter (docs to follow) finally makes it possible to create
"drop boxes" on Samba, which requires all files within a directory to be commonly owned.
A HOWTO on how to use this will follow.
Jeremy.
2007-10-10 10:56:01 -05:00
Jeremy Allison
c43bae306a r5183: Ensure we correctly set the per-connection "case_sensitive" setting.
Rename dptrs_open to the more correct dirhandles_open.
Remove old #if 1.
Jeremy.
2007-10-10 10:55:32 -05:00
Jeremy Allison
0b04dd9d0c r5160: First cut at refactoring of directory code to handle non-wildcard
directory match more efficiently. Passes RAW-SEARCH under valgrind but needs more
testing (which I'll do later today :-).
Jeremy.
2007-10-10 10:55:30 -05:00
Jeremy Allison
cfa8150fd9 r5152: Restructure the directory handling code, stop using void * pointers
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.
2007-10-10 10:55:29 -05:00
Jeremy Allison
0af1d2f6f2 r5063: Shamelessly steal the Samba4 logic (and some code :-) for directory
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
2007-10-10 10:55:13 -05:00
Jeremy Allison
341771857f r2152: Fix for bug #1674, move the symlinks checks into reduce_name().
Jeremy.
2007-10-10 10:52:33 -05:00
Jeremy Allison
ba473a5802 r2076: Removed old dir caching code - not being used now we have the
statcache anyway. New dir caching will be done on nanosecond
timestamps.
Jeremy.
2007-10-10 10:52:30 -05:00
Gerald Carter
430cf63b91 r1570: merging changes from 3.0.5 2007-10-10 10:52:15 -05:00
Jeremy Allison
5e8237e306 r1115: Fix for #1427. Catch bad path errors at the right point. Ensure all
our pathname parsing is consistent.
Jeremy.
2007-10-10 10:51:56 -05:00
Jeremy Allison
b562fe9fbc r933: When using widelinks = no, use realpath to canonicalize the
connection path on connection create for the user. We'll be
checking all symlinked paths are below this directory.
Jeremy.
2007-10-10 10:51:50 -05:00
Jeremy Allison
e5438f0a84 r716: Fix for bugid #1345 (Macromedia Homesite cannot connect anymore after upgrade to 3.0.4).
Cause was premature optimization in unix_convert(). My fault, sorry.
Jeremy.
2007-10-10 10:51:35 -05:00
Jeremy Allison
a03b6a05e0 r656: Make widelinks use realpath(). Tidy up cases where we need to become a service.
Jeremy.
2007-10-10 10:51:33 -05:00
Jeremy Allison
578a508509 r570: Remove lots of globals to handle case issues - move them
to connection struct entries (as they should have been from
the start). Jerry, once you've cut over to 3.0.4 release
branch I'll add this to 3.0 also.
- Jerry cut over :-).
Jeremy.
2007-10-10 10:51:30 -05:00
Jeremy Allison
92c3ae3458 Several mb tidyups - getting ready to address the XXX_sub function.
Jeremy.
-
Jeremy Allison
6080186fc4 all_string_sub() is broken as it doesn't handle mb chars correctly (and
so breaks when substitution '/' and '\'). It's used by unix_clean_name(),
which is used by reduce_name, which is used by check_name() (phew!).
Now that we know all filenames passed to check_name() are in a "good"
format (no double slashes, all '\\' chars translated to '/' etc.) due
to the new check_path_syntax() we can avoid calling reduce_name unless
widelinks are denied. After this check-in I can fix all_string_sub() to
handle mb chars correctly as it won't be in the direct path in the
main path handling code.
Jeremy.
-
Jeremy Allison
c9f31fafed Use a common function to parse all pathnames from the wire. This allows
much closer emulation of Win2k3 error return codes.
Jeremy.
-
Jeremy Allison
f35e9a8b90 More tuning from cachegrind. Change most trim_string() calls to trim_char(0,
as that's what they do. Fix string_replace() to fast-path ascii.
Jeremy.
-
Alexander Bokovoy
c2689ed118 Prefix VFS API macros with SMB_ for consistency and to avoid problems with VFS_ macros at system side. We currently have one clash with AIX and its VFS_LOCK. Compiled and tested -- no new functionality or code, just plain rename of macros for yet-unreleased VFS API version. Needs to be done before a24 is out -
Alexander Bokovoy
91984ef5ca Fix VFS layer:
1. Finally work with cascaded modules with private data storage per module
2. Convert VFS API to macro calls to simplify cascading
3. Add quota support to VFS layer (prepare to NT quota support)

Patch by Stefan (metze) Metzemacher, with review of Jelmer and me
Tested in past few weeks. Documentation to new VFS API for third-party developers to follow
-
Jeremy Allison
4cd8b27671 Optimisation. We don't need to do 2 strlen's when we're setting the stat
struct in the correct place.
Jeremy.
-
Jeremy Allison
d48069ccd8 Fix nasty bug pointed out by samba-technical poster. If name is mangled
then we weren't always correctly detecting that it had a valid stat struct
and so might now return a 'file existed'. Finally realized this when installing
the W2K resource kit as a test case.
Jeremy.
-
Andrew Bartlett
10b53d7c6f Merge from HEAD:
- Make ReadDirName return a const char*.

 - Consequential changes from that

 - mark our fstring/pstring assumptions in function prototypes

Andrew Bartlett
-
Andrew Tridgell
fd3216dbcb merge from head -
Andrew Bartlett
3a7458f947 Merge from HEAD - make Samba compile with -Wwrite-strings without additional
warnings.  (Adds a lot of const).

Andrew Bartlett
-
Jeremy Allison
af80b033a5 Turns out with Win9x, we could occasionally return from unix_convert() given
a mangled name without a valid stat struct if the file existed. This would
then cause open_file_shared1() to erroneously think the file open was new,
thus not check for oplock break, thus causing a spurious EAGAIN reply to
the open on a file we already had kernel oplocked.... (phew - that was fun
to track down :-).
Jeremy.
-
Gerald Carter
65e7b5273b sync'ing up for 3.0alpha20 release -
Jelmer Vernooij
42615b945e Sync 3.0 branch with head -
Andrew Tridgell
03ac082dcb updated the 3.0 branch from the head branch - ready for alpha18 -
Andrew Tridgell
be23d87a17 This split the mangling code up to allow for the possibility of multiple
mangling implementation, selectable using "mangling method = " in smb.conf

It also tidies the interface a little, although it is still nasty.
-
Andrew Bartlett
ad8aa47057 Reintroduce the 2.2 name mangling code, until we get are more flexible solution.
Even for a hash/cache setup, this code needs some more work, in particular
it needs to use mangle_get_prefix() etc and to move to unicode internals.

Andrew Bartlett
-
Tim Potter
6a58c9bd06 Removed version number from file header.
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
-
Jeremy Allison
9f2b6a0742 Fixed the bug with descending into mangled directories.
The problem is that name_map_mangle can *change* the length of a patchname.
Ensure that all the character pointer messing about can cope with changing
sizes of components. This code is too ugly to live.....
This also needs *lots* of testing.
Jeremy.
-
Simo Sorce
06a7c28ea1 change some more functions to the new mangle interface. -
Tim Potter
2d0922b0ea Removed 'extern int DEBUGLEVEL' as it is now in the smb.h header. -
Andrew Tridgell
36af1c0dc4 - don't try to print pointers
- removed some unused mangling code
-
Andrew Tridgell
c41fc06376 strchr and strrchr are macros when compiling with optimisation in gcc, so we can't redefine them. damn. -
Andrew Tridgell
debb471267 The big character set handling changeover!
This commit gets rid of all our old codepage handling and replaces it with
iconv. All internal strings in Samba are now in "unix" charset, which may
be multi-byte. See internals.doc and my posting to samba-technical for
a more complete explanation.
-
Jeremy Allison
0be41d5158 Merge of new 2.2 code into HEAD (Gerald I hate you :-) :-). Allows new SAMR
RPC code to merge with new passdb code.
Currently rpcclient doesn't compile. I'm working on it...
Jeremy.
-
Jeremy Allison
e18c104ee3 Sorry Gerald, I think the original code was better (plus safer as I'm sure
it's working :-).
Jeremy.
-
Gerald Carter
8938dc1831 subtle bug where files which missed the stat_cache but were added
to the cache during the look returned a blank stat struct.  Made
weird occurrences such as...

   $ smbclient //pogo/print$
   smb:\ > cd w32x86
     ERROR: Invalid path
   smb:\ > cd w32x86

   smb:\w32x86\ >
-
Jeremy Allison
7055fa0bc4 Fixed *very* subtle statcache bug where invalid stat state could be
being used if last component lookup failed, but was found in the directory
scan.
Jeremy.
-