Lines Matching refs:sess_data
1186 SMB2_sess_alloc_buffer(struct SMB2_sess_data *sess_data)
1189 struct cifs_ses *ses = sess_data->ses;
1200 if (sess_data->ses->binding) {
1201 req->sync_hdr.SessionId = sess_data->ses->Suid;
1212 req->PreviousSessionId = sess_data->previous_session;
1235 sess_data->iov[0].iov_base = (char *)req;
1237 sess_data->iov[0].iov_len = total_len - 1;
1242 sess_data->buf0_type = CIFS_SMALL_BUFFER;
1248 SMB2_sess_free_buffer(struct SMB2_sess_data *sess_data)
1250 free_rsp_buf(sess_data->buf0_type, sess_data->iov[0].iov_base);
1251 sess_data->buf0_type = CIFS_NO_BUFFER;
1255 SMB2_sess_sendreceive(struct SMB2_sess_data *sess_data)
1259 struct smb2_sess_setup_req *req = sess_data->iov[0].iov_base;
1265 req->SecurityBufferLength = cpu_to_le16(sess_data->iov[1].iov_len);
1268 rqst.rq_iov = sess_data->iov;
1272 rc = cifs_send_recv(sess_data->xid, sess_data->ses,
1273 cifs_ses_server(sess_data->ses),
1275 &sess_data->buf0_type,
1277 cifs_small_buf_release(sess_data->iov[0].iov_base);
1278 memcpy(&sess_data->iov[0], &rsp_iov, sizeof(struct kvec));
1284 SMB2_sess_establish_session(struct SMB2_sess_data *sess_data)
1287 struct cifs_ses *ses = sess_data->ses;
1320 SMB2_auth_kerberos(struct SMB2_sess_data *sess_data)
1323 struct cifs_ses *ses = sess_data->ses;
1328 rc = SMB2_sess_alloc_buffer(sess_data);
1366 sess_data->iov[1].iov_base = msg->data + msg->sesskey_len;
1367 sess_data->iov[1].iov_len = msg->secblob_len;
1369 rc = SMB2_sess_sendreceive(sess_data);
1373 rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base;
1380 rc = SMB2_sess_establish_session(sess_data);
1385 sess_data->result = rc;
1386 sess_data->func = NULL;
1387 SMB2_sess_free_buffer(sess_data);
1391 SMB2_auth_kerberos(struct SMB2_sess_data *sess_data)
1394 sess_data->result = -EOPNOTSUPP;
1395 sess_data->func = NULL;
1400 SMB2_sess_auth_rawntlmssp_authenticate(struct SMB2_sess_data *sess_data);
1403 SMB2_sess_auth_rawntlmssp_negotiate(struct SMB2_sess_data *sess_data)
1406 struct cifs_ses *ses = sess_data->ses;
1423 rc = SMB2_sess_alloc_buffer(sess_data);
1444 sess_data->iov[1].iov_base = ntlmssp_blob;
1445 sess_data->iov[1].iov_len = blob_length;
1447 rc = SMB2_sess_sendreceive(sess_data);
1448 rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base;
1451 if (sess_data->buf0_type != CIFS_NO_BUFFER &&
1480 SMB2_sess_free_buffer(sess_data);
1482 sess_data->result = 0;
1483 sess_data->func = SMB2_sess_auth_rawntlmssp_authenticate;
1489 sess_data->result = rc;
1490 sess_data->func = NULL;
1494 SMB2_sess_auth_rawntlmssp_authenticate(struct SMB2_sess_data *sess_data)
1497 struct cifs_ses *ses = sess_data->ses;
1504 rc = SMB2_sess_alloc_buffer(sess_data);
1508 req = (struct smb2_sess_setup_req *) sess_data->iov[0].iov_base;
1512 sess_data->nls_cp);
1524 sess_data->iov[1].iov_base = ntlmssp_blob;
1525 sess_data->iov[1].iov_len = blob_length;
1527 rc = SMB2_sess_sendreceive(sess_data);
1531 rsp = (struct smb2_sess_setup_rsp *)sess_data->iov[0].iov_base;
1539 rc = SMB2_sess_establish_session(sess_data);
1557 SMB2_sess_free_buffer(sess_data);
1560 sess_data->result = rc;
1561 sess_data->func = NULL;
1565 SMB2_select_sec(struct cifs_ses *ses, struct SMB2_sess_data *sess_data)
1578 sess_data->func = SMB2_auth_kerberos;
1581 sess_data->func = SMB2_sess_auth_rawntlmssp_negotiate;
1597 struct SMB2_sess_data *sess_data;
1606 sess_data = kzalloc(sizeof(struct SMB2_sess_data), GFP_KERNEL);
1607 if (!sess_data)
1610 rc = SMB2_select_sec(ses, sess_data);
1613 sess_data->xid = xid;
1614 sess_data->ses = ses;
1615 sess_data->buf0_type = CIFS_NO_BUFFER;
1616 sess_data->nls_cp = (struct nls_table *) nls_cp;
1617 sess_data->previous_session = ses->Suid;
1625 while (sess_data->func)
1626 sess_data->func(sess_data);
1630 rc = sess_data->result;
1632 kfree(sess_data);