buf = talloc_zero(mem_ctx, maxsize);
- if (cli_deltree(cli, BASEDIR) == -1 ||
- !cli_mkdir(cli, BASEDIR)) {
- printf("Unable to setup %s - %s\n", BASEDIR, cli_errstr(cli));
+ if (cli_deltree(cli->tree, BASEDIR) == -1 ||
+ NT_STATUS_IS_ERR(cli_mkdir(cli->tree, BASEDIR))) {
+ printf("Unable to setup %s - %s\n", BASEDIR, cli_errstr(cli->tree));
return False;
}
printf("Testing RAW_WRITE_WRITE\n");
io.generic.level = RAW_WRITE_WRITE;
- fnum = cli_open(cli, fname, O_RDWR|O_CREAT, DENY_NONE);
+ fnum = cli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
if (fnum == -1) {
- printf("Failed to create %s - %s\n", fname, cli_errstr(cli));
+ printf("Failed to create %s - %s\n", fname, cli_errstr(cli->tree));
ret = False;
goto done;
}
CHECK_VALUE(io.write.out.nwritten, io.write.in.count);
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, 0, 13) != 13) {
+ if (cli_read(cli->tree, fnum, buf, 0, 13) != 13) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
CHECK_VALUE(io.write.out.nwritten, 4000);
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, 0, 4000) != 4000) {
+ if (cli_read(cli->tree, fnum, buf, 0, 4000) != 4000) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
status = smb_raw_write(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(io.write.out.nwritten, 4000);
- CHECK_ALL_INFO(io.write.in.count + (SMB_BIG_UINT)io.write.in.offset, size);
+ CHECK_ALL_INFO(io.write.in.count + (uint64_t)io.write.in.offset, size);
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, io.write.in.offset, 4000) != 4000) {
+ if (cli_read(cli->tree, fnum, buf, io.write.in.offset, 4000) != 4000) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
CHECK_BUFFER(buf, seed, 4000);
done:
+ cli_close(cli->tree, fnum);
smb_raw_exit(cli->session);
- cli_deltree(cli, BASEDIR);
+ cli_deltree(cli->tree, BASEDIR);
return ret;
}
union smb_write io;
NTSTATUS status;
BOOL ret = True;
- int fnum;
+ int fnum, i;
char *buf;
const int maxsize = 90000;
const char *fname = BASEDIR "\\test.txt";
buf = talloc_zero(mem_ctx, maxsize);
- if (cli_deltree(cli, BASEDIR) == -1 ||
- !cli_mkdir(cli, BASEDIR)) {
- printf("Unable to setup %s - %s\n", BASEDIR, cli_errstr(cli));
+ if (cli_deltree(cli->tree, BASEDIR) == -1 ||
+ NT_STATUS_IS_ERR(cli_mkdir(cli->tree, BASEDIR))) {
+ printf("Unable to setup %s - %s\n", BASEDIR, cli_errstr(cli->tree));
return False;
}
printf("Testing RAW_WRITE_WRITEX\n");
io.generic.level = RAW_WRITE_WRITEX;
- fnum = cli_open(cli, fname, O_RDWR|O_CREAT, DENY_NONE);
+ fnum = cli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
if (fnum == -1) {
- printf("Failed to create %s - %s\n", fname, cli_errstr(cli));
+ printf("Failed to create %s - %s\n", fname, cli_errstr(cli->tree));
ret = False;
goto done;
}
CHECK_VALUE(io.writex.out.nwritten, io.writex.in.count);
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, 0, 13) != 13) {
+ if (cli_read(cli->tree, fnum, buf, 0, 13) != 13) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
CHECK_VALUE(io.writex.out.nwritten, 4000);
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, 0, 4000) != 4000) {
+ if (cli_read(cli->tree, fnum, buf, 0, 4000) != 4000) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
printf("Trying locked region\n");
cli->session->pid++;
- if (!cli_lock(cli, fnum, 3, 1, 0, WRITE_LOCK)) {
+ if (NT_STATUS_IS_ERR(cli_lock(cli->tree, fnum, 3, 1, 0, WRITE_LOCK))) {
printf("Failed to lock file at %d\n", __LINE__);
ret = False;
goto done;
status = smb_raw_write(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(io.writex.out.nwritten, 4000);
- CHECK_ALL_INFO(io.writex.in.count + (SMB_BIG_UINT)io.writex.in.offset, size);
+ CHECK_ALL_INFO(io.writex.in.count + (uint64_t)io.writex.in.offset, size);
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, io.writex.in.offset, 4000) != 4000) {
+ if (cli_read(cli->tree, fnum, buf, io.writex.in.offset, 4000) != 4000) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
}
CHECK_BUFFER(buf, seed, 4000);
- printf("Trying 2^43 offset\n");
- setup_buffer(buf, seed+1, maxsize);
- io.writex.in.fnum = fnum;
- io.writex.in.count = 4000;
- io.writex.in.offset = ((SMB_BIG_UINT)1) << 43;
- io.writex.in.data = buf;
- status = smb_raw_write(cli->tree, &io);
- CHECK_STATUS(status, NT_STATUS_OK);
- CHECK_VALUE(io.writex.out.nwritten, 4000);
- CHECK_ALL_INFO(io.writex.in.count + (SMB_BIG_UINT)io.writex.in.offset, size);
-
- memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, io.writex.in.offset, 4000) != 4000) {
- printf("read failed at %d\n", __LINE__);
- ret = False;
- goto done;
+ for (i=33;i<64;i++) {
+ printf("Trying 2^%d offset\n", i);
+ setup_buffer(buf, seed+1, maxsize);
+ io.writex.in.fnum = fnum;
+ io.writex.in.count = 4000;
+ io.writex.in.offset = ((uint64_t)1) << i;
+ io.writex.in.data = buf;
+ status = smb_raw_write(cli->tree, &io);
+ CHECK_STATUS(status, NT_STATUS_OK);
+ CHECK_VALUE(io.writex.out.nwritten, 4000);
+ CHECK_ALL_INFO(io.writex.in.count + (uint64_t)io.writex.in.offset, size);
+
+ memset(buf, 0, maxsize);
+ if (cli_read(cli->tree, fnum, buf, io.writex.in.offset, 4000) != 4000) {
+ printf("read failed at %d\n", __LINE__);
+ ret = False;
+ goto done;
+ }
+ CHECK_BUFFER(buf, seed+1, 4000);
}
- CHECK_BUFFER(buf, seed+1, 4000);
setup_buffer(buf, seed, maxsize);
done:
+ cli_close(cli->tree, fnum);
smb_raw_exit(cli->session);
- cli_deltree(cli, BASEDIR);
+ cli_deltree(cli->tree, BASEDIR);
return ret;
}
buf = talloc_zero(mem_ctx, maxsize);
- if (cli_deltree(cli, BASEDIR) == -1 ||
- !cli_mkdir(cli, BASEDIR)) {
- printf("Unable to setup %s - %s\n", BASEDIR, cli_errstr(cli));
+ if (cli_deltree(cli->tree, BASEDIR) == -1 ||
+ NT_STATUS_IS_ERR(cli_mkdir(cli->tree, BASEDIR))) {
+ printf("Unable to setup %s - %s\n", BASEDIR, cli_errstr(cli->tree));
return False;
}
printf("Testing RAW_WRITE_WRITEUNLOCK\n");
io.generic.level = RAW_WRITE_WRITEUNLOCK;
- fnum = cli_open(cli, fname, O_RDWR|O_CREAT, DENY_NONE);
+ fnum = cli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
if (fnum == -1) {
- printf("Failed to create %s - %s\n", fname, cli_errstr(cli));
+ printf("Failed to create %s - %s\n", fname, cli_errstr(cli->tree));
ret = False;
goto done;
}
io.writeunlock.in.data = buf;
status = smb_raw_write(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED);
- if (cli_read(cli, fnum, buf, 0, 13) != 13) {
+ if (cli_read(cli->tree, fnum, buf, 0, 13) != 13) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
CHECK_VALUE(IVAL(buf,0), 0);
setup_buffer(buf, seed, maxsize);
- cli_lock(cli, fnum, io.writeunlock.in.offset, io.writeunlock.in.count,
+ cli_lock(cli->tree, fnum, io.writeunlock.in.offset, io.writeunlock.in.count,
0, WRITE_LOCK);
status = smb_raw_write(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(io.writeunlock.out.nwritten, io.writeunlock.in.count);
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, 0, 13) != 13) {
+ if (cli_read(cli->tree, fnum, buf, 0, 13) != 13) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
io.writeunlock.in.count = 4000;
io.writeunlock.in.offset = 0;
io.writeunlock.in.data = buf;
- cli_lock(cli, fnum, io.writeunlock.in.offset, io.writeunlock.in.count,
+ cli_lock(cli->tree, fnum, io.writeunlock.in.offset, io.writeunlock.in.count,
0, WRITE_LOCK);
status = smb_raw_write(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED);
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, 0, 4000) != 4000) {
+ if (cli_read(cli->tree, fnum, buf, 0, 4000) != 4000) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
io.writeunlock.in.count = 4000;
io.writeunlock.in.offset = 0xFFFFFFFF - 2000;
io.writeunlock.in.data = buf;
- cli_lock(cli, fnum, io.writeunlock.in.offset, io.writeunlock.in.count,
+ cli_lock(cli->tree, fnum, io.writeunlock.in.offset, io.writeunlock.in.count,
0, WRITE_LOCK);
status = smb_raw_write(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(io.writeunlock.out.nwritten, 4000);
- CHECK_ALL_INFO(io.writeunlock.in.count + (SMB_BIG_UINT)io.writeunlock.in.offset, size);
+ CHECK_ALL_INFO(io.writeunlock.in.count + (uint64_t)io.writeunlock.in.offset, size);
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, io.writeunlock.in.offset, 4000) != 4000) {
+ if (cli_read(cli->tree, fnum, buf, io.writeunlock.in.offset, 4000) != 4000) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
CHECK_BUFFER(buf, seed, 4000);
done:
+ cli_close(cli->tree, fnum);
smb_raw_exit(cli->session);
- cli_deltree(cli, BASEDIR);
+ cli_deltree(cli->tree, BASEDIR);
return ret;
}
buf = talloc_zero(mem_ctx, maxsize);
- if (cli_deltree(cli, BASEDIR) == -1 ||
- !cli_mkdir(cli, BASEDIR)) {
- printf("Unable to setup %s - %s\n", BASEDIR, cli_errstr(cli));
+ if (cli_deltree(cli->tree, BASEDIR) == -1 ||
+ NT_STATUS_IS_ERR(cli_mkdir(cli->tree, BASEDIR))) {
+ printf("Unable to setup %s - %s\n", BASEDIR, cli_errstr(cli->tree));
return False;
}
printf("Testing RAW_WRITE_WRITECLOSE\n");
io.generic.level = RAW_WRITE_WRITECLOSE;
- fnum = cli_open(cli, fname, O_RDWR|O_CREAT, DENY_NONE);
+ fnum = cli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
if (fnum == -1) {
- printf("Failed to create %s - %s\n", fname, cli_errstr(cli));
+ printf("Failed to create %s - %s\n", fname, cli_errstr(cli->tree));
ret = False;
goto done;
}
status = smb_raw_write(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_INVALID_HANDLE);
- fnum = cli_open(cli, fname, O_RDWR, DENY_NONE);
+ fnum = cli_open(cli->tree, fname, O_RDWR, DENY_NONE);
io.writeclose.in.fnum = fnum;
- if (cli_read(cli, fnum, buf, 0, 13) != 13) {
+ if (cli_read(cli->tree, fnum, buf, 0, 13) != 13) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(io.writeclose.out.nwritten, io.writeclose.in.count);
- fnum = cli_open(cli, fname, O_RDWR, DENY_NONE);
+ fnum = cli_open(cli->tree, fname, O_RDWR, DENY_NONE);
io.writeclose.in.fnum = fnum;
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, 0, 13) != 13) {
+ if (cli_read(cli->tree, fnum, buf, 0, 13) != 13) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
status = smb_raw_write(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_INVALID_HANDLE);
- fnum = cli_open(cli, fname, O_RDWR, DENY_NONE);
+ fnum = cli_open(cli->tree, fname, O_RDWR, DENY_NONE);
io.writeclose.in.fnum = fnum;
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, 0, 4000) != 4000) {
+ if (cli_read(cli->tree, fnum, buf, 0, 4000) != 4000) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
status = smb_raw_write(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(io.writeclose.out.nwritten, 4000);
- CHECK_ALL_INFO(io.writeclose.in.count + (SMB_BIG_UINT)io.writeclose.in.offset, size);
+ CHECK_ALL_INFO(io.writeclose.in.count + (uint64_t)io.writeclose.in.offset, size);
- fnum = cli_open(cli, fname, O_RDWR, DENY_NONE);
+ fnum = cli_open(cli->tree, fname, O_RDWR, DENY_NONE);
io.writeclose.in.fnum = fnum;
memset(buf, 0, maxsize);
- if (cli_read(cli, fnum, buf, io.writeclose.in.offset, 4000) != 4000) {
+ if (cli_read(cli->tree, fnum, buf, io.writeclose.in.offset, 4000) != 4000) {
printf("read failed at %d\n", __LINE__);
ret = False;
goto done;
CHECK_BUFFER(buf, seed, 4000);
done:
+ cli_close(cli->tree, fnum);
smb_raw_exit(cli->session);
- cli_deltree(cli, BASEDIR);
+ cli_deltree(cli->tree, BASEDIR);
return ret;
}