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

261 Commits

Author SHA1 Message Date
Amitay Isaacs
ab375526e8 s4-dsdb: Fix the case for attribute name msDS-hasMasterNCs
Autobuild-User: Amitay Isaacs <amitay@samba.org>
Autobuild-Date: Wed Mar 14 11:59:02 CET 2012 on sn-devel-104
2012-03-14 11:59:02 +01:00
Andrew Tridgell
204c07501d Revert "s4-drs: do not try to contact for replication servers that are not anymore in reps*"
This reverts commit 5bfd6251eb22ff701184a95649822a73cf4d157b.

This change has been causing regular segfaults in the build farm since
it was applied. I also think it may be unnecessary as
dreplsrv_refresh_partitions() should already be achieving the same
thing (removing stale replication targets).

I think the segfaults were caused by freeing an in-flight DSA, but I
have been unable to reproduce it outside of the build farm

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Feb  1 07:49:42 CET 2012 on sn-devel-104
2012-02-01 07:49:41 +01:00
Matthieu Patou
5bfd6251eb s4-drs: do not try to contact for replication servers that are not anymore in reps*
Servers connection can be removed from repsTo and respFrom either due to
DC demote or topology change by the KCC, if a server is removed from the
reps* it must be effectivly removed from the list of server that we will
contact for getNcChanges and for replicaSync.

Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Mon Dec  5 19:56:09 CET 2011 on sn-devel-104
2011-12-05 19:56:09 +01:00
Matthieu Patou
059523e203 s4-resolver: do not use all the A and AAAA records, those after a NS are not the one we want to use 2011-12-05 18:23:08 +01:00
Matthieu Patou
2f8a84bb7b s4-drs: mark WERR_DS_DRA_BUSY as a non error in DsReplicaUpdateRefs 2011-12-05 18:23:07 +01:00
Amitay Isaacs
2e4bf8bfcd s4-repl: Check if GC SPN exists before using it for replication
Sometimes windows DC will set up dNSHostname before setting up
GC SPN and that causes replication errors since samba tries to
use GC SPN, which does not yet exist locally.

