summaryrefslogtreecommitdiffstats
path: root/libcli/smb/tstream_smbXcli_np.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcli/smb/tstream_smbXcli_np.h')
-rw-r--r--libcli/smb/tstream_smbXcli_np.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/libcli/smb/tstream_smbXcli_np.h b/libcli/smb/tstream_smbXcli_np.h
index c4af5327173..e8c5c39297a 100644
--- a/libcli/smb/tstream_smbXcli_np.h
+++ b/libcli/smb/tstream_smbXcli_np.h
@@ -49,4 +49,24 @@ NTSTATUS tstream_smbXcli_np_use_trans(struct tstream_context *stream);
unsigned int tstream_smbXcli_np_set_timeout(struct tstream_context *stream,
unsigned int timeout);
+/*
+ * Windows uses 4280 (the max xmit/recv size negotiated on DCERPC).
+ * This is fits into the max_xmit negotiated at the SMB layer.
+ *
+ * On the sending side they may use SMBtranss if the request does not
+ * fit into a single SMBtrans call.
+ *
+ * Windows uses 1024 as max data size of a SMBtrans request and then
+ * possibly reads the rest of the DCERPC fragment (up to 3256 bytes)
+ * via a SMBreadX.
+ *
+ * For now we just ask for the full 4280 bytes (max data size) in the SMBtrans
+ * request to get the whole fragment at once (like samba 3.5.x and below did.
+ *
+ * It is important that we use do SMBwriteX with the size of a full fragment,
+ * otherwise we may get NT_STATUS_PIPE_BUSY on the SMBtrans request
+ * from NT4 servers. (See bug #8195)
+ */
+#define TSTREAM_SMBXCLI_NP_MAX_BUF_SIZE 4280
+
#endif /* _CLI_NP_TSTREAM_H_ */