1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-24 15:17:06 +03:00

614 Commits

Author SHA1 Message Date
Herb Lewis
109bebe1f8 r21002: Get rid of unused macros - merge change from 3_0_24
(This used to be commit 9d23cf0cc4a8974bf0cf74b219a1138383083360)
2007-10-10 12:17:25 -05:00
Volker Lendecke
d5206610cd r20931: This changes the notify infrastructure from a polling-based to an event-driven
based approach. The only remaining hook into the backend is now

	void *(*notify_add)(TALLOC_CTX *mem_ctx,
			    struct event_context *event_ctx,
			    files_struct *fsp, uint32 *filter);

(Should we put this through the VFS, so that others can more easily plug in?)

The trick here is that the backend can pick filter bits that the main smbd
should not handle anymore. Thanks to tridge for this idea.

The backend can notify the main smbd process via

void notify_fsp(files_struct *fsp, uint32 action, char *name);

The core patch is not big, what makes this more than 1800 lines are the
individual backends that are considerably changed but can be reviewed
one by one.

Based on this I'll continue with inotify now.

Volker
(This used to be commit 9cd6a8a82792b7b6967141565d043b6337836a5d)
2007-10-10 12:17:21 -05:00
Jeremy Allison
fd37f98158 r20873: Some correctness fixes w.r.t. Samba4 torture BASE-DELETE.
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-10 12:17:16 -05:00
Jeremy Allison
83eb0d1d6d r20844: Somewhat radical change - this may break the build (I will
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-10 12:17:12 -05:00
Jeremy Allison
916342d04b r20781: Fix a couple of paths found by Volker where we weren't
correctly handling deferred opens.
Jeremy.
(This used to be commit e47b79d1cef279a1de1128d114d423c1fd2b1e8d)
2007-10-10 12:17:08 -05:00
Jeremy Allison
dd5e9e2ae7 r20721: Fix the search unix_convert error returns. Only open
to go...
Jeremy.
(This used to be commit 89f03a8db40365f99c6755ff19a4bfbf8d1bd316)
2007-10-10 12:17:06 -05:00
Jeremy Allison
db0ad252a0 r20718: Sync up the filename path parsing changes from SAMBA_3_0_24.
The only difference between the two trees now w.r.t file
serving are the changes to smbd/open.c in this branch I need
to review.
Jeremy.
(This used to be commit f4474edf6a0c71001dbd01429ef70bafad6abd74)
2007-10-10 12:17:04 -05:00
Volker Lendecke
d10af02226 r20612: A checkin I've wanted to do for ages: For bad_path==False set_bad_path_error
is equivalent to UNIX_ERROR. Expand the last reference. Lets see if I can kill
that as well :-)

Volker
(This used to be commit 794d5d38f19601bb5b30b965b41b844aacf1caeb)
2007-10-10 12:16:58 -05:00
Volker Lendecke
283c690e6e r20611: All but one callers to set_bad_path_error have had the bad_path==True argument
being handled further up.

Volker
(This used to be commit 358673c36697a16aa87f9cebbace34abf16ed28e)
2007-10-10 12:16:58 -05:00
Volker Lendecke
90149315ea r20608: ENOENT->NT_STATUS_OBJECT_NAME_NOT_FOUND is covered in the standard unix error mapping table
(This used to be commit 816c19aaeb812a94fd5669174c9beec60ce1a73f)
2007-10-10 12:16:58 -05:00
Volker Lendecke
9985f25f00 r20496: Some changes to make Samba3 the RAW-OPEN test. Checking in to both 3_0 and
3_0_24 because I was explicitly asked to, although this needs close
review. Jeremy, I'm sure you will check this thoroughly :-)

In reply_open_and_X the separate "size" variable kills the calculation of the
SPARSE flag returned to the client in the attrib field. In getpathinfo we do
it correctly, and RAW-OPEN (correctly) complains about the difference.

Add the "set the write time" to mknew and create.

For trans2open we were missing the "ofun == 0" ->
NT_STATUS_OBJECT_NAME_COLLISION case, and we dropped the status returned in
favor of ACCESS_DENIED once too many.

Last change is a fix to trans2open: We were returning the attributes given by
the client, not the attributes of the new file.

