*/
#include "includes.h"
+#include "system/filesys.h"
+#include "torture/proto.h"
+#include "libsmb/libsmb.h"
extern bool torture_showall;
uint16_t fnum1, fnum2;
int i;
bool correct = True;
- NTSTATUS ret1, ret2;
+ NTSTATUS ret1, ret2, status;
const char *fnames[2] = {"\\denytest1.dat", "\\denytest1.exe"};
+ size_t nread;
if (!torture_open_connection(&cli1, 0)) {
return False;
printf("starting denytest1\n");
for (i=0;i<2;i++) {
- cli_unlink(cli1, fnames[i], aSYSTEM | aHIDDEN);
- cli_open(cli1, fnames[i], O_RDWR|O_CREAT, DENY_NONE, &fnum1);
- cli_write(cli1, fnum1, 0, fnames[i], 0, strlen(fnames[i]));
+ cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
+ cli_openx(cli1, fnames[i], O_RDWR|O_CREAT, DENY_NONE, &fnum1);
+ cli_writeall(cli1, fnum1, 0, (const uint8_t *)fnames[i], 0,
+ strlen(fnames[i]), NULL);
cli_close(cli1, fnum1);
}
progress_bar(i, ARRAY_SIZE(denytable1));
- ret1 = cli_open(cli1, fname,
+ ret1 = cli_openx(cli1, fname,
denytable1[i].mode1,
denytable1[i].deny1, &fnum1);
- ret2 = cli_open(cli1, fname,
+ ret2 = cli_openx(cli1, fname,
denytable1[i].mode2,
denytable1[i].deny2, &fnum2);
} else {
char x = 1;
res = A_0;
- if (cli_read(cli1, fnum2, (char *)&x, 0, 1) == 1) {
+
+ status = cli_read(cli1, fnum2, (char *)&x, 0, 1,
+ &nread);
+ if (NT_STATUS_IS_OK(status) && nread == 1) {
res += A_R;
}
- if (cli_write(cli1, fnum2, 0, (char *)&x, 0, 1) == 1) {
+ if (NT_STATUS_IS_OK(cli_writeall(cli1, fnum2, 0,
+ (uint8_t *)&x, 0, 1,
+ NULL))) {
res += A_W;
}
}
resultstr(denytable1[i].result));
}
- cli_close(cli1, fnum1);
- cli_close(cli1, fnum2);
+ if (NT_STATUS_IS_OK(ret1)) {
+ cli_close(cli1, fnum1);
+ }
+ if (NT_STATUS_IS_OK(ret2)) {
+ cli_close(cli1, fnum2);
+ }
}
for (i=0;i<2;i++) {
- cli_unlink(cli1, fnames[i], aSYSTEM | aHIDDEN);
+ cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
}
if (!torture_close_connection(cli1)) {
uint16_t fnum1, fnum2;
int i;
bool correct = True;
- NTSTATUS ret1, ret2;
+ NTSTATUS ret1, ret2, status;
const char *fnames[2] = {"\\denytest2.dat", "\\denytest2.exe"};
+ size_t nread;
if (!torture_open_connection(&cli1, 0) || !torture_open_connection(&cli2, 1)) {
return False;
printf("starting denytest2\n");
for (i=0;i<2;i++) {
- cli_unlink(cli1, fnames[i], aSYSTEM | aHIDDEN);
- cli_open(cli1, fnames[i], O_RDWR|O_CREAT, DENY_NONE, &fnum1);
- cli_write(cli1, fnum1, 0, fnames[i], 0, strlen(fnames[i]));
+ cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
+ cli_openx(cli1, fnames[i], O_RDWR|O_CREAT, DENY_NONE, &fnum1);
+ cli_writeall(cli1, fnum1, 0, (const uint8_t *)fnames[i], 0,
+ strlen(fnames[i]), NULL);
cli_close(cli1, fnum1);
}
progress_bar(i, ARRAY_SIZE(denytable2));
- ret1 = cli_open(cli1, fname,
+ ret1 = cli_openx(cli1, fname,
denytable2[i].mode1,
denytable2[i].deny1, &fnum1);
- ret2 = cli_open(cli2, fname,
+ ret2 = cli_openx(cli2, fname,
denytable2[i].mode2,
denytable2[i].deny2, &fnum2);
} else {
char x = 1;
res = A_0;
- if (cli_read(cli2, fnum2, (char *)&x, 0, 1) == 1) {
- res += A_R;
- }
- if (cli_write(cli2, fnum2, 0, (char *)&x, 0, 1) == 1) {
+
+ status = cli_read(cli2, fnum2, (char *)&x, 0, 1,
+ &nread);
+ if (NT_STATUS_IS_OK(status) && nread == 1) {
+ res += A_R;
+ }
+ if (NT_STATUS_IS_OK(cli_writeall(cli2, fnum2, 0,
+ (uint8_t *)&x, 0, 1,
+ NULL))) {
res += A_W;
}
}
resultstr(denytable2[i].result));
}
- if (fnum1 != -1) cli_close(cli1, fnum1);
- if (fnum2 != -1) cli_close(cli2, fnum2);
+ if (NT_STATUS_IS_OK(ret1)) {
+ cli_close(cli1, fnum1);
+ }
+ if (NT_STATUS_IS_OK(ret2)) {
+ cli_close(cli2, fnum2);
+ }
}
for (i=0;i<2;i++) {
- cli_unlink(cli1, fnames[i], aSYSTEM | aHIDDEN);
+ cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
}
if (!torture_close_connection(cli1)) {