summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/libnet/libnet_join.c4
-rw-r--r--source3/librpc/gen_ndr/libnet_join.h3
-rw-r--r--source3/librpc/gen_ndr/ndr_libnet_join.c1
-rw-r--r--source3/librpc/idl/libnet_join.idl2
4 files changed, 9 insertions, 1 deletions
diff --git a/source3/libnet/libnet_join.c b/source3/libnet/libnet_join.c
index 4f9e4c1c86..9bed346b5e 100644
--- a/source3/libnet/libnet_join.c
+++ b/source3/libnet/libnet_join.c
@@ -630,7 +630,7 @@ static bool libnet_join_joindomain_store_secrets(TALLOC_CTX *mem_ctx,
if (!secrets_store_machine_password(r->in.machine_password,
r->out.netbios_domain_name,
- SEC_CHAN_WKSTA))
+ r->in.secure_channel_type))
{
DEBUG(1,("Failed to save machine password\n"));
return false;
@@ -1412,6 +1412,8 @@ WERROR libnet_init_JoinCtx(TALLOC_CTX *mem_ctx,
ctx->in.machine_name = talloc_strdup(mem_ctx, global_myname());
W_ERROR_HAVE_NO_MEMORY(ctx->in.machine_name);
+ ctx->in.secure_channel_type = SEC_CHAN_WKSTA;
+
*r = ctx;
return WERR_OK;
diff --git a/source3/librpc/gen_ndr/libnet_join.h b/source3/librpc/gen_ndr/libnet_join.h
index 8dbadcf0a2..0415f030b4 100644
--- a/source3/librpc/gen_ndr/libnet_join.h
+++ b/source3/librpc/gen_ndr/libnet_join.h
@@ -7,6 +7,8 @@
#ifndef _HEADER_libnetjoin
#define _HEADER_libnetjoin
+enum netr_SchannelType;
+
struct libnet_JoinCtx {
struct {
@@ -25,6 +27,7 @@ struct libnet_JoinCtx {
uint8_t modify_config;
struct ads_struct *ads;/* [ref] */
uint8_t debug;
+ enum netr_SchannelType secure_channel_type;
} in;
struct {
diff --git a/source3/librpc/gen_ndr/ndr_libnet_join.c b/source3/librpc/gen_ndr/ndr_libnet_join.c
index 6e65d03977..ac8f7ee71d 100644
--- a/source3/librpc/gen_ndr/ndr_libnet_join.c
+++ b/source3/librpc/gen_ndr/ndr_libnet_join.c
@@ -36,6 +36,7 @@ _PUBLIC_ void ndr_print_libnet_JoinCtx(struct ndr_print *ndr, const char *name,
ndr_print_ads_struct(ndr, "ads", r->in.ads);
ndr->depth--;
ndr_print_uint8(ndr, "debug", r->in.debug);
+ ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
ndr->depth--;
}
if (flags & NDR_OUT) {
diff --git a/source3/librpc/idl/libnet_join.idl b/source3/librpc/idl/libnet_join.idl
index 65d17c9203..3975d83a80 100644
--- a/source3/librpc/idl/libnet_join.idl
+++ b/source3/librpc/idl/libnet_join.idl
@@ -12,6 +12,7 @@ import "wkssvc.idl", "security.idl";
interface libnetjoin
{
typedef bitmap wkssvc_joinflags wkssvc_joinflags;
+ typedef enum netr_SchannelType netr_SchannelType;
[nopush,nopull,noopnum] WERROR libnet_JoinCtx(
[in] string dc_name,
@@ -29,6 +30,7 @@ interface libnetjoin
[in] boolean8 modify_config,
[in] ads_struct *ads,
[in] boolean8 debug,
+ [in] netr_SchannelType secure_channel_type,
[out] string account_name,
[out] string netbios_domain_name,
[out] string dns_domain_name,