From 53d55794dfbce06fcb40e5bdd81ca8a6dc1c4655 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Fri, 29 Feb 2008 01:27:52 +0100 Subject: [PATCH] libnetjoin: add fallback to level 24 samr setinfo so that libnet can join NT4. Guenther (This used to be commit bc2d3d51449831146a9faf6e809e7a91d174659c) --- source3/libnet/libnet_join.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/source3/libnet/libnet_join.c b/source3/libnet/libnet_join.c index b8572f68b5b..1a8486f5b51 100644 --- a/source3/libnet/libnet_join.c +++ b/source3/libnet/libnet_join.c @@ -883,6 +883,25 @@ static NTSTATUS libnet_join_joindomain_rpc(TALLOC_CTX *mem_ctx, &user_pol, 25, &user_info); + + if (NT_STATUS_EQUAL(status, NT_STATUS(DCERPC_FAULT_INVALID_TAG))) { + + uchar pwbuf2[516]; + + encode_pw_buffer(pwbuf2, r->in.machine_password, STR_UNICODE); + + /* retry with level 24 */ + init_samr_user_info24(&user_info.info24, pwbuf2, 24); + + SamOEMhashBlob(user_info.info24.password.data, 516, + &cli->user_session_key); + + status = rpccli_samr_SetUserInfo2(pipe_hnd, mem_ctx, + &user_pol, + 24, + &user_info); + } + if (!NT_STATUS_IS_OK(status)) { libnet_join_set_error_string(mem_ctx, r, "Failed to set password for machine account (%s)\n", -- 2.34.1