summaryrefslogtreecommitdiff
path: root/source3/smbd/globals.h
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-04-08 22:15:55 -0700
committerJeremy Allison <jra@samba.org>2010-04-08 22:15:55 -0700
commit08b24e923dff99d3d3c0618903a7ed2959640470 (patch)
treeacfc07cc9c3aec2d1d78287b4fc58dbe143de627 /source3/smbd/globals.h
parent3491f6d119d1f4c7e0a259a9993ce96783b77e23 (diff)
downloadsamba-08b24e923dff99d3d3c0618903a7ed2959640470.tar.gz
samba-08b24e923dff99d3d3c0618903a7ed2959640470.tar.bz2
samba-08b24e923dff99d3d3c0618903a7ed2959640470.zip
Stop smb2 from calling into smb1 blocking lock request code.
Allocate a uint16_t internal SMB1 mid for an SMB2 request. Add a back pointer from the faked up smb_request struct to the smb2 request. Getting ready to add restart code for blocking locks, share mode violations and oplocks in SMB2. Jeremy.
Diffstat (limited to 'source3/smbd/globals.h')
-rw-r--r--source3/smbd/globals.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index 033a77783a..5eea0ce311 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -321,6 +321,17 @@ NTSTATUS smbd_smb2_request_process_break(struct smbd_smb2_request *req);
void send_smb2_break_message(files_struct *fsp, uint8_t level);
void schedule_deferred_open_smb2_message(uint16 mid);
+bool smb2_push_blocking_lock_request( struct byte_range_lock *br_lck,
+ struct smb_request *req,
+ files_struct *fsp,
+ int lock_timeout,
+ int lock_num,
+ uint32_t lock_pid,
+ enum brl_type lock_type,
+ enum brl_flavour lock_flav,
+ uint64_t offset,
+ uint64_t count,
+ uint32_t blocking_pid);
struct smbd_smb2_request {
struct smbd_smb2_request *prev, *next;
@@ -338,6 +349,11 @@ struct smbd_smb2_request {
int current_idx;
bool do_signing;
+ /*
+ * mid used for compatibility with SMB1 code.
+ * Server allocated, never seen by client.
+ */
+ uint16_t compat_mid;
struct files_struct *compat_chain_fsp;
@@ -535,6 +551,7 @@ struct smbd_server_connection {
struct smbd_smb2_session *list;
} sessions;
struct smbd_smb2_request *requests;
+ uint16_t next_compat_mid;
} smb2;
};