drs: Add basic GET_TGT support
authorTim Beale <timbeale@catalyst.net.nz>
Tue, 22 Aug 2017 22:23:10 +0000 (10:23 +1200)
committerGarming Sam <garming@samba.org>
Mon, 18 Sep 2017 03:51:24 +0000 (05:51 +0200)
commited2fc522439349832ad2a8a56abbf63e56011fb9
tree7efc52168a2047376bb924ec2e8a621d589e2fac
parent821094d50b0f54700c0ce619e381bbbdb9e21cd0
drs: Add basic GET_TGT support

This adds basic DRS_GET_TGT support. If the GET_TGT flag is specified
then the server will use the object cache to store the objects it sends
back. If the target object for a linked attribute is not in the cache
(i.e. it has not been sent already), then it is added to the response
message.

Note that large numbers of linked attributes will not be handled well
yet - the server could potentially try to send more than will fit in a
single repsonse message.

Also note that the client can sometimes set the GET_TGT flag even if the
server is still sending the links last. In this case, we know the client
supports GET_TGT so it's safe to send the links interleaved with the
source objects (the alternative of fetching the target objects but not
sending the links until last doesn't really make any sense).

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
selftest/knownfail.d/getnc_exop [deleted file]
selftest/knownfail.d/getncchanges
source4/dsdb/common/util.c
source4/dsdb/samdb/ldb_modules/repl_meta_data.c
source4/rpc_server/drsuapi/getncchanges.c