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

40 Commits

Author SHA1 Message Date
Rusty Russell
d925b327f4 tdb_compat: Higher level API fixes.
My previous patches fixed up all direct TDB callers, but there are a
few utility functions and the db_context functions which are still
using the old -1 / 0 return codes.

It's clearer to fix up all the callers of these too, so everywhere is
consistent: non-zero means an error.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-06-20 11:18:35 +02:00
Andrew Bartlett
ad0a07c531 s3-talloc Change TALLOC_ZERO_P() to talloc_zero()
Using the standard macro makes it easier to move code into common, as
TALLOC_ZERO_P isn't standard talloc.
2011-06-09 12:40:08 +02:00
Günther Deschner
d8cfca3a9b s3: only include tdb headers where needed.
Guenther
2011-05-06 10:48:10 +02:00
Andrew Bartlett
1475013963 lib/util Move source3 tdb_wrap_open() into the common code.
This #if _SAMBA_BUILD == 3 is very unfortunate, as it means that in
the top level build, these options are not available for these
databases.  However, having two different tdb_wrap lists is a worse
fate, so this will do for now.

Andrew Bartlett
2011-05-06 07:51:24 +02:00
Jeremy Allison
02af307585 More simple const fixes. 2011-05-05 23:56:07 +02:00
Günther Deschner
ab36d597e7 s3-messages: make ndr_messaging.h part of messages.h.
Guenther
2011-03-30 01:13:09 +02:00
Günther Deschner
b2af281e50 s3-messages: only include messages.h where needed.
Guenther
2011-03-30 01:13:09 +02:00
Günther Deschner
8c24ebf371 s3: include smbd/smbd.h where needed.
Guenther
2011-03-30 01:13:08 +02:00
Günther Deschner
0e771263ee s3-includes: only include system/filesys.h when needed.
Guenther
2011-03-30 01:13:07 +02:00
Jeremy Allison
f98d217514 Change to using TDB_INCOMPATIBLE_HASH (the jenkins hash) on all
TDB_CLEAR_IF_FIRST tdb's. For tdb's like gencache where we open
without CLEAR_IF_FIRST and then with CLEAR_IF_FIRST if corrupt
this is still safe to use as if opening an existing tdb the new
hash will be ignored - it's only used on creating a new tdb not
opening an old one.

Jeremy.
2010-09-27 17:18:54 -07:00
Volker Lendecke
3b2efdc7d7 s3: Remove talloc_autofree_context() from notify_internal_parent_init() 2010-09-26 17:36:40 +02:00
Günther Deschner
7a05ca2c9c s3-build: use dbwrap.h only where needed.
Guenther
2010-08-26 00:25:55 +02:00
Jelmer Vernooij
b8268cf7b0 s3: Remove use of iconv_convenience. 2010-05-18 11:45:31 +02:00
Günther Deschner
c6ebab846d s3: only include gen_ndr headers where needed.
This shrinks include/includes.h.gch by the size of 7 MB and reduces build time
as follows:

ccache build w/o patch
real    4m21.529s
ccache build with patch
real    3m6.402s

pch build w/o patch
real    4m26.318s
pch build with patch
real    3m6.932s

Guenther
2010-05-06 00:22:59 +02:00
Christian Ambach
96ae3ee803 fix a segfault in the notify subsystem
When the notify_array cannot be loaded correctly,
do not keep the half-baked parsing results in the global variable.

This can lead to segfaults next time notify_load is entered and
the seqnum has not changed. This has been seen in a case
where mixed smbd versions were running in a CTDB cluster
(versions with and w/o commit c216d1e6 that changed the
notify_entry structure).
There will be missed notifications until all smbds are at the
same software level, but this should be acceptable and is better
than crashing and interrupting client operations.

This fix cleans up the notify_array, removes the unparseable data
from the TDB and returns a fresh notify_array that can be worked
with.

The NDR_PRINT_DEBUG had to be moved to only be called when the
parsing succeeded, it was seen to cause additional segfaults.

The status variable is intentionally left to NT_STATUS_OK to not
make callers abort and report errors to the clients and make them
disconnect.

Signed-off-by: Christian Ambach <christian.ambach@de.ibm.com>
2010-04-06 14:09:06 +02:00
Volker Lendecke
6392eaf6a3 s3: Add a comment to notify_internal_parent_init, this is pretty confusing 2010-03-25 16:46:23 +01:00
Volker Lendecke
ed189459b9 s3: Make sure our CLEAR_IF_FIRST optimization works for the notify tdbs
The notify tdb files are opened at tconX time, which leads to one fcntl lock
for CLEAR_IF_FIRST detection per smbd. This opens the tdbs in the parent and
holds it, so that tdb_reopen_all correctly catches the CLEAR_IF_FIRST bit.
2010-03-25 16:40:44 +01:00
Andrew Tridgell
3f0898a9f5 s3-smbd: convert lanman and notify code to TYPESAFE_QSORT() 2010-02-14 18:44:21 +11:00
Volker Lendecke
44f75eded1 s3: notify_onelevel does not use seqnums, so don't open asking for it 2010-02-12 12:08:22 +01:00
Volker Lendecke
b6303f0372 s3: Fix a crash in notify_remove_onelevel when "change notify = no" 2009-11-05 15:08:57 +01:00
Volker Lendecke
b5afbb687d s3: Fix the talloc hierarchy in notify_remove_onelevel
We want to free the record early, not when talloc_tos() is free'ed.
2009-11-05 14:44:25 +01:00
Volker Lendecke
3b666bf0f9 Fix notify_onelevel: notify is not necessarily enabled
Thanks to Günther Deschner!

