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

35 Commits

Author SHA1 Message Date
Andrew Bartlett
d3cd9f1575 dsdb: Do checks for invalid renames in samldb, before repl_meta_data
This ensures that conflict objects can be created in CN=System, and
that we do not stop replication just because some other DC allowed a
rename we do not like.

This is achived by doing the work in the samldb module, which is above
repl_meta_data in the stack.

Andrew Bartlett

Change-Id: I8c1a7d3e0fbd5a470cf1326cc055044ca885f7d9
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Guenter Kukkukk <kukks@samba.org>
Tested-by: Guenter Kukkukk <kukks@samba.org>
2014-03-26 02:21:24 +01:00
Andrew Bartlett
31fb7f9c1b dsdb: Rework subtree_rename module to use recursive LDB_SCOPE_ONELEVEL searches
This should be more efficient, particularly in the leaf node case when renaming and
deleting entries on large databases.

Andrew Bartlett

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2013-07-24 16:35:01 +02:00
Matthieu Patou
77f7a46e18 s4:dsdb: Fix warnings about not set / set but unused / shadowed variables
Reviewed-by: Stefan Metzmacher <metze@samba.org>

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Apr 19 13:15:40 CEST 2013 on sn-devel-104
2013-04-19 13:15:40 +02:00
Andrew Tridgell
3712006faa dsdb: improve debug message
show the reply type in "Invalid reply type" messages

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Oct 20 00:57:05 CEST 2011 on sn-devel-104
2011-10-20 00:57:05 +02:00
Matthias Dieter Wallnöfer
4a5e9cf0ed s4:subtree_rename LDB module - fix the move/rename constraints
s4:subtree_rename LDB module - fix the move/rename constraints

By the inspiration of an email request by ekacnet I have rechecked the
move/rename constraints and re-read the chapter 3.1.1.5.4.1 located in the
MS-ADTS technical documentation.
It really turns out that the constraint checking is only performed on
the root object of a request.

