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

66 Commits

Author SHA1 Message Date
Matthieu Patou
f421aa8218 s4-dsdb-linkedattributes: register the VERIFY_NAME control, handle it when we are a GC
In theory when presented this control and not a GC we should use the
specified name as the DC to contact for cross-domain link verification.
But for the moment we don't support this so we just fail when we have
this control and are not a GC.
2012-06-22 23:22:02 -07:00
Andrew Tridgell
46a76bc229 s4-dsdb: fixed deletion of backlinks for fl2000 DCs
when in FL 2000 we were not correctly deleting backlinks as we uses
dsdb_find_dn_by_guid() which doesn't find deleted objects. Modules
should use dsdb_module_dn_by_guid() which prevents going to the top
level, and finds deleted objects

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-08-18 09:26:59 +10:00
Matthieu Patou
930fa1ee46 update/add my copyright 2011-07-21 11:44:33 +10:00
Andrew Tridgell
26ccb6d5ed s4-dsdb: cope with failed searches in the linked attributes callback
This fixes a bug where we try to add an empty backlink because the
search for the forward link failed.

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Mar 31 13:37:36 CEST 2011 on sn-devel-104
2011-03-31 13:37:36 +02:00
Andrew Bartlett
0a78c57be6 s4-dsdb: Ensure we permit multi-valued backlinks on single-valued attributes
This was already done in repl_meta_data, but it needs to be done here
as well to cope with Windows 2000 level links.

Andrew Bartlett

Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Wed Mar  2 02:03:58 CET 2011 on sn-devel-104
2011-03-02 02:03:58 +01:00
Andrew Tridgell
87f3151047 s4-dsdb: pass parent request to dsdb_module_*() functions
this preserves the request hierarchy for dsdb_module_*() calls inside
dsdb ldb modules

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-01-17 05:23:04 +01:00
Kamen Mazdrashki
05e77f52d7 s4-linked_attributes: Give more info where an error occured
We have exact same error messages at different locations
and it is little bit hard to tell where the error came from
from the log.
2010-12-06 00:18:48 +02:00
Andrew Tridgell
c5f07d33ae s4-dsdb: use LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK in dsdb
when we are creating linked attributes with multiple values (some
deleted), use LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK to disable
that checking.
2010-11-04 20:35:44 +11: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
e3081b92c1 s4:dsdb - substitute the "show_deleted" with the "show_recycled" control
We intend to see always all objects with the "show_deleted" control specified.
To see also recycled objects (beginning with 2008_R2 function level) we need to
use the new "show_recycled" control.

As far as I see this is only internal code and therefore we don't run into
problems if we do substitute it.

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
Kamen Mazdrashki
02f0c6d1eb s4-source4/dsdb/samdb/ldb_modules/linked_attributes.c Use DSDB_FLAG_NEXT_MODULE flag 2010-07-08 02:38:35 +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
Kamen Mazdrashki
b29921b82e s4-dsdb/samdb/ldb_modules/linked_attributes.c: make use of DSDB_FLAG_NEXT_MODULE flag
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-02 10:07:27 +10:00
Matthias Dieter Wallnöfer
233ce18a17 s4:linked attributes LDB module - strip trailing whitespaces 2010-06-16 15:34:41 +02:00
Matthias Dieter Wallnöfer
e190683b59 s4:linked_attributes LDB module - cosmetics
- unsigned counters for LDB objects
- we tend to have the "ret" variable always as the last declaration to see
  which type of error a function returns
2010-06-16 15:34:41 +02:00
Andrew Bartlett
18f3e5113a s4:dsdb Allow renames with (now removed) linked attributes
It is important to allow the rename, even if we just have one-way
links, as this happens on deleted objects, which have the backlinks
alredy removed by repl_meta_data.

Andrew Bartlett
2010-06-16 12:05:31 +10:00
Andrew Bartlett
25abcb6818 s4:dsdb Fix linked_attributes to cope with the Feb 2010 changes to DLIST
The DLIST macros changed in behaviour in Feb 2010, and walking the
lists backwards is no longer safe if you don't use the macros.

