Age | Commit message (Collapse) | Author | Files | Lines |
|
It is valid to get a NULL GUID over DRS for a deleted forward link. We
need to match by DN if possible when seeing if we should update an
existing link.
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
control
|
|
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
Use ^1 everywhere, to ensure it works for both forward and backward
links
|
|
|
|
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
|
|
When any value of a w2k formatted linked attribute is modified,
upgrade the links.
|
|
|
|
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
We need a separate RMD_LOCAL_USN to allow us to tell what attributes
need to be sent in a getncchanges request. Thanks to Metze for
pointing this out.
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
|
|
This makes updating the links a bit easier
|
|
backlinks in add and delete operations can be processed immediately,
rather than at the end of a transaction. This can save on backlink
list processing time.
|
|
This also handles the backlink creation that was previously in the
linked_attributes module
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
This implements repmld_delete(), which handles the meta_data updates
for an object when deleting. A delete gets mapped to a combination
of a rename followed by a modify request, which has the effect of
moving the object into the Deleted Objects container.
This is based on the code from Eduardo Lima
<eduardoll@gmail.com>. Eduardo's code was modified to take account of
the linked attributes changes that Andrew and I have been working on.
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
We need to use ldb_rename() and not dsdb_module_rename() here as we
need the rename to be processed by the current module
|
|
backlinks need more careful handling now that we store the additional
meta data for deleted links. It is easier to handle this in
repl_meta_data than in linked_attributes.
Eventually linked_attributes will disappear, with the functionality
moved into repl_meta_data.
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
We now have the core code for handling storage of linked attribute
meta-data with local modifies
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
When in functional levels above w2k, we need to store much richer meta
data about linkked attributes. We also need to keep deleted linked
attributes around to allow the deletion to be propogated to other DCs.
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
|
|
|
|
This allows us to search below the current module. That
will be important when we start using the results of this
search to get the linked attributes meta data right
|
|
Updating of uSNChanged broke in a recent change
|
|
Uses the dsdb_msg_add_guid() to add any kind of GUID attribute
to a ldb_message in several places of samba4 code.
Signed-off-by: Andrew Tridgell <tridge@samba.org>
|
|
|
|
The bug here was that by assuming all linked attributes were 'normal
DNs', we would miss the binary portion of DN+Binary.
This patch then has us reparse the string to determine it's GUID, for
the GUID lookup, but maintains the binary porition into the on-disk
format.
Andrew Bartlett
|
|
This ensures that the partition control, needed here for repl_meta_data's
internal work, is not pushed up to other callers.
Andrew Bartlett
|
|
This is no longer required, as the instancetype module is now above
repl_meta_data.
Andrew Bartlett
|
|
This major rework of repl_meta_data changes it from using a static
list of partitions to a dynamic list created from the controls placed
on returned ldb results.
To process these in one place, the similar but distinct callbacks are
combined into a single replmd_op_callback(), which handles both the
'normal operation' and 'inbound replication' case.
This allows new partitions to be created, and replication events for
these new partitions to be scheduled immediately.
Also in this commit: We no longer specify the target partition for new
or modified objects - instead we allow the partitions module to use
the DN as normal. THis avoids the issue where we would create two
partition head records.
Andrew Bartlett
|
|
|
|
This allows the partition to be created before we try and set a
notification on it. (perhaps extra work required here for partition
heads).
Andrew Bartlett
|
|
(except as part of the provision, which specifies the 'relax' control)
Andrew Bartlett
|
|
- Add more "talloc_free"s and right error values where needed
- Add a pre-lookup for entries before searching for metadata attribute
(also suggested by TODO list)
- Now the most part of "ldap.py" works again
|
|
|
|
request that specify objectGUID attribute.
|
|
|
|
|
|
When we vampire from w2k8-r2, the DC sends us a linked attribute for
our machine account which has a target DN with a GUID of the OU=Domain
Controllers objects, but has a DN of CN=Computers. We need to use the
GUID to resolve the real DN.
|
|
This also ensures we add the SHOW_DELETED control on searches for old
replPropertyMetaData attributes
|
|
|
|
We need to sort on both module add and modify
|
|
We need to add instanceType on new records if not added by caller. This is needed in repl_meta_data
to ensure we fill in the meta data for replication
|
|
w2k8 sometimes sends us a new object via DRS with an attribute with no
values
|
|
These additional debug messages were added to help us track down
w2k8->s4 domain join
|
|
|
|
With a w2k8-R2 DC, we sometimes get linked attribute updates via DRS
which are duplicates of entries that we already have. We need to cope
with this by using a remove/add pair in the ldb_modify() to avoid a
"entry already exists" error
|
|
we were setting local_usn after the marshall, so it wasn't going into
the object
|
|
On a rename we need to update uSNChanged, and the max uSN for the
partition
|
|
We could get a double free with multiple linked attributes in a
message
|
|
|