[jcifs] Large Read/Write Patch

M. D. moder at abv.bg
Wed Dec 17 01:58:08 MST 2014


 Hello,

I also confirm that read/write operations with the patch applied are significantly faster.

However, I think there is a problem with the patch:

According to the official SMB documentation: 
http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-SMB].pdf

... sections 2.2.4.5, 2.2.4.5.2: 
"Capabilities (4 bytes): A 32-bit field providing a set of server capability indicators. This bit field is
used to indicate to the client which features are supported by the server. Any value not listed in the
following table is unused. The server MUST set the unused bits to zero. The client MUST ignore
these bits.". 

The CAP_LARGE_WRITEX flag that is part of the Capabilities (4 bytes) field is responsible for:

"The server supports large write operations. This
capability affects the maximum size, in bytes, of the
server buffer for receiving an SMB_COM_WRITE_ANDX
client request. When this capability is set by the server
(and set by the client in the
SMB_COM_SESSION_SETUP_ANDX request), then the
maximum server buffer size of bytes it writes can
exceed the MaxBufferSize field. Therefore, a client
can send a single SMB_COM_WRITE_ANDX request up
to this size.<34>
When signing is active on a connection, then clients
MUST limit write lengths to the MaxBufferSize value
negotiated by the server, irrespective of the value of
the CAP_LARGE_WRITEX flag."

... so it is true that we can safely ignore the MaxBufferSize and send larger chunks of data UNLESS signing is active on a connection. Therefore, I think checks for signing should be added to the patch. 

Hope that helps!


Best regards,
M.D




 >-------- Оригинално писмо --------
 >От:  Robin Jansohn 
 >Относно: Re: [jcifs] Large Read/Write Patch
 >До: jcifs at lists.samba.org
 >Изпратено на: Понеделник, 2014, Декември 15 09:08:49 EET
 >
 >
 >No, I'm using a Maven repository and although I explicitly excluded the
 >package it somehow did not work as expected. The test itself is run in a
 >simple Main class, no webapp or similar large application.
 >
 >
 >
 >--
 >View this message in context: http://samba.2283325.n4.nabble.com/Large-Read-Write-Patch-tp3674893p4677877.html
 >Sent from the Samba - jcifs mailing list archive at Nabble.com.
 >


More information about the jCIFS mailing list