1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

28 Commits

Author SHA1 Message Date
Andrew Tridgell
85ba79063f ldb: mark the location of a lot more ldb requests 2010-09-25 10:38:45 -07:00
Kamen Mazdrashki
7694b1964f s4-source4/dsdb/samdb/ldb_modules/partition_init.c Use DSDB_FLAG_NEXT_MODULE flag 2010-07-08 02:38:34 +03:00
Andrew Tridgell
87df785a68 s4-dsdb: use ldb_operr() in the dsdb code
this replaces "return LDB_ERR_OPERATIONS_ERROR" with "return ldb_operr(ldb)"
in places in the dsdb code where we don't already explicitly set an
error string. This should make is much easier to track down dsdb
module bugs that result in an operations error.
2010-07-07 20:14:55 +10:00
Matthias Dieter Wallnöfer
d1dd0a560c s4:partition LDB module - change counter variables to "unsigned" where appropriate 2010-03-07 19:10:00 +01:00
Andrew Tridgell
5549190b37 s4-dsdb: use TYPESAFE_QSORT() in dsdb code 2010-02-13 22:36:12 +11:00
Andrew Bartlett
401ba9c9cf s4:dsdb Move module configuration from each ldb into samba_dsdb.c
This makes getting the module order correct, the obligation of Samba4
developers, and not system administrators.  In particular, once an ldb
is updated to use only the 'samba_dsdb' module, no further changes to the
ldb should be required when upgrading to later Samba4 versions.

(thanks to metze for the suggestion of samba_dsdb as a long-term
stable name for the module)

Andrew Bartlett
2009-11-23 14:15:07 +01:00
Andrew Bartlett
41ce3dc0c3 s4:dsdb Add 'dsdb_flags' to dsdb_module_search() to enable often-used features
These flags, also on dsdb_module_search_dn() allow us to add commonly
set controls to this pre-packaged blocking search, without rebuilding
the whole function in each caller.

Andrew Bartlett
2009-11-17 10:38:01 +11:00
Endi S. Dewata
c9571f7277 s4:provisioning - Fixed minor bugs in provisioning tool and partition module. 2009-11-04 14:58:25 +11:00
Andrew Bartlett
1ac8ef155f s4:dsdb Revert back to using DN:filename in the partitions record
This allows us to change the escaping function without breaking
existing installs.  The new escaping function (used for new databases)
is RFC1738 URI encoding, except for the trivial cases without special
characters.

The new databases are also placed in a subdirectory, sam.ldb.d per an
earlier suggestion by metze.

Andrew Bartlett
2009-11-02 16:36:53 +11:00
Andrew Bartlett
5e920f2a23 s4:dsdb Rework partitions module for better tracing
This means we need to create a fake 'module' which only has a 'next'
pointer, so that we can now ldb_next_request() (which incorporates
tracing).  The remainaing stub of partition_request() is retained so
that we can indicate which partition an operation is destined for.

Similar tracing is added to the transaction handlers.

Andrew Bartlett
2009-10-27 11:32:18 +11:00
Andrew Tridgell
c34e45a8e2 s4-dsdb: ensure that new partitions inherit any transaction 2009-10-25 13:15:18 +11:00
Stefan Metzmacher
69e96f08f1 s4:dsdb/partition_init: don't leak a talloc_new() in case we have no data yet
metze
2009-10-24 11:59:15 +02:00
Andrew Bartlett
b6200e3047 s4:dsdb Fix samba3sam test again.
We again need to be careful not to call 'ldb_next_request' based functions in the partitions module.

Or, we need to instead go back to having that work, and ditch the
partition_request stuff...

Andrew Bartlett
2009-10-23 15:42:54 +11:00
Andrew Bartlett
b0eb8a1bbb s4:dsdb Do less allocation when searching for partitions modules
(it didn't help that the previous allocation was on the wrong long-term context)

Andrew Bartlett
2009-10-23 15:42:14 +11:00
Andrew Bartlett
bd9aa4d561 s4:dsdb Set partitions metadata as soon as it is set up. 2009-10-23 15:40:49 +11:00
Andrew Bartlett
925a94b67c s4:dsdb Use the 'correct' case for the namingContext values in rootDSE
This makes the namingContext attributes in the rootDSE a little more pretty, by
using the exact same values as used in the database DNs.

Andrew Bartlett
2009-10-22 09:45:14 +11:00
Andrew Bartlett
d7cf71d9b6 s4:dsdb Allow loading of old-style partition records
This should make upgrades easier
2009-10-21 22:43:57 +11:00
Andrew Bartlett
4209cf9860 s4:dsdb Make the 'relative path' code in partitions handle tdb://
The previous code would fail if the caller used tdb:// in the URL for the
top-level database.

Andrew Bartlett
2009-10-21 22:43:57 +11:00
Andrew Bartlett
96ec45309a s4:dsdb talloc_steal the backend module to under the partition 2009-10-21 22:43:57 +11:00
Andrew Bartlett
154747759e s4:dsdb Allow creation of new partitions
This is a collection of fixes to allow the creation of new partitions,
as well as adding debugging that may be useful in chasing down future
failures.

Andrew Bartlett
2009-10-21 22:43:55 +11:00
Andrew Bartlett
be5f0818ea s4:dsdb Load new partitions in a running LDB if metadata changes
This allows one instance of LDB to add a partition, and another to use
it without first closing the database.

Andrew Bartlett
2009-10-21 22:43:53 +11:00
Andrew Bartlett
6a77165c8a s4:dsdb Only reload partition metadata on search and transaction start
I see no reason to reload it when in a transaction - it can't change
on us anyway (we possibly need to watch for our own changes to
@PARTITION however)

Andrew Bartlett
2009-10-21 22:43:53 +11:00
Andrew Bartlett
e62200e253 s4:dsdb Reload partition metadata if the main db updates
This uses the fact that the primary DB does not change often.  Before
each operation, we see if the sequence number has changed.

Andrew Bartlett
2009-10-21 22:43:52 +11:00
Andrew Bartlett
fa5ebaa686 s4:dsdb Split 'set per-partition metadata' into it's own function
This helps us ensure we always set the metadata, even when we are
'adding' a partition that is already in our list.  (We *really* don't
want these getting out of sync, and the extra writes are harmless)

Andrew Bartlett
2009-10-21 22:43:52 +11:00
Andrew Bartlett
ff3b60d154 s4:dsdb Don't try and casefold DNs during startup for partition load
The issue here is that before we load the schema partition, we may not
have the correct casefolding rules.  As such, keep things simple and
use the DN exactly as found in the @PARTITIONS record to find the
database.

Andrew Bartlett
2009-10-21 22:43:51 +11:00
Andrew Bartlett
129bda51f1 s4:dsdb Fix partition_create not to return early 2009-10-21 22:43:51 +11:00
Andrew Bartlett
b04bdee800 s4:dsdb Be strict in selecting on-disk names for partitions
I really don't want a cn=foo/../bar in my ldb file name.

Andrew Bartlett
2009-10-21 22:43:50 +11:00
Andrew Bartlett
c59f00805c s4:dsdb Rework modules create new partitions at runtime
This is done by passing an extended operation to the partitions module
to extend the @PARTITION record and to extend the in-memory list of
partitions.

This also splits things up into module parts that belong above and below
repl_meta_data

Also slit the partitions module into two files due to the complexity
of the code

Andrew Barltett
2009-10-21 22:43:50 +11:00