Pair-Programmed-With: Andrew Tridgell <tridge@samba.org>
2011-11-29 16:00:36 +11:00
Amitay Isaacs
c8ac3678ad s4-drepl: Search for application partitions in addition to main ones
To replicate application partitions (e.g. DNS partitions) consult
msDs-hasMasterNCs attribute as well. Also, make sure we don't add
same partition twice in the list. hasMasterNCs and msDs-hasMasterNCs
have domain, configuration and schema partitions common.

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2011-11-02 15:26:55 +11:00
Andrew Tridgell
8976e1d50d s4-rodc: use the rodc_replica flag on the partition
this sets DSDB_REPL_FLAG_PARTIAL_REPLICA when replicating a RODC
partition, which tells the replication code to map instanceType to
remove the INSTANCE_TYPE_WRITE bit

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-10-06 14:34:21 +11:00
Andrew Tridgell
2a2deeb3b4 s4-rodc: ensure we load replicated partitions for RODCs
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-10-06 14:34:21 +11:00
Andrew Bartlett
5c5d869975 s4-dsdb Allow repl server to start even when no master NCs are present 2011-10-06 02:11:34 +02:00
Andrew Tridgell
b930b1e1fc s4-repl: try harder to find the right SPN in replication server
when doing DRS between domains, using the right SPN is essential so
the KDC can generate referrals to point us at the right DC.  We prefer
the GC/hostname/DNSDOMAIN form if possible, but if we can't find the
hostname then this changes the code that generates the target
principal name to use either the msDS-HasDomainNCs or hasMasterNCs
attributes to try to find the target DC domainname so we can use the
E3514235-4B06-11D1-AB04-00C04FC2DCD2/GUID/DNSDOMAIN SPN form.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-10-04 15:08:57 +11:00
Andrew Tridgell
60cbc98051 s4-dsdb: added new control DSDB_MODIFY_PARTIAL_REPLICA
this control tells the partition module that the DN being created is a
partial replica, so it should modify the @PARTITION object to add the
partialReplica attribute

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-10-04 15:08:57 +11:00
Andrew Tridgell
faf8581e38 s4-repl: support creation of new NCs via DsAddEntry
this adds a flag to dsdb_origin_objects_commit that tells it to create
a new NC based on the nCName in a crossRef object
2011-10-04 15:08:56 +11:00
Andrew Tridgell
df3cc35f74 s4-repl: fixed formatting of some debug messages 2011-10-04 15:08:56 +11:00
Andrew Tridgell
761fd4af2e s4-repl: update instanceType in partial_replica replication
when we receive objects to a partial replica, we need to change the
incoming instanceType to not include the INSTANCE_TYPE_WRITE
flag. Partial replicas unset this flag.
2011-10-04 15:08:56 +11:00
Andrew Tridgell
f37e81bbc5 s4-repl: add FULL_SYNC and PARTIAL_REPLICA flags
this sets the appropriate flags for replication with FULL_SYNC and
partial replica replications
2011-10-04 15:08:56 +11:00
Andrew Tridgell
516f32654a s4-repl: remove unused principal_name element 2011-09-22 10:00:49 +10:00
Andrew Tridgell
8c3d77d84c s4-repl: fill in GUID and SID from partition information
when we find a NC via a DN string, fill in the GUID and SID so the
caller can properly report them
2011-09-22 10:00:49 +10:00
Andrew Tridgell
7da636f33a s4-dsdb: get GUID and SID for DSA from extended DN
this allows us to use the DN from a hasPartialReplicaNCs attribute to
create a reps1 object
2011-09-22 10:00:48 +10:00
Andrew Tridgell
2b929b0b51 s4-dsdb: enable initial replication of partitions via DsReplicaSync
we need to create a temporary dsa object to allow the replication task
to replicate a NC that is not listed in a repsFrom attribute
2011-09-22 10:00:48 +10:00
Andrew Tridgell
86f5ecdc0c s4-repl: get NCs to replicate from our NTDS object
we need to use the hasMasterNCs and hasPartialReplicaNCs attributes on
our NTDS object to get the list of NCs to replicate, instead of using
the rootDSE. This is needed to support replicating of GC partial
replicas, which are not listed in the rootDSE
2011-09-22 10:00:48 +10:00
Andrew Tridgell
4efb4ebe63 s4-dsdb: added support for replicating with GC partial attribute set
if we are replicating a partial replica, then we need to supply the
partial attribute set we want to replicate to the server
2011-09-22 10:00:48 +10:00
Andrew Tridgell
5a9dc1d216 s4-repl: fixed _msdcs DNS name
another multi-domain fix
2011-08-25 07:39:38 +10:00
Simo Sorce
f364daed22 s4:dsdb: use tevent_ fn names instaed of legacy event_ ones 2011-08-13 09:54:15 -04:00
Andrew Bartlett
e2733d362d s4-dsdb clarify that failure to load the schema items from DRS is expected
This happens if we have a custom schema - we need to build up the schema until
it loads, by converting more objects.

Andrew Bartlett

Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Tue Aug  9 13:10:25 CEST 2011 on sn-devel-104
2011-08-09 13:10:25 +02:00
Andrew Bartlett
35b309fa0c gensec: clarify memory ownership for gensec_session_info() and gensec_session_key()
This is slightly less efficient, because we no longer keep a cache on
the gensec structures, but much clearer in terms of memory ownership.
Both gensec_session_info() and gensec_session_key() now take a mem_ctx
and put the result only on that context.

Some duplication of memory in the callers (who were rightly uncertain
about who was the rightful owner of the returned memory) has been
removed to compensate for the internal copy.

