summaryrefslogtreecommitdiff
path: root/source3/smbd/notify_internal.c
AgeCommit message (Collapse)AuthorFilesLines
2012-04-19s3: Fix Coverity ID 2747: FORWARD_NULLVolker Lendecke1-1/+1
For the notify cleanup process we have a notify context without a messaging entry. We will never call notify_add/remove for this, but the code should protect against this.
2012-04-19s3: Fix Coverity ID 2749: REVERSE_INULLVolker Lendecke1-1/+3
2012-04-18s3-dbwrap: push lp_ctx up another layer in the stackAndrew Bartlett1-1/+4
This will allow db_open_tdb() to be called from common code, which may already have a loadparm context loaded. It also slowly moves the lp_ctx up the stack, as required to remove the library loop between smbconf and the registry. Andrew Bartlett
2012-04-17s3: New notify implementationVolker Lendecke1-715/+951
From notify_internal.c: /* * The notify database is split up into two databases: One * relatively static index db and the real notify db with the * volatile entries. */ This change is necessary to make notify scale better in a cluster
2012-03-23s3: Remove the sys_notify dependency from notify_internalVolker Lendecke1-32/+0
Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Fri Mar 23 12:12:51 CET 2012 on sn-devel-104
2012-03-21s3: Remove "conn" param from notify_init()Volker Lendecke1-6/+1
2012-03-21s3: Remove "conn" param from sys_notify_context_createVolker Lendecke1-1/+1
2012-03-21s3: Pass "conn" to sys_notify_watch()Volker Lendecke1-1/+2
2012-03-21s3: Pass "conn" to notify_add()Volker Lendecke1-1/+2
2012-03-21s3: Pass "path" through vfs_notify_watchVolker Lendecke1-1/+1
2012-03-16s3-notify: Lift "/." handling up one levelVolker Lendecke1-15/+0
This slightly simplifies the code Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Fri Mar 16 14:28:44 CET 2012 on sn-devel-104
2012-03-16s3-notify: Simplify if-expressionsVolker Lendecke1-16/+13
2012-03-15s3: Use talloc_tos() in notify_send()Volker Lendecke1-6/+2
Signed-off-by: Stefan Metzmacher <metze@samba.org> Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Thu Mar 15 12:43:41 CET 2012 on sn-devel-104
2012-03-15s3: Fix lock ordering in notify_addVolker Lendecke1-13/+15
It's not necessary to keep the global notify record locked during the inotify and notify_onelevel.tdb operations. Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-03-15s3: properly free the notify_onelevel recordVolker Lendecke1-1/+1
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-03-15s3: Replace some callers of cluster_id_equalVolker Lendecke1-4/+3
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-03-15s3: Remove the separate server_id arg to notify_initVolker Lendecke1-2/+2
The server_id is tied to the messaging_context Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-03-15s3: Fix blank line endingsVolker Lendecke1-13/+13
Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Thu Mar 15 10:59:46 CET 2012 on sn-devel-104
2012-03-10tdb_wrap: Move to specific directory.Jelmer Vernooij1-1/+1
It's a bit confusing to mix low-level and high-level libraries. We had multiple libraries in one directory, and there were have circular dependencies with other libraries outside that directory (in this case, samba-hostconfig). Autobuild-User: Jelmer Vernooij <jelmer@samba.org> Autobuild-Date: Sat Mar 10 23:13:01 CET 2012 on sn-devel-104
2012-01-18s3: Add a "lock_order" argument to db_openVolker Lendecke1-2/+4
This will be used to enforce a lock hierarchy between the databases. We have seen deadlocks between locking.tdb, brlock.tdb, serverid.tdb and notify*.tdb. These should be fixed by refusing a dbwrap_fetch_locked that does not follow a defined lock hierarchy.
2011-10-13lib/util: Add back control of mmap and hash size in tdb for top level buildAndrew Bartlett1-2/+11
This passes down a struct loadparm_context to allow these parameters to be checked. This may be s3 or s4 context, allowing the #if _SAMBA_BUILD_ macro to go away safely. Andrew Bartlett
2011-10-11s3:smbd: convert notify db to use dbwrap wrapper functionsMichael Adam1-28/+30
Avoid direct use of the db_record and db_context structs.
2011-07-29s3:dbwrap: move all .c and .h files of dbwrap to lib/dbwrap/Michael Adam1-1/+1
Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Fri Jul 29 13:34:22 CEST 2011 on sn-devel-104
2011-07-29s3:dbwrap: move db_open() to a file dbwrap_open.c of its own.Michael Adam1-0/+1
Also start new folder lib/dbwrap/ where dbwrap_open.c is stored and make the fallbacke implementation functoins non-static and create a dbwrap_private.h header file that contains their prototypes.
2011-06-20tdb_compat: Higher level API fixes.Rusty Russell1-1/+1
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-09s3-talloc Change TALLOC_ZERO_P() to talloc_zero()Andrew Bartlett1-2/+2
Using the standard macro makes it easier to move code into common, as TALLOC_ZERO_P isn't standard talloc.
2011-05-06s3: only include tdb headers where needed.Günther Deschner1-0/+1
Guenther
2011-05-06lib/util Move source3 tdb_wrap_open() into the common code.Andrew Bartlett1-0/+1
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-05More simple const fixes.Jeremy Allison1-1/+1
2011-03-30s3-messages: make ndr_messaging.h part of messages.h.Günther Deschner1-1/+0
Guenther
2011-03-30s3-messages: only include messages.h where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3: include smbd/smbd.h where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3-includes: only include system/filesys.h when needed.Günther Deschner1-0/+1
Guenther
2010-09-27Change to using TDB_INCOMPATIBLE_HASH (the jenkins hash) on allJeremy Allison1-4/+4
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-26s3: Remove talloc_autofree_context() from notify_internal_parent_init()Volker Lendecke1-4/+3
2010-08-26s3-build: use dbwrap.h only where needed.Günther Deschner1-0/+1
Guenther
2010-05-18s3: Remove use of iconv_convenience.Jelmer Vernooij1-14/+9
2010-05-06s3: only include gen_ndr headers where needed.Günther Deschner1-0/+1
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-04-06fix a segfault in the notify subsystemChristian Ambach1-5/+16
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-03-25s3: Add a comment to notify_internal_parent_init, this is pretty confusingVolker Lendecke1-0/+6
2010-03-25s3: Make sure our CLEAR_IF_FIRST optimization works for the notify tdbsVolker Lendecke1-0/+27
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-02-14s3-smbd: convert lanman and notify code to TYPESAFE_QSORT()Andrew Tridgell1-6/+2
2010-02-12s3: notify_onelevel does not use seqnums, so don't open asking for itVolker Lendecke1-1/+1
2009-11-05s3: Fix a crash in notify_remove_onelevel when "change notify = no"Volker Lendecke1-0/+4
2009-11-05s3: Fix the talloc hierarchy in notify_remove_onelevelVolker Lendecke1-1/+1
We want to free the record early, not when talloc_tos() is free'ed.
2009-04-30Fix notify_onelevel: notify is not necessarily enabledVolker Lendecke1-0/+4
Thanks to Günther Deschner! Volker
2009-04-16Add notify_onelevel.tdbVolker Lendecke1-0/+286
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-16Rename notify_context->db to db_recursiveVolker Lendecke1-9/+12
2009-04-11Fix some nonempty blank linesVolker Lendecke1-4/+4
2008-09-23s3: use samba4 prototype for ndr_push/pull_struct_blob.Günther Deschner1-4/+4
Guenther