summaryrefslogtreecommitdiff
path: root/source3/include/vfs.h
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2012-06-05 13:39:49 +0200
committerStefan Metzmacher <metze@samba.org>2012-06-06 10:18:40 +0200
commitd45e0ddfcdfc005717b1596342af5ab133c19177 (patch)
treedbec92b1882dcf5855ef3d4d8db272e0ba8f5928 /source3/include/vfs.h
parent37bfadf4a389369632e86e3446f37f54a436848f (diff)
downloadsamba-d45e0ddfcdfc005717b1596342af5ab133c19177.tar.gz
samba-d45e0ddfcdfc005717b1596342af5ab133c19177.tar.bz2
samba-d45e0ddfcdfc005717b1596342af5ab133c19177.zip
s3:include: move struct smb_request to vfs.h
metze
Diffstat (limited to 'source3/include/vfs.h')
-rw-r--r--source3/include/vfs.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index 360f817d68..5c341862e1 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -340,6 +340,67 @@ typedef struct connection_struct {
} connection_struct;
+struct smbd_smb2_request;
+struct privilege_paths;
+
+struct smb_request {
+ uint8_t cmd;
+ uint16 flags2;
+ uint16 smbpid;
+ uint64_t mid; /* For compatibility with SMB2. */
+ uint32_t seqnum;
+ uint16 vuid;
+ uint16 tid;
+ uint8 wct;
+ const uint16_t *vwv;
+ uint16_t buflen;
+ const uint8_t *buf;
+ const uint8 *inbuf;
+
+ /*
+ * Async handling in the main smb processing loop is directed by
+ * outbuf: reply_xxx routines indicate sync behaviour by putting their
+ * reply into "outbuf". If they leave it as NULL, they take care of it
+ * themselves, possibly later.
+ *
+ * If async handling is wanted, the reply_xxx routine must make sure
+ * that it talloc_move()s the smb_req somewhere else.
+ */
+ uint8 *outbuf;
+
+ size_t unread_bytes;
+ bool encrypted;
+ connection_struct *conn;
+ struct smbd_server_connection *sconn;
+ struct smb_perfcount_data pcd;
+
+ /*
+ * Chained request handling
+ */
+ struct files_struct *chain_fsp;
+
+ /*
+ * state information for async smb handling
+ */
+ void *async_priv;
+
+ /*
+ * Back pointer to smb2 request.
+ */
+ struct smbd_smb2_request *smb2req;
+
+ /*
+ * Pathnames used if request done
+ * under privilege.
+ */
+ struct privilege_paths *priv_paths;
+
+ /*
+ * Request list for chained requests, we're part of it.
+ */
+ struct smb_request **chain;
+};
+
/*
* Info about an alternate data stream
*/