Volker
2009-04-30 12:25:46 +02:00
Volker Lendecke
32a36e4703 Add notify_onelevel.tdb
This optimizes non-recursive notifys. For non-recursive notifies we can use a
per-directory file-id indexed notify record. This matters for the Windows
Explorer and IIS cases which do not use recursive notifies. In these cases, we
do not have to shuffle around the whole notify record on every change.

For the cluster case, this improves correctness of the notifies, ctdb only
distributes the tdb seqnum once a second, so we can lose notifies.
2009-04-16 15:07:06 +02:00
Volker Lendecke
ea3a022ca3 Rename notify_context->db to db_recursive 2009-04-16 15:07:06 +02:00
Volker Lendecke
e9569ae925 Fix some nonempty blank lines 2009-04-11 11:06:21 +02:00
Günther Deschner
c48186f507 s3: use samba4 prototype for ndr_push/pull_struct_blob.
Guenther
2008-09-23 09:37:23 +02:00
Stefan Metzmacher
f9578af966 ndr: change NTSTAUS into enum ndr_err_code (samba3 callers)
lib/messages_local.c
rpc_client/ndr.c
smbd/notify_internal.c
utils/net_rpc_registry.c

metze
(This used to be commit c2645d2164c05976a98bafed980b6029baf89977)
2007-11-09 21:23:16 +01:00
Stefan Metzmacher
1c87d79199 prepare changes in ndr code
metze
(This used to be commit 9ba00e7c167fb871a3d9acbd9fc5ce4e935d92c2)
2007-11-09 21:23:14 +01:00
Andrew Tridgell
5e54558c6d r23784: use the GPLv3 boilerplate as recommended by the FSF and the license text
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
2007-10-10 12:28:22 -05:00
Jeremy Allison
d824b98f80 r23779: Change from v2 or later to v3 or later.
Jeremy.
(This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10 12:28:20 -05:00
Volker Lendecke
9c6f9fa28a r23186: Checkin on behalf of Tridge:
Change notify.tdb to use dbwrap
(This used to be commit 3a089403871df88f4a3bf86c3db0d169cd4fb434)
2007-10-10 12:22:53 -05:00
Volker Lendecke
e6383f4762 r22736: Start to merge the low-hanging fruit from the now 7000-line cluster patch.
This changes "struct process_id" to "struct server_id", keeping both is
just too much hassle. No functional change (I hope ;-))

Volker
(This used to be commit 0ad4b1226c9d91b72136310d3bbb640d2c5d67b8)
2007-10-10 12:21:52 -05:00
Jeremy Allison
12ba88574b r22542: Move over to using the _strict varients of the talloc
calls. No functional changes. Looks bigger than it is :-).
Jeremy.
(This used to be commit f6fa3080fee1b20df9f1968500840a88cf0ee592)
2007-10-10 12:19:44 -05:00
Stefan Metzmacher
bc2b6436d0 r22009: change TDB_DATA from char * to unsigned char *
and fix all compiler warnings in the users

metze
(This used to be commit 3a28443079c141a6ce8182c65b56ca210e34f37f)
2007-10-10 12:19:00 -05:00
Volker Lendecke
6ab97dc69d r21181: Add some debug, fix the NT_STATUS_IO_TIMEOUT problems in the RAW-NOTIFY test
in the build farm.

Volker
(This used to be commit 3dd1bf667f42bd03a7b7159b9c2ad9ccbd269130)
2007-10-10 12:17:46 -05:00
Volker Lendecke
f4c3d1543d r21120: Make notify a bit more robust: Delete the notify records if we figured out
that the process holding it is not around anymore.

Tridge, please review this and possibly also include it in 4. We can discuss
the error message for "unknown target" from messaging_send, INVALID_HANDLE
seemed to be most appropriate to me.

Volker
(This used to be commit 3b3ed7429e54b571375914e473eafc9888b5b204)
2007-10-10 12:17:40 -05:00
Volker Lendecke
bad8c39f1c r21111: Reorganize the change notify params a bit. We now have the per-share
parameters

change notify = [yes]/no           # do we do it at all
kernel change notify = [yes]/no    # enable/disable inotify

Those who want FAM need to say

change notify = yes
vfs objects = notify_fam

Volker
(This used to be commit c3a44d8b9606fc516faceb69b8e87bfc8be312f3)
2007-10-10 12:17:39 -05:00
Volker Lendecke
240a3fd644 r21108: Send sys_notify_watch through the VFS, FAM is next
(This used to be commit 603a96761391f36ae9a1c8777d3333ab5c02eb34)
2007-10-10 12:17:38 -05:00
Volker Lendecke
113e21f0a5 r21084: Make the Samba4 files compile in Samba3, not activated yet.
Volker
(This used to be commit c24854433a28cc066072a7107e29aa7fe2bec3c8)
2007-10-10 12:17:34 -05:00
Volker Lendecke
9ee97d2f7d r21077: A step to minimize the diff later: This pulls in unmodified files from Samba4,
not compiled yet. This way the modifications become visible later.

ntvfs/common/notify.c -> smbd/notify_internal.c
ntvfs/sysdep/inotify.c -> smbd/notify_inotify.c

Naturally I had to disable notify again :-)

Volker
(This used to be commit cdb7d582b7397faa5926bff5783da7fef4209948)
2007-10-10 12:17:33 -05:00