Andrew Bartlett
2011-08-03 18:48:02 +10:00
Kamen Mazdrashki
a8798d8bce s4/drepl_fsmo: Add an CR so that message is visible in the logs
Autobuild-User: Kamen Mazdrashki <kamenim@samba.org>
Autobuild-Date: Wed May 11 21:03:59 CEST 2011 on sn-devel-104
2011-05-11 21:03:59 +02:00
Andrew Bartlett
cdd802af83 s4-messaging Rename messaging -> imessaging
This avoid symbol and structure conflicts between Samba3 and Samba4,
and chooses a less generic name.

Andrew Bartlett
2011-05-03 07:37:07 +02:00
Andrew Tridgell
b32f155bae s4-dsdb: perform FSMO transfers asynchronously
this gives the administrator a proper error message on the command
line

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-03-29 00:00:22 +02:00
Kamen Mazdrashki
fb7975d590 s4-repl/working_schema: Ignore some attributes when bulding working schema cache
We don't need all object attributes resolved and converted for a working
schema to be functional.
2011-03-01 02:59:25 +01:00
Kamen Mazdrashki
f518dbc089 s4-replicated_objects: Implement a mechanism to relax some attributes conversion
during replicated object convert stage.
The problem is that we may have loops in schema graph and we can't
resolve those loops in just one pass. Ignoring some attributes
conversion will allow us to have a functional schema cache that we
can use later to resolve all attribute OIDs on another pass
2011-03-01 02:59:25 +01:00
Kamen Mazdrashki
1ca2ec1188 s4-drepl: Schedule event to trigger replication rather than calling run_pending_ops directly
Executing dreplsrv_run_pending_ops() directly may cause a segfault
as in case of failure, the _drepl_replica_sync_done_cb() callback
gets called *before* drepl_replica_sync() returns. In such case,
irpc message gets freed twice - once when irpc_send_reply() gets called
and once when drepl_replica_sync() returns
2011-02-27 00:23:18 +02:00
Kamen Mazdrashki
05c90d2fa6 s4-drepl: Fix replica sync callback to really store last error rather than last success 2011-02-27 00:23:18 +02:00
Kamen Mazdrashki
d7f47fb87c s4-drepl: Refactor dreplsrv_run_pull_ops() to
1. Take into account DSA options - we should not send replication
   requests in case OUTBOUND_REPLICATION is disabled
2. Use replication flags for the operation to determine if
   a forced replication is requested
3. In case outbound replication is disabled and we don't have
   DRSUAPI_DRS_SYNC_FORCED flag set, then we should record
   WERR_DS_DRA_SINK_DISABLED error as a last replication result
2011-02-27 00:23:17 +02:00
Kamen Mazdrashki
f0bde828e0 s4-drepl: Pass replication options from DsReplicaSync call 2011-02-27 00:23:16 +02:00
Andrew Bartlett
e3821f2c40 s4-auth Move libcli/security/session.c to the top level
This code is now useful in common, as the elements of the
auth_session_info structure have now been defined in common IDL.

Andrew Bartlett
2011-02-22 16:20:11 +11:00
Andrew Tridgell
8dc92c8f71 ldb: use #include <ldb.h> for ldb
thi ensures we are using the header corresponding to the version of
ldb we're linking against. Otherwise we could use the system ldb for
link and the in-tree one for include

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-10 06:51:07 +01:00
Kamen Mazdrashki
7157221da5 s4-drepl: During Schema replication, we need to save updated prefixMap if everything is OK
Autobuild-User: Kamen Mazdrashki <kamenim@samba.org>
Autobuild-Date: Sat Dec 18 05:53:48 CET 2010 on sn-devel-104
2010-12-18 05:53:48 +01:00
Kamen Mazdrashki
bd6f9efc1e s4-drepl: Make refreshed schema a global one
We need to do this as dsdb_reference_schema() function
clears "use_global_schema" ldb flag.

Basically what is going to happen is that after dsdb_reference_schema()
global_schema pointer will continue to point at old schema cache,
while "dsdb_schema" for LDB will point at the working_schema.

