summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2002-09-27 16:51:22 +0000
committerVolker Lendecke <vlendec@samba.org>2002-09-27 16:51:22 +0000
commitc7de62d839634a85295d1a0ef5a48270ef30aa93 (patch)
tree4017d6899d13781b28a6fa47d7dd26125f2256c0
parentbba2ee620a286dcc7fcd509c8954227e203274a1 (diff)
downloadsamba-c7de62d839634a85295d1a0ef5a48270ef30aa93.tar.gz
samba-c7de62d839634a85295d1a0ef5a48270ef30aa93.tar.xz
samba-c7de62d839634a85295d1a0ef5a48270ef30aa93.zip
Touching somebody else's code again... Sorry, Richard.
smbclient would announce that it can send UNICODE, but would send the plain text password in ASCII. This confused Samba HEAD somewhat. This change has been tested against Samba HEAD of today and Samba 2.2.1a. I do not have any other servers that do plain text passwords. Anybody? Volker
-rw-r--r--source/libsmb/cliconnect.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/source/libsmb/cliconnect.c b/source/libsmb/cliconnect.c
index 62acccdfb77..ebadafd5f05 100644
--- a/source/libsmb/cliconnect.c
+++ b/source/libsmb/cliconnect.c
@@ -188,7 +188,14 @@ static BOOL cli_session_setup_plaintext(struct cli_state *cli, char *user,
int passlen;
char *p;
- passlen = clistr_push(cli, pword, pass, sizeof(pword), STR_TERMINATE|STR_ASCII);
+ int push_flags = STR_TERMINATE;
+
+ if (capabilities & CAP_UNICODE)
+ push_flags |= STR_UNICODE;
+ else
+ push_flags |= STR_ASCII;
+
+ passlen = clistr_push(cli, pword, pass, sizeof(pword), push_flags);
set_message(cli->outbuf,13,0,True);
SCVAL(cli->outbuf,smb_com,SMBsesssetupX);
@@ -202,7 +209,7 @@ static BOOL cli_session_setup_plaintext(struct cli_state *cli, char *user,
SSVAL(cli->outbuf,smb_vwv8,0);
SIVAL(cli->outbuf,smb_vwv11,capabilities);
p = smb_buf(cli->outbuf);
- p += clistr_push(cli, p, pword, -1, STR_TERMINATE); /* password */
+ p += clistr_push(cli, p, pass, -1, push_flags); /* password */
SSVAL(cli->outbuf,smb_vwv7,PTR_DIFF(p, smb_buf(cli->outbuf)));
p += clistr_push(cli, p, user, -1, STR_TERMINATE); /* username */
p += clistr_push(cli, p, workgroup, -1, STR_TERMINATE); /* workgroup */