1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-17 02:05:21 +03:00

674 Commits

Author SHA1 Message Date
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
Volker Lendecke
bf219447a3 r20846: Before this gets out of control...
This add a struct event_context and infrastructure for fd events to smbd. This
is step zero to import lib/events.

Jeremy, I rely on you to watch the change in receive_message_or_smb()
closely. For the normal code path this should be the only relevant change. The
rest is either not yet used or is cosmetic.

Volker
(This used to be commit cd07f93a8aecb24c056e33b1ad3447a41959810f)
2007-10-10 12:17:13 -05:00
Jeremy Allison
ab46f9cdd2 r20742: Rename chkpth -> checkpath for sanity's sake :-).
Start removing unneeded "BOOL ok" from this reply.c
(this logic is old, old, old..... :-).
Jeremy.
(This used to be commit 3d52268095c605a80dfcd371769198a332baa0a5)
2007-10-10 12:17:07 -05:00
Volker Lendecke
7a915ec3a6 r20700: In the main processing loop we select() on the fam socket. If it fires, it
might be possible that we hang in the receive_smb() although that socket is
not the reason for the select() to return.

This immediately reacts to the fam socket to become readable, and goes into
the select loop again. This fixes delays in files showing up in Windows.

Jeremy, James please review this and merge to 3_0_24 if appropriate.

Thanks,

Volker
(This used to be commit c846153b2ed2f9aca82491888e391ccbe239e88a)
2007-10-10 12:17:04 -05:00
Volker Lendecke
ab7fc62edf r20432: Apply some const
(This used to be commit 22163fee595251d4ea92279d88a1e8525188c620)
2007-10-10 12:16:49 -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
Volker Lendecke
0be131725f r17569: Make 'max smbd processes' more robust. Counting on the child to decrement a
tdb entry is not the most reliable way to count children correctly.

This increments the number of children after a fork and decrements it upon
SIGCLD. I'm keeping a list of children just for consistency checks, so that we
at least get a debug level 0 message if something goes wrong.

