r100: remember the user session key during session setup so it can be used in various...
[samba.git] / source4 / libcli / raw / clisession.c
index 406491e43238f479864b57c34283e03ceec88bd8..1c0af77d11dddea5e79f0fc7860111b7c76ef95a 100644 (file)
@@ -247,6 +247,8 @@ static void setup_nt1_signing(struct cli_transport *transport, const char *passw
        SMBsesskeygen_ntv1(nt_hash, NULL, session_key);
        nt_response = nt_blob(password, transport->negotiate.secblob);
 
+       cli_transport_set_session_key(transport, session_key);
+
        cli_transport_simple_set_signing(transport, session_key, nt_response);
 }
 
@@ -272,7 +274,10 @@ static NTSTATUS smb_raw_session_setup_generic_old(struct cli_session *session,
        s2.old.in.os = "Unix";
        s2.old.in.lanman = "Samba";
        
-       if (session->transport->negotiate.sec_mode & NEGOTIATE_SECURITY_CHALLENGE_RESPONSE) {
+       if (!parms->generic.in.password) {
+               s2.old.in.password = data_blob(NULL, 0);
+       } else if (session->transport->negotiate.sec_mode & 
+                  NEGOTIATE_SECURITY_CHALLENGE_RESPONSE) {
                s2.old.in.password = lanman_blob(parms->generic.in.password, 
                                                 session->transport->negotiate.secblob);
        } else {
@@ -318,8 +323,11 @@ static NTSTATUS smb_raw_session_setup_generic_nt1(struct cli_session *session,
        s2.nt1.in.os = "Unix";
        s2.nt1.in.lanman = "Samba";
 
-       if (session->transport->negotiate.sec_mode & 
-           NEGOTIATE_SECURITY_CHALLENGE_RESPONSE) {
+       if (!parms->generic.in.password) {
+               s2.nt1.in.password1 = data_blob(NULL, 0);
+               s2.nt1.in.password2 = data_blob(NULL, 0);
+       } else if (session->transport->negotiate.sec_mode & 
+                  NEGOTIATE_SECURITY_CHALLENGE_RESPONSE) {
                s2.nt1.in.password1 = lanman_blob(parms->generic.in.password, 
                                                  session->transport->negotiate.secblob);
                s2.nt1.in.password2 = nt_blob(parms->generic.in.password,