diff options
author | Tim Beale <timbeale@catalyst.net.nz> | 2017-06-15 16:52:33 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-08-18 06:07:12 +0200 |
commit | cc201c2c4f5d2dfd18f68143d001c5ba02c00b32 (patch) | |
tree | deed2f8e6b23078618aba26b98037bef45d73c30 /librpc | |
parent | 67617d470028b45c722c598944a17591cab1e6ba (diff) | |
download | samba-cc201c2c4f5d2dfd18f68143d001c5ba02c00b32.tar.gz |
drepl: Support GET_TGT on periodic replication client
- Update IDL comments to include Microsoft reference doc
- Add support for sending v10 GetNCChanges request (needed for the
GET_TGT flag, which is in the new 'more_flags' field)
- Update to also set the GET_TGT flag in the same place we were setting
GET_ANC (I split this logic out into a separate function).
- The state struct now needs to hold a 'more_flags' field as well (this
flag is different to the GET_ANC replica flag)
Note that using the GET_TGT when replicating from a Windows DC could be
highly inefficient. Because Samba keeps the GET_TGT flag set throughout
the replication cycle, it will basically receive a repeated object from
Windows for every single linked attribute that it receives.
I believe Windows behaviour only expects the client to set the GET_TGT
flag when it actually needs to (i.e. when it receives a target object it
doesn't know about), rather than throughout the replication cycle.
However, this approach won't work with Samba-to-Samba replication,
because when the server receives the GET_TGT flag it restarts the
replication cycle from scratch. So if we only set the GET_TGT flag when
the client encountered an unknown target then Samba-to-Samba could
potentially get into an endless replication loop.
Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Garming Sam <garming@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12972
Diffstat (limited to 'librpc')
-rw-r--r-- | librpc/idl/drsuapi.idl | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl index 2eb1d655f89..51ef567c807 100644 --- a/librpc/idl/drsuapi.idl +++ b/librpc/idl/drsuapi.idl @@ -70,7 +70,9 @@ interface drsuapi } drsuapi_DrsUpdate; /*****************/ - /* Function 0x00 */ + /* Function 0x00 drsuapi_DsBind() */ + + /* MS-DRSR 5.39 DRS_EXTENSIONS_INT */ typedef [bitmap32bit] bitmap { DRSUAPI_SUPPORTED_EXTENSION_BASE = 0x00000001, DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = 0x00000002, |