1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-08 21:18:16 +03:00
samba-mirror/source4/libnet
Tim Beale b3a2508f2a s4/libnet: Fix joining a Windows pre-2008R2 DC
From v4.8 onwards, Samba may not be able join a DC older than 2008R2
because the Windows DC doesn't support GET_TGT.

If the dsdb repl_md code can't resolve a link target it returns an
error, and the calling code (e.g. drs_util.py) should retry with
GET_TGT. However, GET_TGT is only supported on Windows 2008R2 and later,
so if you try to join an earlier Windows DC, the join will throw an
error that you can't work-around.

We can avoid this problem by setting the same DSDB flag that GET_TGT
sets to indicate that the link targets are as up-to-date as possible,
and so there's no point retrying. Missing targets are still logged, so
this at least allows the admin to fix up any problems after the join
completed.

I've only done this for the join case (problems during periodic
replication are probably still worth escalating to an error).

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14021
RN: From Samba v4.8 onwards, joining a Windows 2003 or 2008 (non-R2) AD
DC may not have worked. When this problem occurred, the following
message would be displayed:
 'Failed to commit objects: DOS code 0x000021bf'
This particular issue has now been resolved. Note that there may still
be other potential problems that occur when joining an older Windows DC.

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2019-07-04 22:49:23 +00:00
..
composite.h
groupinfo.c
groupinfo.h
groupman.c
groupman.h
libnet_become_dc.c libnet: Initialize req_level in become_dc tests 2017-07-28 00:25:15 +02:00
libnet_become_dc.h dsdb: Rework DSDB code to use WERROR 2016-11-04 04:41:19 +01:00
libnet_domain.c Fix spelling mistakes 2018-11-30 03:35:13 +01:00
libnet_domain.h
libnet_export_keytab.c krb5_wrap: Rename smb_krb5_open_keytab_relative() 2016-08-31 20:59:15 +02:00
libnet_export_keytab.h
libnet_group.c
libnet_group.h
libnet_join.c libnet4: Use dom_sid_str_buf 2019-01-08 03:40:28 +01:00
libnet_join.h
libnet_lookup.c Replace NT_STATUS_HAVE_NO_MEMORY macro 2018-03-03 00:00:34 +01:00
libnet_lookup.h
libnet_passwd.c lib/crypto: move gnutls error wrapper to own subsystem 2019-06-27 12:54:22 +00:00
libnet_passwd.h
libnet_rpc.c s4:libnet: make use of dcerpc_secondary_auth_connection_send/recv() 2015-07-07 14:05:28 +02:00
libnet_rpc.h
libnet_samsync.h libnet: Remove unused source4/libnet/libnet_sam{dump,sync}: 2019-05-06 07:11:51 +00:00
libnet_share.c s4:libnet: fix 'Syscall param writev(vector[...])' valgrind error 2016-04-25 10:35:14 +02:00
libnet_share.h
libnet_site.c
libnet_site.h
libnet_time.c
libnet_time.h
libnet_unbecome_dc.c
libnet_unbecome_dc.h
libnet_user.c
libnet_user.h
libnet_vampire.c s4/libnet: Fix joining a Windows pre-2008R2 DC 2019-07-04 22:49:23 +00:00
libnet_vampire.h
libnet.c talloc_zero libnet_context on init 2018-02-01 00:33:34 +01:00
libnet.h
prereq_domain.c
py_net_dckeytab.c s4: squash 'cast between incompatible function types' warning 2019-05-16 17:55:17 +00:00
py_net.c py3: Remove PyStr_FromString() compatability macro 2019-06-24 17:24:27 +00:00
py_net.h
userinfo.c
userinfo.h
userman.c
userman.h
wscript_build lib/crypto: move gnutls error wrapper to own subsystem 2019-06-27 12:54:22 +00:00