Andrew Bartlett
2010-06-16 09:57:52 +10:00
Andrew Bartlett
5150f8597a s4:dsdb Assert that we can't get backlinks as input in linked_attributes
The objectclass_attr module should prevent users creating such links,
and the mrepl_meta_data module should only create them in functional
level 2003 or above.

Andrew Bartlett
2010-06-16 09:57:52 +10:00
Andrew Bartlett
ec6839ac26 s4:dsdb use dsdb_module_modify() rather than ldb_next_request()
This does exactly the same thing, but with less code.

Andrew Bartlett
2010-06-16 09:57:51 +10:00
Andrew Bartlett
ffa787772f s4:dsdb Handle backlinks for Windows 2000 level linked attributes
This revives the code from 5964acfa741d691c0196f91c0796122ec025f177,
before tridge and I simplified this too much, and removed the Windows
2000 functional level linked attribute support.

By telling the linked_attributes module that repl_meta_data has
handled the links, we avoid a conflict for the new style (functional
level 2003 and above) linked attributes.  However, we still need
backlinks for 2000 style linked attributes, so this allows that code
in the linked_attributes module to be revived to handle those.

Andrew Bartlett
2010-06-16 09:57:51 +10:00
Jelmer Vernooij
7fe9e6cd69 dsdb: Fix includes when building against system ldb. 2010-06-15 13:15:50 +02:00
Matthias Dieter Wallnöfer
d7de3fa799 s4:dsdb - fix up warnings 2010-03-16 09:50:39 +01:00
Andrew Bartlett
2de07761e0 s4:dsdb Change dsdb_get_schema() callers to use new talloc argument
This choses an appropriate talloc context to attach the schema too,
long enough lived to ensure it does not go away before the operation
compleates.

Andrew Bartlett
2010-03-16 19:26:03 +11:00
Matthias Dieter Wallnöfer
f9f7199250 s4:linked_attributes LDB module - change counter variables to "unsigned" where appropriate 2010-03-07 19:20:01 +01:00
Andrew Tridgell
5dcb903f26 s4-dsdb: move checking for single valued links to samba modules
This uses the RELAX control and checking of single valued attributes
in ldb modules to avoid problems with multi-valued links where all
values but one are deleted
2010-01-02 08:16:51 +11:00
Andrew Tridgell
312ef9df3c s4-dsdb: add REVEAL_INTERNALS in the search for linked_attributes
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-01-02 08:16:50 +11:00
Andrew Tridgell
5eefff915e s4-dsdb: simplify the linked_attributes module
The linked_attributes module only has to deal with renames now, as
other linked attribute updates happen in repl_meta_data. This allows
it to be much simpler.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-01-02 08:16:49 +11:00
Andrew Tridgell
3fe9244796 s4-dsdb: remove linked_attributes_add
This is now handled in the repl_meta_data module
2010-01-02 08:16:49 +11:00
Andrew Tridgell
5964acfa74 s4-dsdb: the linked_attributes module no longer handles deletes
delete handling is now moved into repl_meta_data

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-01-02 08:16:49 +11:00
Andrew Tridgell
c071af337a s4-dsdb: linked_attributes_modify no longer handles modifies
This functionality has moved into repl_meta_data
2010-01-02 08:16:48 +11:00
Andrew Tridgell
56b887e5b9 s4-dsdb: simplify linked attributes code using GUID functions 2009-12-10 17:51:27 +11:00
Andrew Bartlett
e6c1608e90 s4:dsdb Don't segfault with ldb_transaction_prepare_commit() without begin()
It is up to other modules to complain if
ldb_transaction_prepare_commit() is called before
ldb_transaction_begin_transaction()