Volker
(This used to be commit 84e6889632c7f98a7cb37036b0acdf538d50d16c)
2007-10-10 12:16:53 -05:00
Volker Lendecke
6d1607f4d7 r20424: No, we do not have to do that here :-)
(This used to be commit 49a463a97a4f800977ed3a657714e7f3b17bbf21)
2007-10-10 12:16:48 -05:00
Jeremy Allison
a77b3f38b9 r20412: Placeholder to remind me to write a torture test
for this error code.
Jeremy.
(This used to be commit 71b868611671a6c9275fce153794a0ccc150551f)
2007-10-10 12:16:48 -05:00
Jeremy Allison
b26a9ad9df r20363: Fix any possible valgrind errors in srvstr_get_XX or srvstr_pull_XX
by ensuring we pass in a valid src_len (or zero when appropriate).
Volker is correct in that this is a *horrible* interface and he is
now free to generally clean it up everywhere :-). Go for it Volker !
Jeremy.
(This used to be commit cd991fb839994dd29dc790b655f5597fa1e12843)
2007-10-10 12:16:44 -05:00
Jeremy Allison
ae7526fd55 r20362: Fix valgrind issues where we may read params
before checking length. Found by Volker.
Jeremy.
(This used to be commit 683c5fce6896236a60145f6d3970566503c39163)
2007-10-10 12:16:44 -05:00
Volker Lendecke
8cd9636458 r20356: Consolidate the calls to parent_dirname() per open to one.
This involved passing the dirname as argument to a few routines instead of
calling parent_dirname() deep down.

Volker
(This used to be commit 7977fd78652897bb7d4db1c21c5749043428f911)
2007-10-10 12:16:43 -05:00
Volker Lendecke
57d11622b5 r20336: Fix some memleaks in trans2open and simplify trans2mkdir a bit: We now have
tmp_talloc_ctx().

Volker
(This used to be commit 165d28f03a82a1a07d0f86c0d5de4a785ea5c7f0)
2007-10-10 12:16:42 -05:00
Volker Lendecke
6988778850 r20313: Make trans2_mkdir also go through open_directory for all the fancy inherit_acl
stuff & friends.

Survives raw-mkdir. I'll activate that tomorrow when all build farm machines
have picked up the changed samba4 torture test.

Volker
(This used to be commit 37e7a3f35f48f5689591c75d41d32c43d3b9b853)
2007-10-10 12:16:41 -05:00
Volker Lendecke
f023f86709 r20312: Fix a memleak
(This used to be commit 20d3bc3549ef89a6405e186b87b50027d2321ac0)
2007-10-10 12:16:40 -05:00
Volker Lendecke
f871861673 r20310: We've checked for EA's and support for them further up already.
Volker
(This used to be commit 9c00ce0bbc809903b5516ef9ea62db13233ea2d4)
2007-10-10 12:16:40 -05:00
James Peach
5bb49b08f3 r20237: Replace exit_server with exit_server_cleanly where appropriate. All
send_smb failures should be clean exits. All times when we exit as
a matter of policy should also be clean exits.
(This used to be commit d6382092e72120a3c89ffe81975e8898d454bf06)
2007-10-10 12:16:34 -05:00
Volker Lendecke
9933b596d1 r20228: Bring the calling conventions of inherit_access_acl and change_owner_to_parent
a bit closer together: Move the lp_inherit_perms() check into the callers.

Volker
(This used to be commit 0874093e5fff480d8ec442072318525079add633)
2007-10-10 12:16:34 -05:00
Jeremy Allison
d29722e378 r20178: Ensure we allocate the intermediate trans structs
off conn->mem_ctx, not the null context so we can
safefy free everything on conn close. Should fix
possible memleak.
Jeremy.
(This used to be commit b33bde7b39953e171f05cdb53b6345ee3a9ec6e7)
2007-10-10 12:16:29 -05:00
Stefan Metzmacher
258a465e20 r18605: sync dlinklist.h with samba4, that means DLIST_ADD_END()
and DLIST_DEMOTE() now take the type of the tmp pointer
not the tmp pointer itself anymore.

metze
(This used to be commit 2f58645b7094e81dff3734f11aa183ea2ab53d2d)
2007-10-10 11:51:59 -05:00
Jeremy Allison
315ad641c3 r18547: Add in fixes to mangling dir code - ensure don't
look in the paths for wcard - always read directly
from incoming packet.
Jeremy.
(This used to be commit 3745a1af4ea9262fcda28931539fa6ab4c9060d1)
2007-10-10 11:51:48 -05:00
Volker Lendecke
9230c659f6 r17835: Fix Coverity bugs 306, 309, 310.
Jeremy, you might want to look at the trans2 one.