In addition add my copyright notice (I've written these constraint checks).

Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Wed Aug 10 01:05:19 CEST 2011 on sn-devel-104
2011-08-10 01:05:19 +02:00
Andrew Tridgell
f4a1b71b2b s4-dsdb: make subtree_rename errors clearer 2011-02-07 13:22:01 +11:00
Matthias Dieter Wallnöfer
0f2904247b s4:subtree_rename LDB module - make use of "dsdb_find_nc_root"
This is exactly what's needed there.

Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Tue Nov 16 08:42:07 UTC 2010 on sn-devel-104
2010-11-16 08:42:07 +00:00
Andrew Tridgell
9103047782 s4-ldb: enable version checking in dsdb ldb modules 2010-11-01 13:05:04 +00:00
Andrew Tridgell
7eb2eed156 s4-dsdb: convert the rest of the ldb modules to the new module type 2010-11-01 18:55:19 +11:00
Matthias Dieter Wallnöfer
779b97325a s4:subtree_rename LDB module - also already deleted objects have to be renamed
This is needed if the SYSTEM_FLAG_DISALLOW_MOVE_ON_DELETE flag was specified
and the parent is renamed.

To be able to do this we also need to relax the constraint checks (using the
"isDeleted" proof).

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-10-03 15:23:18 +00:00
Andrew Tridgell
85ba79063f ldb: mark the location of a lot more ldb requests 2010-09-25 10:38:45 -07:00
Matthias Dieter Wallnöfer
fb274f056b s4:subtree_rename.c - relax the checks when requested
(Needed by upgradeprovision for example)
2010-08-15 09:24:22 +02:00
Matthias Dieter Wallnöfer
7ea1796fa4 s4:subtree_rename LDB module - rename "check_system_flags" into "check_constraints" and perform more checks
Always considering MS-ADTS 3.1.1.5.4.1.2.
2010-08-01 14:00:10 +02:00
Matthias Dieter Wallnöfer
2e66033ab9 s4:subtree_rename LDB module - introduce out of memory checks 2010-08-01 14:00:10 +02:00
Matthias Dieter Wallnöfer
3cdc83d4f9 s4:subtree_rename LDB module - introduce the "systemFlags" protection rules
This is done in a dedicated call "check_system_flags".
2010-08-01 09:35:54 +02:00
Matthias Dieter Wallnöfer
4e3afb36da s4:subtree_rename LDB module - "subren_ctx_init" - fix the "out of memory" return 2010-07-31 21:33:33 +02: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
343e9320ba s4:subtree_rename LDB module - Cosmetic fixes 2010-07-04 22:05:18 +02:00
Jelmer Vernooij
b03637cb9e dsdb: Fix includes when building against system ldb. 2010-06-19 14:46:22 +02:00
Jelmer Vernooij
ccaf0c6038 dsdb: Use Samba includes so _PUBLIC_ is defined. 2010-06-19 13:55:41 +02:00
Jelmer Vernooij
238e89f7b0 dsdb: Make module ops struct for each module public. 2010-06-19 13:46:39 +02:00
Anatoliy Atanasov
bcdaa23798 s4/rodc: Fix the callbacks up the stack to handle referrals on modify requests 2010-05-04 18:31:47 +02: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
Simo Sorce
51baa8deec LDB ASYNC: samba4 modules 2008-09-29 04:22:20 +02:00
Andrew Bartlett
1c1c6fca66 Fix more valgrind issues.
This passes down the timeout more consistantly, and ensures that no
matter how the modules screw up, we don't free() the memory we are
going to write into the ASN1 packet until we actually write it out.

Andrew Bartlett
(This used to be commit eefd46289b90967ce6b4cd385fb1f7e1d6f9b343)
2008-03-29 13:32:15 +11: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
5d4f507a65 r25942: Make various ldb modules handle an LDB backend that enforces validity
of Base DNs in searches (returning an error of LDB_ERR_NO_SUCH_ENTRY).

We need to handle this if ldb_tdb is to behave correctly compared with
LDAP, as well as if we are using an LDAP backend.

In doing so, I realised that subtree_rename and subtree_delete
(prevention) need rather different wait loops, so it seemed easier to
split it out into it's own module.

I've fixed the licence on both of these modules to be GPLv3.

Andrew Bartlett
(This used to be commit d3894c90f31fb45e038ab478cd9d7d34962d069b)
2007-12-21 05:45:11 +01:00
Andrew Bartlett
a4c79f06ae r25762: This test belongs best with the other checks for a valid parent, in
the objectclass module.

Andrew Bartlett
(This used to be commit 16a292fcb134adec110cbc4c8f0fb03323750a45)
2007-12-21 05:43:47 +01:00
Andrew Bartlett
464dd2ada1 r25761: Rename to be a DN to be a child of itself wasn't being checked for.
This prevents CN=test,dc=samba,dc=example,dc=com being renamed into
CN=test2,cn=test,dc=samba,dc=example,dc=com

Andrew Bartlett
(This used to be commit 958a92ed0c6bee19d8b86df7c66330d2bba23e46)
2007-12-21 05:43:47 +01:00
Andrew Bartlett
33201d1df2 r25729: Fix silly regression in the subtree_rename - I broke normal renames.
Bug 5041

Andrew Bartlett
(This used to be commit 7e68051bb7a9ac5f1b232c32b7614db61c3c1bc4)
2007-12-21 05:43:31 +01:00
Andrew Bartlett
1f680ef45d r25723: Add a check to prevent deletion of entries with children. Sadly MMC
doesn't trigger it's recursive delete correctly, but the error return
is correct (but perhaps needs a different LDAP wire format).

Andrew Bartlett
(This used to be commit 10ba3ae6990098e772683de9144b13b3f1d45a36)
2007-12-21 05:43:29 +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
21c65d93eb r25693: Implement the rest of subtree renames, now that tridge waved his magic
over the ldb_tdb part of the problem.

Andrew Bartlett
(This used to be commit daca0cfd2fc2ec3344415d2d31f399ee3bf16151)
2007-12-21 05:43:17 +01:00
Andrew Bartlett
50017a0075 r24793: The subtree_rename module is a work of fiction. An resemblance to a
working module, live or dead, is purely co-incidental.

Andrew Bartlett
(This used to be commit 64cc31642fd2ded149631d07bc022213f19595b8)
2007-10-10 15:03:10 -05:00
Andrew Bartlett
4e1d0cc8e3 r24761: Permit subtree renames in Samba4.
The module is scary: On a rename, it does a search for all entries
under that entry (including itself), and fires off a seperate rename
call for each result.  This will fail miserably on an LDAP backend,
but I'll need to work on using hdb for OpenLDAP, and hope Fedora DS
can implement subtree renames at some point.

Andrew Bartlett
(This used to be commit 13908a8cb4dd810503213203efb8d51f77f1f379)
2007-10-10 15:03:05 -05:00