From 9473d87e98697fc29db4608ef7b1072417ff3717 Mon Sep 17 00:00:00 2001 From: David Disseldorp Date: Fri, 16 Jan 2015 12:27:13 +0100 Subject: [PATCH] libsmb: provide authinfo domain for DFS referral auth libsmbclient uses the smbc_init->smbc_get_auth_data_fn() provided workgroup/domain in initial connections, but then switches to the default smb.conf workgroup/domain when handling DFS referrals. Bug: https://bugzilla.samba.org/show_bug.cgi?id=11059 Signed-off-by: David Disseldorp --- source3/libsmb/clidfs.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c index c554def..79d88a5 100644 --- a/source3/libsmb/clidfs.c +++ b/source3/libsmb/clidfs.c @@ -111,6 +111,7 @@ static NTSTATUS do_connect(TALLOC_CTX *ctx, char *newserver, *newshare; const char *username; const char *password; + const char *domain; NTSTATUS status; int flags = 0; @@ -184,11 +185,15 @@ static NTSTATUS do_connect(TALLOC_CTX *ctx, username = get_cmdline_auth_info_username(auth_info); password = get_cmdline_auth_info_password(auth_info); + domain = get_cmdline_auth_info_domain(auth_info); + if ((domain == NULL) || (domain[0] == '\0')) { + domain = lp_workgroup(); + } status = cli_session_setup(c, username, password, strlen(password), password, strlen(password), - lp_workgroup()); + domain); if (!NT_STATUS_IS_OK(status)) { /* If a password was not supplied then * try again with a null username. */ @@ -237,7 +242,7 @@ static NTSTATUS do_connect(TALLOC_CTX *ctx, force_encrypt, username, password, - lp_workgroup())) { + domain)) { cli_shutdown(c); return do_connect(ctx, newserver, newshare, auth_info, false, @@ -259,7 +264,7 @@ static NTSTATUS do_connect(TALLOC_CTX *ctx, status = cli_cm_force_encryption(c, username, password, - lp_workgroup(), + domain, sharename); if (!NT_STATUS_IS_OK(status)) { cli_shutdown(c); -- 2.1.2