Andrew Bartlett
2009-11-27 16:05:05 +11:00
Andrew Tridgell
ccd2673b1a s4-dsdb: removed extraneous debug messages 2009-09-28 10:25:23 +10:00
Andrew Tridgell
12936bee69 s4-samdb: free the linked_attributes list on prepare commit failure 2009-09-28 10:23:56 +10:00
Matthias Dieter Wallnöfer
f82dd192ee s4:"linked attributes" modules - correct the comments 2009-09-06 12:31:13 +02:00
Andrew Tridgell
d3d6713c59 another large change to the linked_attribute module
This one copes with deleted objects where linked attributes have been
set on the module. We hit this when we do the ldb wipe at the start of
a provision, which trigers linked attribute updates, but for objects
that have disappeared. We need to ensure that the linked attribute
updates only happen on the right object, and if the object gets
re-created (as happens with a provision) then it is not the right
object.

To cope with this we record the GUID of the object when the operation
that triggered the linked attribute update comes in, and then find the
DN by suing that GUID when we apply the change in the prepare commit
hook.
2009-09-03 18:36:10 +10:00
Andrew Tridgell
aff1e623aa fixed transaction handling in linked_attributes module
We need to call down to the next transaction function when we finish
in linked_attributes.

This also changes linked_attributes to use the common
dsdb_find_dn_by_guid() function
2009-09-03 18:36:09 +10:00
Andrew Tridgell
9f031352c6 traverse the ac list in reverse order
items are added to the linked attribute list using DLIST_ADD(), which
means to commit them to the database in the same order they came from
the server we need to walk the list backwards when we traverse it
2009-09-02 18:19:56 +10:00
Andrew Tridgell
ca45847eda s4:dsdb rewrite the linked_atrributes code to commit in the end_transaction hook
linked attribute changes can come in any order. This means it is
possible for a forward link to come over the wire in DRS before the
target even exists. To make this work this patch changed the linked
attributes module to gather up all the changes it needs to make in a
linked list, then execute the changes in the end_transaction hook for
the module.

During that commit phase we also fix up all the DNs that we got by
searching for their GUID, as the objects may have moved after the
linked attribute was sent, but before the end of the transaction
2009-09-02 18:19:56 +10:00
Andrew Tridgell
90b694bc61 fixed spelling 2009-09-02 18:19:54 +10:00
Matthias Dieter Wallnöfer
cb53b78080 [SAMBA 4] Some cosmetic changes for the LDB modules
Some corrections which make the code a bit more readable (no functional changes here)
2009-07-19 15:59:13 +02:00
Simo Sorce
1cd7fe7194 Fix headers, ldb_includes.h is a private header,
do not reference it from ldb.h
2009-02-23 17:38:11 -05:00
Simo Sorce
d4aeed879b Fix all other modules to use ldb_module.h instead of ldb_private.h
The only 2 modules escaping the rule so far are rootdse and partitions
2009-01-30 17:07:25 -05:00
Andrew Bartlett
911cf5d625 s4:dsdb: Make the linked_attributes module set an extended dn
This means that linked attributes will always have the same case form
as the actaul entry, as we search for that entry.  We then also use
the GUID and SID found on that entry to fill in the extended DN on disk.

Andrew Bartlett

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2008-12-17 12:29:28 +11:00
Andrew Bartlett
a19df19501 Run the original operation before we update linked attrs
This causes the linked attribute modifies to occour after the original
operation is entered in the transaction (any failure still fails the
lot).  This means (I hope) that we can have another module search the
originating record when the backlink is created, filling in the GUID
and SID for the extended DN.

Andrew Bartlett
2008-11-17 13:59:51 +11:00
Andrew Bartlett
169f906408 Give a better error when ldb_dn_from_ldb_val fails 2008-11-04 16:06:57 +11:00
Andrew Bartlett
9381a78c39 Use ldb_dn_from_ldb_val to avoid possible over-run of the value.
The ldb_val is length-limited, and while normally NULL terminated,
this avoids the chance that this particular value might not be, as
well as avoiding a cast.

Andrew Bartlett
2008-11-04 16:06:56 +11:00
Andrew Bartlett
adf016e119 Fix use of wrong union arm in linked_attributes module
This bug occours frequenetly in ldb users because the union so happens
to be layed out that this works.  However, it is still incorrect
usage...

Andrew Bartlett
2008-11-04 16:06:56 +11:00