1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-23 06:50:21 +03:00

r20059: james was asking about CAP_LARGE_READX and reads close to the 64k

boundary. This test shows that both for Samba4 and w2k3, reads larger
than or equal to 64k don't work (return zero bytes).

Not that I claim this is very useful behaviour :-)
(This used to be commit a10fa12ff5657a96e41b309558786780f294a75f)
This commit is contained in:
Andrew Tridgell 2006-12-07 04:02:20 +00:00 committed by Gerald (Jerry) Carter
parent ac98f84de7
commit 6300221b6c

View File

@ -513,6 +513,26 @@ static BOOL test_readx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
CHECK_VALUE(io.readx.out.nread, io.readx.in.maxcnt);
CHECK_BUFFER(buf, seed, io.readx.out.nread);
if (cli->transport->negotiate.capabilities & CAP_LARGE_READX) {
printf("Trying large readx\n");
io.readx.in.offset = 0;
io.readx.in.mincnt = 0;
io.readx.in.maxcnt = 0x10000 - 1;
status = smb_raw_read(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(io.readx.out.nread, 0xFFFF);
io.readx.in.maxcnt = 0x10000;
status = smb_raw_read(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(io.readx.out.nread, 0);
io.readx.in.maxcnt = 0x10001;
status = smb_raw_read(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(io.readx.out.nread, 0);
}
printf("Trying locked region\n");
cli->session->pid++;
if (NT_STATUS_IS_ERR(smbcli_lock(cli->tree, fnum, 103, 1, 0, WRITE_LOCK))) {