s3: libnet_join: use admin_domain in libnetjoin.
authorGünther Deschner <gd@samba.org>
Wed, 24 Sep 2008 09:05:37 +0000 (11:05 +0200)
committerAndreas Schneider <asn@samba.org>
Mon, 5 Aug 2013 08:30:01 +0000 (10:30 +0200)
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/libnet/libnet_join.c

index 348fb94bc500288eb55975d22a5cc1e0a6bbe947..4582158fca49df163725eebb43c02b2d5d84478d 100644 (file)
@@ -686,6 +686,7 @@ static bool libnet_join_joindomain_store_secrets(TALLOC_CTX *mem_ctx,
 
 static NTSTATUS libnet_join_connect_dc_ipc(const char *dc,
                                           const char *user,
+                                          const char *domain,
                                           const char *pass,
                                           bool use_kerberos,
                                           struct cli_state **cli)
@@ -705,7 +706,7 @@ static NTSTATUS libnet_join_connect_dc_ipc(const char *dc,
                                   NULL, 0,
                                   "IPC$", "IPC",
                                   user,
-                                  NULL,
+                                  domain,
                                   pass,
                                   flags,
                                   SMB_SIGNING_DEFAULT);
@@ -727,6 +728,7 @@ static NTSTATUS libnet_join_lookup_dc_rpc(TALLOC_CTX *mem_ctx,
 
        status = libnet_join_connect_dc_ipc(r->in.dc_name,
                                            r->in.admin_account,
+                                           r->in.admin_domain,
                                            r->in.admin_password,
                                            r->in.use_kerberos,
                                            cli);
@@ -1345,6 +1347,7 @@ static NTSTATUS libnet_join_unjoindomain_rpc(TALLOC_CTX *mem_ctx,
 
        status = libnet_join_connect_dc_ipc(r->in.dc_name,
                                            r->in.admin_account,
+                                           r->in.admin_domain,
                                            r->in.admin_password,
                                            r->in.use_kerberos,
                                            &cli);
@@ -1724,6 +1727,17 @@ static WERROR libnet_join_pre_processing(TALLOC_CTX *mem_ctx,
                return WERR_SETUP_DOMAIN_CONTROLLER;
        }
 
+       if (!r->in.admin_domain) {
+               char *admin_domain = NULL;
+               char *admin_account = NULL;
+               split_domain_user(mem_ctx,
+                                 r->in.admin_account,
+                                 &admin_domain,
+                                 &admin_account);
+               r->in.admin_domain = admin_domain;
+               r->in.admin_account = admin_account;
+       }
+
        if (!secrets_init()) {
                libnet_join_set_error_string(mem_ctx, r,
                        "Unable to open secrets database");
@@ -2285,6 +2299,17 @@ static WERROR libnet_unjoin_pre_processing(TALLOC_CTX *mem_ctx,
                return WERR_SETUP_DOMAIN_CONTROLLER;
        }
 
+       if (!r->in.admin_domain) {
+               char *admin_domain = NULL;
+               char *admin_account = NULL;
+               split_domain_user(mem_ctx,
+                                 r->in.admin_account,
+                                 &admin_domain,
+                                 &admin_account);
+               r->in.admin_domain = admin_domain;
+               r->in.admin_account = admin_account;
+       }
+
        if (!secrets_init()) {
                libnet_unjoin_set_error_string(mem_ctx, r,
                        "Unable to open secrets database");