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

132 Commits

Author SHA1 Message Date
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
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
Matthias Dieter Wallnöfer
8536e1b947 s4:various LDB modules - "build_request" functions - propagate result codes back
It's very useful to know the exact result code when something fails and not
only a generic (by the module) created one.
Sure, there are some exception cases with specific results (special message
constellations, attributes, values...) which shouldn't be changed at all
(examples of them are in the "ldap.py" test). Therefore I looked very
carefully to not change them.
2009-10-06 19:41:16 +02:00
Andrew Tridgell
f279b57f19 s4-dsdb: don't return the partition root objects
When searching across partitions, we want to avoid sending duplicate
records caused by the record appearing both as a mount point and as a
partition root in a nested partition. This patch works by intercepting
objects from searches and checking if they match a partition root. If
they do, and the partition is not the one in the partition control
request, then discard the object.
2009-09-28 13:11:21 +10:00
Andrew Tridgell
80c575923f s4-sam: allow a search to specify a partition
You can now attach a partition control to searches to search within a
specific partition. This is used to get at the per-partition
@REPLCHANGED object
2009-09-13 16:40:00 -07:00
Andrew Tridgell
5c0cf012a7 s4-samdb: make it possible to ask for the sequence number of a partition
The partition module normally makes the sequence number extended op
operate across all partitions. It will be useful in the repl task to
be able to ask for the sequence number of one partition
2009-09-12 15:24:31 +10:00
Andrew Tridgell
733fa19bc1 s4-samdb: internal s4 ldb modules should be GPL not LGPL
I think these modules ended up LGPL because someone based the module
on an existing LGPL module in the core ldb, and it spread from
there. Certainly there is no reason for the ldb modules that are not
distributed as part of ldb to be LGPL.
2009-09-12 11:21:21 +10:00
Andrew Tridgell
47f52e7a33 greatly simplify the transaction processing in the partition module
Now that ldb is calling prepare commit separately, the job of the
partition module on transaction end is much simpler (and more robust!)
2009-09-03 18:36:09 +10:00
Andrew Tridgell
79255a9384 change the dsdb_control_current_partition to not include internal variables
This structures was used in two ways. In one way it held variables
that are logically internal to the partition module, and in the other
way it was used to pass the partition DN down to other modules. This
change makes the structure contain just the dn which is being passed
down.

This change is part of the support for linked attributes. We will be
passing this control down from above the partition module to force
which partition a request acts upon. The partition module now only
adds this control if it isn't already there.
2009-09-02 18:19:55 +10:00
Anatoliy Atanasov
6b05a9079c Fix for schemaUpdateNow command 2009-07-08 14:40:20 +10:00
Andrew Bartlett
49e5b83aa9 s4: dsdb Avoid using the internal ldb_private.h header
This job is not complete (the partition module remains a unfinished
task), but now we do use the private ldb headers much less.

Andrew Bartlett
2009-06-30 15:12:29 +10:00
Matthias Dieter Wallnöfer
c5a1aa5224 Correct some typos in the LDB partition module 2009-06-29 13:40:52 +10:00
Jelmer Vernooij
edbbbff7ec dsdb: Fix build against system ldb. 2009-06-18 03:09:14 +02:00
Björn Jacke
1563796b44 s4:ldb: fix extrasemi compile warning 2009-04-22 00:03:23 +02:00
Andrew Tridgell
16a1903c54 use the prepare_commit op in the partition code
This makes multi-partition ldb's much safer
2009-03-31 15:08:36 +11:00
Simo Sorce
380874ef86 Fix the mess with ldb includes.
Separate again the public from the private headers.

Add a new header specific for modules.
Also add service function for modules as now ldb_context and ldb_module are
opaque structures for them.
2009-01-30 01:02:03 -05:00
Jelmer Vernooij
bd64688c6a Fix more compiler warnings in various places. 2008-12-23 22:57:11 +01:00
Andrew Bartlett
596fe759e1 s4:ldb: make it possible to return per entry controls
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2008-12-17 12:29:27 +11:00
Andrew Bartlett
d2ec925c63 Fix sequence number generation against OpenLDAP
It seems that in 2deeb99fff1a90c79ba1927e1a069362e250a63c adding the
partition control to this request was missed out.

