req->sconn->smb2.compound_related_in_progress = true;
}
+ if (call->need_session) {
+ if (!NT_STATUS_IS_OK(session_status)) {
+ return smbd_smb2_request_error(req, session_status);
+ }
+ }
+
switch (opcode) {
case SMB2_OP_NEGPROT:
/* This call needs to be run as root */
break;
case SMB2_OP_LOGOFF:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
-
/* This call needs to be run as root */
change_to_root_user();
break;
case SMB2_OP_TCON:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
-
/*
* This call needs to be run as root.
*
break;
case SMB2_OP_TDIS:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_CREATE:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_CLOSE:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_FLUSH:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_READ:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_WRITE:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_LOCK:
- if (!NT_STATUS_IS_OK(session_status)) {
- /* Too ugly to live ? JRA. */
- if (NT_STATUS_EQUAL(session_status,NT_STATUS_USER_SESSION_DELETED)) {
- session_status = NT_STATUS_FILE_CLOSED;
- }
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_IOCTL:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_FIND:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_NOTIFY:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_GETINFO:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_SETINFO:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*
break;
case SMB2_OP_BREAK:
- if (!NT_STATUS_IS_OK(session_status)) {
- return_value = smbd_smb2_request_error(req, session_status);
- break;
- }
/*
* This call needs to be run as user.
*