svn commit: samba r19481 - in
branches/SAMBA_4_0/source/libcli/smb_composite: .
metze at samba.org
metze at samba.org
Tue Oct 24 16:16:31 GMT 2006
Author: metze
Date: 2006-10-24 16:16:31 +0000 (Tue, 24 Oct 2006)
New Revision: 19481
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19481
Log:
- reset the vuid before trying a new session setup
- only touch session->vuid when needed
- it make no sense to set an .spnego.out.vuid
metze
Modified:
branches/SAMBA_4_0/source/libcli/smb_composite/sesssetup.c
Changeset:
Modified: branches/SAMBA_4_0/source/libcli/smb_composite/sesssetup.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/smb_composite/sesssetup.c 2006-10-24 16:14:00 UTC (rev 19480)
+++ branches/SAMBA_4_0/source/libcli/smb_composite/sesssetup.c 2006-10-24 16:16:31 UTC (rev 19481)
@@ -80,6 +80,8 @@
/* This doesn't work, as this only happens on old
* protocols, where this comparison won't match. */
if (NT_STATUS_EQUAL(c->status, NT_STATUS_LOGON_FAILURE)) {
+ /* we neet to reset the vuid for a new try */
+ session->vuid = 0;
if (cli_credentials_wrong_password(state->io->in.credentials)) {
nt_status = session_setup_old(c, session,
state->io,
@@ -97,6 +99,8 @@
case RAW_SESSSETUP_NT1:
state->io->out.vuid = state->setup.nt1.out.vuid;
if (NT_STATUS_EQUAL(c->status, NT_STATUS_LOGON_FAILURE)) {
+ /* we neet to reset the vuid for a new try */
+ session->vuid = 0;
if (cli_credentials_wrong_password(state->io->in.credentials)) {
nt_status = session_setup_nt1(c, session,
state->io,
@@ -112,8 +116,10 @@
break;
case RAW_SESSSETUP_SPNEGO:
- session->vuid = state->io->out.vuid = state->setup.spnego.out.vuid;
+ state->io->out.vuid = state->setup.spnego.out.vuid;
if (NT_STATUS_EQUAL(c->status, NT_STATUS_LOGON_FAILURE)) {
+ /* we neet to reset the vuid for a new try */
+ session->vuid = 0;
if (cli_credentials_wrong_password(state->io->in.credentials)) {
nt_status = session_setup_spnego(c, session,
state->io,
@@ -160,7 +166,14 @@
}
if (state->setup.spnego.in.secblob.length) {
+ /*
+ * set the session->vuid value only for calling
+ * smb_raw_sesssetup_send()
+ */
+ uint16_t vuid = session->vuid;
+ session->vuid = state->io->out.vuid;
state->req = smb_raw_sesssetup_send(session, &state->setup);
+ session->vuid = vuid;
state->req->async.fn = request_handler;
state->req->async.private = c;
return;
@@ -343,8 +356,6 @@
state->setup.spnego.in.lanman = talloc_asprintf(state, "Samba %s", SAMBA_VERSION_STRING);
state->setup.spnego.in.workgroup = io->in.workgroup;
- state->setup.spnego.out.vuid = session->vuid;
-
smbcli_temp_set_signing(session->transport);
status = gensec_client_start(session, &session->gensec, c->event_ctx);
More information about the samba-cvs
mailing list