Andrew Bartlett

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2008-12-17 12:29:23 +11:00
Jelmer Vernooij
87ec1d2532 Make sure prototypes are always included, make some functions static and
remove some unused functions.
2008-10-20 18:59:51 +02:00
Simo Sorce
2deeb99fff Transform the sequence_number operation into a normal extended operation as it should always have been. Make it also async so that it is not a special case. 2008-10-16 12:55:30 -04:00
Andrew Bartlett
c0240d7835 Remove compleatly bogus rename test in partitions module. 2008-10-06 14:16:30 -07:00
Andrew Tridgell
23ec448f83 Merge commit 'master/master' 2008-10-03 12:23:00 -07:00
Andrew Tridgell
163fa1d25a fixed the partition module and the GC handling
- when multiple partitions are searched, consider the search a
   success if any of the partitions return success
 
 - only search the right subset of partitions, looking at the scope
   and basedn of the search

This fixes several errors with GC searches
2008-10-03 12:21:53 -07:00
Andrew Tridgell
c5fdb82d32 fixed the sense of ldb base dn comparisons in two places, and use a
direct comparison instead of a sub-tree comparison in another

this fixes basedn searches on the global catalog port
2008-10-02 21:58:46 -07:00
Stefan Metzmacher
81b3358f2a s4:partition: register DOMAIN_SCOPE and SEARCH_OPTIONS controls
metze
2008-10-02 12:20:58 +02:00
Stefan Metzmacher
551bbd853c s4:partition: pass down the SEARCH_OPTIONS control as uncritical
metze
2008-10-02 12:20:58 +02:00
Simo Sorce
51baa8deec LDB ASYNC: samba4 modules 2008-09-29 04:22:20 +02:00
Simo Sorce
508527890a Merge ldb_search() and ldb_search_exp_fmt() into a simgle function.
The previous ldb_search() interface made it way too easy to leak results,
and being able to use a printf-like expression turns to be really useful.
2008-09-23 18:17:46 -04:00
Andrew Bartlett
4ad97a1d05 Don't walk past the end of ldb values.
This is a partial fix towards bugs due to us walking past the end of
what we think are strings in ldb.  There is much more work to do in
this area.

Andrew Bartlett
(This used to be commit 5805a9a8f35fd90fa4f718f73534817fa3bbdfd2)
2008-08-21 19:24:58 +10:00
Anatoliy Atanasov
f619e08f8b Handle schema reloading request.
The ldif for that operation looks like this:

dn:
changetype: Modify
add: schemaUpdateNow
schemaUpdateNow: 1

It uses the rootdse's object functional attribute schemaUpdateNow.
In rootdse_modify() this command is being recognized and it is send as extended operation with DSDB_EXTENDED_SCHEMA_UPDATE_NOW_OID.
In the partition module its dispatched to the schema_fsmo module.
The request is processed in the schema_fsmo module by schema_fsmo_extended().
(This used to be commit 39f9184ddf215f2b512319211c0a05702218ef87)
2008-07-24 11:54:30 +10:00
Andrew Bartlett
c46afc8c44 Simplify the contextCSN determination.
We only ever have one backend partition per Samba partition.

Andrew Bartlett
(This used to be commit 316a9b312a2d4a4ea5a5c70946fb06b61fab1a7d)
2008-07-15 22:10:42 +10:00
Jelmer Vernooij
afe3e8172d Install public header files again and include required prototypes.
(This used to be commit 47ffbbf67435904754469544390b67d34c958343)
2008-04-02 04:53:27 +02:00
Andrew Kroeger
8f8c56bfbc Convert some more files to GPLv3.
(This used to be commit ebe5e8399422eb7e2ff4deb546338823e2718907)
2008-03-28 01:08:49 -05:00
Jelmer Vernooij
39a817d310 Fix use of some modules (needed _PUBLIC_).
(This used to be commit ce332130ea77159832da23bab760fa26921719e2)
2008-02-20 04:33:43 +01:00
Jelmer Vernooij
16109a40c0 Use struct-based rather than function-based initialization for ldb modules everywhere.
(This used to be commit 85c96a325867f7bcdb412ebc53f8a47dbf7cd89b)
2008-02-20 01:54:32 +01:00
Andrew Bartlett
483164e1eb Rework control handling to remove the 'domain_scope' control
Also remove the search_options control earlier, before, rather than
after duplicating the request.