After replication is done, we reset "dsdb_schema" for the ldb
with an updated Schema cache, but this leaves global_schema pointer
with its old value, which is not up to date.
So we need to call dsdb_make_schema_global() again so that global_schema
points to a valid Schema cache.
2010-12-18 05:32:14 +02:00
Kamen Mazdrashki
839fe07359 s4-drepl: Reference current Schema cache into working_schema context
working_schema is a shallow copy of current schema and thus
depends on part of it. So we want it to be around as long as
working_schema is used.

Autobuild-User: Kamen Mazdrashki <kamenim@samba.org>
Autobuild-Date: Fri Dec 17 23:34:29 CET 2010 on sn-devel-104
2010-12-17 23:34:29 +01:00
Kamen Mazdrashki
b4476d5f7d s4-drepl: Fix log message to be shown on its own line 2010-12-17 23:47:25 +02:00
Kamen Mazdrashki
0a9f780d26 s4-drepl: We won't need a working schema for empty replicas sent.
Without this check, receiving empty replica leads to a situation
where we left with a working_schema attached to the ldb.

The problem here is that working_schema is not fully functional
schema cache and keeping it attached to the ldb may lead
to modules failing to accomplish their jobs
2010-12-15 00:51:19 +01:00
Kamen Mazdrashki
18744a9531 s4-drepl: User working schema for commiting objects when replicating Schema NC 2010-12-15 00:51:19 +01:00
Kamen Mazdrashki
c94e5d4438 s4-repl: Allow dsdb_replicated_objects_commit() to use different schema while committing objects
working_schema is to be used while committing a Schema replica.

When we replicate Schema, then we most probably won't be
able to convert all replicated objects using the current
Schema cache (as we don't know anything about those new objects).

Thus, during Schema replication, we make a temporary
working_schema that contains both our current Schema +
all objects we get on the wire.
When we commit those new objects, we should use our working_schema
(by setting it to the ldb), and after all changes are commited,
we can refresh the schema cache so we have a brand new,
full-featured Schema cache
2010-12-15 00:51:19 +01:00
Matthias Dieter Wallnöfer
56290d0b33 s4:dsdb/repl/replicated_objects.c - proof if "talloc_reference" doesn't return NULL
Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Wed Dec  1 17:14:01 CET 2010 on sn-devel-104
2010-12-01 17:14:01 +01:00
Kamen Mazdrashki
cf8ffc37b4 s4-dreplsrv: Use working_schema when replicating from Schema NC
Schema is changed and it is quite possible we won't be able
to decode replicated objects using current Schema cache we have.

Thus, when replicating Schema, we will make a temporary Schema
cache, working_schema, so that we can fully decode objects
we recieve.
2010-12-01 13:01:17 +02:00
Kamen Mazdrashki
a42e267105 s4-dsdb/schema: Implement multi-pass working schema creation function
It is heavily based on implementation in libnet_vampire_cb_apply_schema()
function, except that it actually creates a new copy of the supplied
initial_schema + resolving all incoming objects and add them to
supplied initial_schema.

We are going to need this 'working_schema' later so we are able
to fully resolve all objects we receive on wire during DRS replication.

Working schema created is to be used only as an index to search in.
It is not supposed to be set to an ldb_context as it doesn't
contain all information for classSchema and attributeSchema objects.
2010-12-01 13:01:17 +02:00
Kamen Mazdrashki
4041791d01 s4-repl: Let dsdb_replicated_objects_convert() to accept schema from caller
This allows us to use schema that is different than the one
set to 'ldb' to decode objects.
2010-12-01 13:01:16 +02:00
Matthias Dieter Wallnöfer
736d36a948 s4:dsdb/repl/drepl* - move "lib/messaging/irpc.h" include into "drepl_service.h"
This is needed to fix a Tru64 "cc" warning regarding "enum drepl_role_master".

Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Sun Nov 28 12:46:19 CET 2010 on sn-devel-104
2010-11-28 12:46:19 +01:00
Matthias Dieter Wallnöfer
eaac277381 s4:dsdb/repl/drepl_service.c - return the correct WERR result 2010-11-27 21:50:42 +01:00