Volker
(This used to be commit eb45de167d24d07a218307ec5a48c0029ec097c6)
2007-10-10 11:38:39 -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
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
ce61fb21d9 r16397: Fix Klocwork #11767 and drasticly simplify the
logic in smbd/process.c. All interested (Volker,
Jerry, James etc). PLEASE REVIEW THIS CHANGE.
The logic should be identical but *much* easier
to follow and change (and shouldn't confuse Klockwork :-).
Jeremy.
(This used to be commit d357f8b33594472ffa78d0a112accccc2a8b1fe7)
2007-10-10 11:18:52 -05:00
Volker Lendecke
b3a5633de0 r15495: current_user_info is not referenced in process.c
(This used to be commit 8cedbbfbcf137b6a0c0323572982e9cb25648b0b)
2007-10-10 11:16:54 -05:00
Jeremy Allison
010c725b36 r15088: Remove all time() and gettimeofday() calls out of the mainline
packet processing code. Only do these when needed (ie. in the
idle timeout code). We drop an unneccessary global here too.
Jeremy.
(This used to be commit 8272a5ab0605fcf95527143c4f909aa1008e5b94)
2007-10-10 11:16:22 -05:00
Jeremy Allison
cc203f3e59 r15084: Try and squeeze more out of the non-read/write code path.
Jeremy.
(This used to be commit 23dcff4d50d1d35b7ddee0d0cb79c16a312f179c)
2007-10-10 11:16:22 -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
eecdc6c956 r15022: Fix core dumps on normal server exit.
Jeremy.
(This used to be commit 13c3abf03187f84874b5754b54de5d3fe2dea188)
2007-10-10 11:15:57 -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
James Peach
4fa5559800 r14898: This change is an attempt to improve the quality of the information that
is produced when a process exits abnormally.

First, we coalesce the core dumping code so that we greatly improve our
odds of being able to produce a core file, even in the case of a memory
fault. I've removed duplicates of dump_core() and split it in two to
reduce the amount of work needed to actually do the dump.

Second, we refactor the exit_server code path to always log an explanation
and a stack trace. My goal is to always produce enough log information
for us to be able to explain any server exit, though there is a risk
that this could produce too much log information on a flaky network.

Finally, smbcontrol has gained a smbd fault injection operation to test
the changes above. This is only enabled for developer builds.
(This used to be commit 56bc02d64498eb3faf89f0c5452b9299daea8e95)
2007-10-10 11:15:53 -05:00
Volker Lendecke
49ecd176ee r14559: Oplocks have changed, process_smb can be static again
(This used to be commit 19e9bc03f81d8d000b683cf5c5f478ba25ddeb0d)
2007-10-10 11:15:37 -05:00
Jeremy Allison
ff122b308b r14229: Something Coverity hasn't caught (yet) but I've gotten
sensitive to null derefs. get_timed_events_timeout()
can potentially return NULL. Cope with this.
Jeremy.
(This used to be commit 04838078723613628b298b7a87622df30432cf64)
2007-10-10 11:15:18 -05:00
Gerald Carter
fb5362c069 r13571: Replace all calls to talloc_free() with thye TALLOC_FREE()
macro which sets the freed pointer to NULL.
(This used to be commit b65be8874a2efe5a4b167448960a4fcf6bd995e2)
2007-10-10 11:10:14 -05:00
Jeremy Allison
5c149702b0 r13498: Fix the kernel oplocks code for IRIX. Should fix #3515.
Jeremy.
(This used to be commit 006cf9c3654e7f18e01b75a5fe87798df862d26a)
2007-10-10 11:10:07 -05:00
James Peach
8fbdd112b2 r13482: Push the FAM notification file descriptor into the select
set to avoid unnecessary polling.
(This used to be commit 1dce945ccbba25092cf54890301c8f78f8aede33)
2007-10-10 11:10:05 -05:00
Gerald Carter
0af1500fc0 r13316: Let the carnage begin....
Sync with trunk as off r13315
(This used to be commit 17e63ac4ed8325c0d44fe62b2442449f3298559f)
2007-10-10 11:06:23 -05:00
Gerald Carter
54abd2aa66 r10656: BIG merge from trunk. Features not copied over
* \PIPE\unixinfo
* winbindd's {group,alias}membership new functions
* winbindd's lookupsids() functionality
* swat (trunk changes to be reverted as per discussion with Deryck)
(This used to be commit 939c3cb5d78e3a2236209b296aa8aba8bdce32d3)
2007-10-10 11:04:48 -05:00
Jeremy Allison
c46b4cabf4 r10188: 64-bit warning fix.
Jeremy.
(This used to be commit 3b8a8e2947e4d956766e97bea8fa9c25210d1c19)
2007-10-10 11:03:36 -05:00
Jeremy Allison
3dae794632 r9126: Fix valgrind bug Volker found in interaction with new aio buffer
flipping and oplocks.
Jeremy.
(This used to be commit a18c5ff3eada93e46da3f7cbd326b8dceb72e147)
2007-10-10 11:00:26 -05:00
Volker Lendecke
880d62843a r8798: Save one system call per SMB. smb_run_idle_events right now is only used to
close idle pdb_ldap connections, and from my point of view this can wait until
normal timeout handling, this does not need to be done per client request.

Volker
(This used to be commit 404b817d7294fbea64f0fca019406c5c7458e386)
2007-10-10 11:00:17 -05:00
Jeremy Allison
a344155b8d r8782: Fix bug #2918. The problem was using Inbuffer to push a deferred open message onto the queue
when we're in a chained message set - we're actually processing a different
buffer then. Added current_inbuf as a static inside smbd/process.c to ensure the
correct message gets pushed and processed.
Jeremy.
(This used to be commit ccef7581717bff6145ffc386d5be24d6f42634cb)
2007-10-10 11:00:16 -05:00
Jeremy Allison
f2f55d703d r7963: Add aio support to 3.0.
Jeremy.
(This used to be commit 1de27da47051af08790317f5b48b02719d6b9934)
2007-10-10 10:58:05 -05:00
Simo Sorce
7ebd74e6c5 r7961: randomize reloading so that smbds do not pverload cupsd
by reloading printers all at the same time.
						sss
(This used to be commit da227d5f4311c84a12a4e2a9fd510328268af4b3)
2007-10-10 10:58:05 -05:00
Jeremy Allison
19ca97a70f r7882: Looks like a large patch - but what it actually does is make Samba
safe for using our headers and linking with C++ modules. Stops us
from using C++ reserved keywords in our code.
Jeremy
(This used to be commit 9506b8e145982b1160a2f0aee5c9b7a54980940a)
2007-10-10 10:58:00 -05:00
Jeremy Allison
a59149b86a r7550: Steal the correct error return for invalid TID on NTcreateX from Samba4
(thanks tridge !).
Jeremy.
(This used to be commit 0288823aacdbec6ba99e944c9f06f051e55c64b8)
2007-10-10 10:57:13 -05:00
Volker Lendecke
b6fb046249 r7344: Correctly return if malloc fails.
Jeremy, you might want to check this.

Thanks,

Volker
(This used to be commit 560f9d37353f6b886996144215f99e06f2513007)
2007-10-10 10:57:06 -05:00
Jeremy Allison
f60ad8ded6 r6346: Add a counter for the number of SMB operations per connection/file.
You will need to do a make clean after SVN updating this. Next will
come a smbcontrol message to dump this info. This should be interesting
to profile client activity.
Jeremy.
(This used to be commit 743174da86ac724fc9ee3d4b7bd9a2a97a234bd8)
2007-10-10 10:56:37 -05:00
Herb Lewis
978ca84860 r6225: get rid of warnings from my compiler about nested externs
(This used to be commit efea76ac71412f8622cd233912309e91b9ea52da)
2007-10-10 10:56:30 -05:00
Jeremy Allison
0557c6cba2 r6172: Tidy up error processing significantly. Remove unix_ERR_XXX global nastyness.
Jeremy.
(This used to be commit d3379fe61bb934082b51a37adac232a96bafcf46)
2007-10-10 10:56:27 -05:00
Gerald Carter
d097ea4905 r4539: patch from Rob -- adding real printcap name cache function to speed up printcap reloads
(This used to be commit 1cad5250932b963c2eb9b775221b13db386d601b)
2007-10-10 10:53:46 -05:00
Jeremy Allison
32f9ee7c20 r4190: When changing length calculations, get them right......
Jeremy.
(This used to be commit 63cfa904ad186bb9d793584d319bd4a7107cc8b9)
2007-10-10 10:53:37 -05:00
Jeremy Allison
5b713a206b r4186: Fix client & server to allow 127k READX calls.
Jeremy.
(This used to be commit 831cb21a874601e4536c2cf76c5351e1d0defcb5)
2007-10-10 10:53:36 -05:00
Jeremy Allison
acf9d61421 r4088: Get medieval on our ass about malloc.... :-). Take control of all our 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-10 10:53:32 -05:00
Jeremy Allison
6219c997cb r1936: Fix bug noticed by Steve - ensure extended security bit is on only
if we negotiated extended security. Do not merge for 3.0.6. Works
with W2K but needs further testing.
Jeremy.
(This used to be commit 284689aa18d2711a9041598cdf490359466f7f77)
2007-10-10 10:52:24 -05:00
Jeremy Allison
3e0f586298 r1263: Make "defer sharing violations" a global parameter.
Jeremy.
(This used to be commit 42cdeccc36dc5f4bd133b84d4eaeb76f42f8043b)
2007-10-10 10:52:04 -05:00
Jeremy Allison
2acd084866 r1154: Change default setting for case sensitivity to "auto". If set to auto
then is the client supports it (current clients supported are Samba and
CIFSVFS - detected by the negprot strings "Samba", "POSIX 2" and a bare
"NT LM 0.12" string) then the setting of the per packet flag smb_flag
FLAG_CASELESS_PATHNAMES is taken into account per packet. This allows
the linux CIFS client to use Samba in a case sensitive manner.
Additional command in smbclient "case_sensitive", toggles the
flag in subsequent packets.
Docs to follow.
Jeremy.
(This used to be commit cf84c0fe1a061acc0313f7db124b8f947cdf623d)
2007-10-10 10:51:57 -05:00
Jeremy Allison
effd4a3385 r1089: Removed spurious oplock message in deferred open processing.
Fix smb signing sequence counts.
Jeremy.
(This used to be commit 7e2a5c36614282b6bd50b60360f443549426dd4b)
2007-10-10 10:51:54 -05:00
Jeremy Allison
2fc57c9a2c r1085: Now it's had some proper user testing, merge in the deferred open 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)
2007-10-10 10:51:54 -05:00
Jeremy Allison
a6f5c88563 r998: Arrrgggh. Do it right this time :-(.
Jeremy.
(This used to be commit 7ac7cd41629779c877b62ebd54b965980f4dc7bf)
2007-10-10 10:51:53 -05:00
Jeremy Allison
b7ac82294f r996: Fix error in change to queuing code (dlink).
Jeremy.
(This used to be commit 6bd6359090b59d48370e16bb0ddc267a51b361c7)
2007-10-10 10:51:53 -05:00
Jeremy Allison
03d4344432 r971: Auto remove store dos attributes if underlying filesystem
doesn't support EA's.
Jeremy.
(This used to be commit 9de6b25c9e9abe982e21b0229df520802cafbfd8)
2007-10-10 10:51:51 -05:00
Herb Lewis
99d8aa8b17 r814: conn is 0 during ioctl (at least during smbtorture IOCTL test)
fix smbd panic
(This used to be commit 61da0bb1f6ea22df78ea7bd22a740c5868f62591)
2007-10-10 10:51:47 -05:00
Gerald Carter
67d474861d r799: BUG 1259 -- add 'printcap cache time' patch from Lars
(This used to be commit fac90741139b953d0e88d050dd457657f0b9c9f3)
2007-10-10 10:51:46 -05:00