When we generate referalls in the partition module, the domain_scope
control with suppress them.

Andrew Bartlett
(This used to be commit fc57a119f53a7bc0a0eb76b868bbd7386b3c5008)
2008-01-16 08:49:54 +11:00
Jelmer Vernooij
71e2cafe96 r26483: Merge ldb module dependency fixes, fix auth python module.
(This used to be commit 85eeecf997a071ca7e7ad0247e8d34d49b7ffcbb)
2007-12-21 05:50:41 +01:00
Jelmer Vernooij
2e1f142ab0 r26360: Add some const.
(This used to be commit 3616ced29ed2385300f7268a742a9090840b626f)
2007-12-21 05:49:03 +01:00
Andrew Bartlett
7f18e15e3f r25941: Use samdb_relative_path() (new function in samdb.c) in the partitions
module.

Andrew Bartlett
(This used to be commit c8d1ab30845fa1496c85630b138b1cb512c2b6aa)
2007-12-21 05:45:11 +01:00
Andrew Bartlett
5cfa773202 r25710: Finally fix subtree renames. Untested code is broken code and in this
case an oddity of the javascript caused the test to 'pass'.

For the same oddity, we have a failure in ldb's handling of spaces in
DNs.  We need to resolve that too.

Andrew Bartlett
(This used to be commit e8cbac1a46f4d3b083e6bb5a509ef1ba47bebff1)
2007-12-21 05:43:24 +01:00
Andrew Bartlett
7619978553 r25701: Clarify comment
(This used to be commit cea496d2163db6dde371526dd5a79d4c090839ef)
2007-12-21 05:43:20 +01:00
Jelmer Vernooij
cd962355ab r25000: Fix some more C++ compatibility warnings.
(This used to be commit 08bb1ef643ab906f1645cf6f32763dc73b1884e4)
2007-10-10 15:05:27 -05:00
Andrew Bartlett
714c5c92ef r24731: Remove unused code - if we hit these error conditions, then we are
dead anyway, and a segfault would leave us with more infomation.

Andrew Bartlett
(This used to be commit 62320616ff8795ff18c8f49029d81f12558c10ed)
2007-10-10 15:03:00 -05:00
Andrew Bartlett
538e9842f6 r24690: Further fix to bug 4919: Ensure we don't supply a NULL URL argument to
ldb_connect_backend().

Andrew Bartlett
(This used to be commit d0595e7a3d15c40dd49062efa0ddc6864b6b9030)
2007-10-10 15:02:45 -05:00
Andrew Bartlett
67729cf71f r24655: Fix bug 4919 reported by Matthias Wallnöfer <mwallnoefer@yahoo.de>:
> When you change to the SAMBA private directory on a shell (default
> /usr/local/samba/private) and start there for example ldbedit with the sam.ldb,
> the application crashes if you don't put the "./" before the filename.

I've adapted Matthias's patch.

Andrew Bartlett
(This used to be commit ba82197e30da8e626419e877d224431703edc866)
2007-10-10 15:02:33 -05:00
Andrew Tridgell
0479a2f1cb r23792: convert Samba4 to GPLv3
There are still a few tidyups of old FSF addresses to come (in both s3
and s4). More commits soon.
(This used to be commit fcf38a38ac691abd0fa51b89dc951a08e89fdafa)
2007-10-10 14:59:12 -05:00
Andrew Bartlett
2d2cde7d95 r23762: Fix DN renames over LDAP, and instrument the partition module. Add a
test to prove the behaviour of LDAP renames etc.

Fix LDB to return correct error code when failing to rename one DN
onto another.

Andrew Bartlett
(This used to be commit 3f3da9c4710b7752ed97f55c2fc3d32a63d352af)
2007-10-10 14:59:11 -05:00