Volker
(This used to be commit d727fc681c073a1b09accd31a07341b58e10eebb)
2007-10-10 11:38:52 -05:00
Jeremy Allison
a64925ddff r17800: Start using struct timespec internally for file times
on the wire. This allows us to go to nsec resolution
for systems that support it. It should also now be
easy to add a correct "create time" (birth time)
for systems that support it (*BSD). I'll be watching
the build farm closely after this one for breakage :-).
Jeremy.
(This used to be commit 425280a1d23f97ef0b0be77462386d619f47b21d)
2007-10-10 11:38:48 -05:00
Volker Lendecke
f3828606bd r17604: Fix a bug caught by g++.
Jeremy, please check this!

Volker
(This used to be commit 8117a7b3bf3f273dd018c42864b3136dec47ec79)
2007-10-10 11:38:42 -05:00
Jeremy Allison
6fd4813ece r17541: When returning a trans2 request, if the "max data
bytes returned" is less than the amount we want
to send, return what we can and set STATUS_BUFFER_OVERFLOW
(doserror ERRDOS,ERRbufferoverflow). Required by
OS/2 to handle EA's that are too large. It's hard
to test this in Samba4 smbtorture as the max data
bytes returned is hard coded at 0xffff (as it is
in the Samba3 client libraries also). I used a
custom version of Samba4 smbtorture to test this
out. Might add a "max data bytes" param to make
this testable in the build farm. Confirmed by
"Guenter Kukkukk (sambaos2)" <sambaos2@kukkukk.com>
and Andreas Taegener <atsamba11@eideltown.de>
that this fixes the issue.
Jeremy.
(This used to be commit ff2f1202b76991a404dae8df17c36f8135c8dc51)
2007-10-10 11:38:38 -05:00
Volker Lendecke
e7952e9c14 r17347: Some C++ warnings -- 271 left
(This used to be commit 641dac4f85c0e00484d90726bea1a4cb58c8235c)
2007-10-10 11:38:27 -05:00
Volker Lendecke
e23781b3b3 r17316: More C++ warnings -- 456 left
(This used to be commit 1e4ee728df7eeafc1b4d533240acb032f73b4f5c)
2007-10-10 11:38:25 -05:00
Jeremy Allison
b737f26764 r17105: Fix the race Volker found - we had a non-locked
region between detecting a pending lock was needed
and when we added the blocking lock record. Make
sure that we hold the lock over all this period.
Removed the old code for doing blocking locks on
SMB requests that never block (the old SMBlock
and friends).
Discovered something interesting about the strange
NT_STATUS_FILE_LOCK_CONFLICT return. If we asked
for a lock with zero timeout, and we got an error
of NT_STATUS_FILE_LOCK_CONFLICT, treat it as though
it was a blocking lock with a timeout of 150 - 300ms.
This only happens when timeout is sent as zero and
can be seen quite clearly in ethereal. This is the
real replacement for old do_lock_spin() code.
Re-worked the blocking lock select timeout to correctly
use milliseconds instead of the old second level
resolution (far too coarse for this work).
Jeremy.
(This used to be commit b81d6d1ae95a3d3e449dde629884b565eac289d9)
2007-10-10 11:38:12 -05:00
Jeremy Allison
8d6c41a75a r17100: Ooops. Fix the build...
Jeremy.
(This used to be commit b21ca265a25b3d1e4f154ce0ee4b8757b41cf910)
2007-10-10 11:38:11 -05:00
Jeremy Allison
e1da1fcf12 r17098: Samba3 now cleanly passes Samba4 RAW-LOCK torture
test. Phew - that was painful :-). But what it means
is that we now implement lock cancels and I can add
lock cancels into POSIX lock handling which will fix
the fast/slow system call issue with cifsfs !
Jeremy.
(This used to be commit f1a9cf075b87c76c032d19da0168424c90f6cb3c)
2007-10-10 11:38:11 -05:00
Jeremy Allison
67854e8439 r16990: Fix bug #3921 spotted by jason@ncac.gwu.edu. Correctly
obey blocking/non-blocking request for POSIX locks.
Jeremy.
(This used to be commit f62c01316ef3ce0351f8b34229307a75d8f9f156)
2007-10-10 11:19:16 -05:00
Jeremy Allison
fbdcf2663b 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.
(This used to be commit 9dafb7f48ca3e7af956b0a7d1720c2546fc4cfb8)
2007-10-10 11:19:14 -05:00
Jeremy Allison
192062c4a6 r16789: Fix bug #3909, when using ea's getting a directory tries to
read ea's from an msdfs link. Stop it from doing that.
Jerry please merge to 3.0.23.
Jeremy.
(This used to be commit 95e5ace6b4f348a3244b6a3ea0fd8badf55271f5)
2007-10-10 11:19:10 -05:00
Jeremy Allison
17621ea080 r16309: Fix Klocwork #1596. Check for NULL on talloc.
Jeremy.
(This used to be commit 34b6b6723b1c87e19b0a51ef785a614d86bd5cef)
2007-10-10 11:17:32 -05:00
Jeremy Allison
87967b90c4 r16280: Start fixing up gcc4 -O6 warnings on an x86_64 box. size_t != unsigned
int
in a format string.
Jeremy.
(This used to be commit 45d5cad8c2438c032d9f11c62a50a04d0637bf6c)
2007-10-10 11:17:30 -05:00
Gerald Carter
b32d2ecf9c r16219: BUG 3836, 3837, 3004: compile warning fixes from Jason Mader.
(This used to be commit 6c1f1c091f5e87bf9464fe8ad7eb2cb683819a62)
2007-10-10 11:17:26 -05:00
Jeremy Allison
088c571df8 r16112: Added Volker's fix for extra odd byte at the end
of UNIX_BASIC infolevel. Checked client implementations
(cifsfs and libsmb) and they ignore it. Thanks Volker.
Jeremy.
(This used to be commit 6cd1cb5c9deba2aa0d7a3251c8142834cbaba6d1)
2007-10-10 11:17:20 -05:00
Jeremy Allison
7361c7a883 r15958: Make us pass RAW-OPLOCK with kernel oplocks off.
This allows a requestor to set FORCE_OPLOCK_BREAK_TO_NONE
to ensure we don't break to level 2. Fixed a couple
of resource leaks in error paths in open_file_ntcreatex.
Jeremy.
(This used to be commit c7c9adcce7f13d01445f31b07fb28a76f0a1d6df)
2007-10-10 11:17:14 -05:00
Jeremy Allison
41f139c0bb r15949: Patch for bug #3308 to stop us returning duplicate
mid replies on path based set-eof trans2 calls.
Needs modification for HEAD (as in head open_file_ntcreateX
properly returns NTSTATUS - I'll fix this tomorrow my
time). Secondly it still fails the Samba4 RAW-OPLOCK
smbtorture because of an interesting case. Our oplock
code always returns "break to level 2" if it can.
In this case (path-based set-eof or set-allocation size
on an exclusive oplocked file) W2K3 always sends a
break-to-none. We send the break to none (from level2)
after we've done the write for eof or allocation size.
I need to work out some way of telling our break code
to always break to none (might need to extend the message
field).
Jeremy.
(This used to be commit ad9895c654f400e242adcd4099f7cd004521ee92)
2007-10-10 11:17:14 -05:00
Jeremy Allison
803eed1062 r15936: Fix memory leak on error exit path. Trying to
track down #3308.
Jeremy.
(This used to be commit e39c11c91153c1ed547bc635d02769a1cdf3ecc0)
2007-10-10 11:17:14 -05:00
James Peach
4d55a81958 r15450: Change profiling data macros to use stack variables rather than
globals. This catches mismatched start/end calls and removes
the need for special nested profiling calls.
(This used to be commit ee750498812190edd3ec52ca3c750258f3b8a97a)
2007-10-10 11:16:47 -05:00
Volker Lendecke
1ca61f4748 r15266: Fix bug 3720. I wonder why -O1 compiles did not catch this...
Thanks to Jason Mader for reporting this.

Volker
(This used to be commit 3e616c3272ba76a2d135f7c51ceb44461ad165ad)
2007-10-10 11:16:30 -05:00
Volker Lendecke
262ffd9750 r15035: It seems that many preprocessors do not like comments in macro args..
(This used to be commit efc833dcba052e52c46eeba71a1ebe248be9cb05)
2007-10-10 11:15:58 -05:00
Jeremy Allison
fc13f28417 r15030: On a performace hunt... Remove as many extraneous
memset's as possible.
Jeremy.
(This used to be commit 1217ed392b75aa8bfefa9c3f1ec5fa3bba841ee0)
2007-10-10 11:15:58 -05:00
Jeremy Allison
22dbd67708 r15018: Merge Volker's ipc/trans2/nttrans changes over
into 3.0. Also merge the new POSIX lock code - this
is not enabled unless -DDEVELOPER is defined.
This doesn't yet map onto underlying system POSIX
locks. Updates vfs to allow lock queries.
Jeremy.
(This used to be commit 08e52ead03304ff04229e1bfe544ff40e2564fc7)
2007-10-10 11:15:57 -05:00
Jeremy Allison
876f2deb3a r14986: Fix OS/2 directory delete bug found by kukks.
(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-10 11:15:55 -05:00