From 0cf16e6b47f5978bdcb84ac8a29ef13ff2b5cca8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Tue, 22 Apr 2008 01:54:49 +0200 Subject: [PATCH] libnetjoin: identify type of domain early. This finally enables joining AD using workgroup or realm name. Guenther --- source/libnet/libnet_join.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/source/libnet/libnet_join.c b/source/libnet/libnet_join.c index d22fbc21b93..7e348e25a57 100644 --- a/source/libnet/libnet_join.c +++ b/source/libnet/libnet_join.c @@ -142,8 +142,8 @@ static ADS_STATUS libnet_join_connect_ads(TALLOC_CTX *mem_ctx, { ADS_STATUS status; - status = libnet_connect_ads(r->in.domain_name, - r->in.domain_name, + status = libnet_connect_ads(r->out.dns_domain_name, + r->out.netbios_domain_name, r->in.dc_name, r->in.admin_account, r->in.admin_password, @@ -1641,8 +1641,21 @@ static WERROR libnet_DomainJoin(TALLOC_CTX *mem_ctx, W_ERROR_HAVE_NO_MEMORY(r->in.dc_name); } + status = libnet_join_lookup_dc_rpc(mem_ctx, r, &cli); + if (!NT_STATUS_IS_OK(status)) { + libnet_join_set_error_string(mem_ctx, r, + "failed to lookup DC info for domain '%s' over rpc: %s", + r->in.domain_name, get_friendly_nt_error_msg(status)); + return ntstatus_to_werror(status); + } + + werr = libnet_join_check_config(mem_ctx, r); + if (!W_ERROR_IS_OK(werr)) { + goto done; + } + #ifdef WITH_ADS - if (r->in.account_ou) { + if (r->out.domain_is_ad && r->in.account_ou) { ads_status = libnet_join_connect_ads(mem_ctx, r); if (!ADS_ERR_OK(ads_status)) { @@ -1662,19 +1675,6 @@ static WERROR libnet_DomainJoin(TALLOC_CTX *mem_ctx, } #endif /* WITH_ADS */ - status = libnet_join_lookup_dc_rpc(mem_ctx, r, &cli); - if (!NT_STATUS_IS_OK(status)) { - libnet_join_set_error_string(mem_ctx, r, - "failed to lookup DC info for domain '%s' over rpc: %s", - r->in.domain_name, get_friendly_nt_error_msg(status)); - return ntstatus_to_werror(status); - } - - werr = libnet_join_check_config(mem_ctx, r); - if (!W_ERROR_IS_OK(werr)) { - goto done; - } - status = libnet_join_joindomain_rpc(mem_ctx, r, cli); if (!NT_STATUS_IS_OK(status)) { libnet_join_set_error_string(mem_ctx, r, -- 2.11.4.GIT