[PATCH 2/3] libsmb: provide authinfo domain for DFS referral auth
David Disseldorp
ddiss at samba.org
Fri Jan 16 08:21:23 MST 2015
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 <ddiss at samba.org>
---
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
More information about the samba-technical
mailing list