mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
Fix smbtorture so it can handle collisions etc ...
(This used to be commit ba4d6c76aa
)
This commit is contained in:
parent
82b573678d
commit
4e5e548170
@ -79,6 +79,16 @@ void nbio_shmem(int n)
|
||||
}
|
||||
}
|
||||
|
||||
static int ne_find_handle(int handle)
|
||||
{
|
||||
int i;
|
||||
children[nbio_id].line = line_count;
|
||||
for (i=0;i<MAX_FILES;i++) {
|
||||
if (ftable[i].handle == handle) return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int find_handle(int handle)
|
||||
{
|
||||
int i;
|
||||
@ -127,7 +137,7 @@ void nb_unlink(char *fname)
|
||||
|
||||
|
||||
void nb_createx(char *fname,
|
||||
unsigned create_options, unsigned create_disposition, int handle)
|
||||
unsigned create_options, unsigned create_disposition, int handle, int no_err)
|
||||
{
|
||||
int fd, i;
|
||||
uint32 desired_access;
|
||||
@ -147,7 +157,7 @@ void nb_createx(char *fname,
|
||||
if (fd == -1 && handle != -1) {
|
||||
printf("ERROR: cli_nt_create_full failed for %s - %s\n",
|
||||
fname, cli_errstr(c));
|
||||
exit(1);
|
||||
if (!no_err) exit(1);
|
||||
}
|
||||
if (fd != -1 && handle == -1) {
|
||||
printf("ERROR: cli_nt_create_full succeeded for %s\n", fname);
|
||||
@ -196,10 +206,15 @@ void nb_readx(int handle, int offset, int size, int ret_size)
|
||||
children[nbio_id].bytes_in += ret_size;
|
||||
}
|
||||
|
||||
void nb_close(int handle)
|
||||
void nb_close(int handle, int no_err)
|
||||
{
|
||||
int i;
|
||||
i = find_handle(handle);
|
||||
if (no_err) {
|
||||
i = ne_find_handle(handle);
|
||||
if (i < 0) return;
|
||||
}
|
||||
else
|
||||
i = find_handle(handle);
|
||||
if (!cli_close(c, ftable[i].fd)) {
|
||||
printf("(%d) close failed on handle %d\n", line_count, handle);
|
||||
exit(1);
|
||||
|
@ -707,9 +707,9 @@ static BOOL run_netbench(int client)
|
||||
|
||||
if (!strcmp(params[0],"NTCreateX")) {
|
||||
nb_createx(params[1], ival(params[2]), ival(params[3]),
|
||||
ival(params[4]));
|
||||
ival(params[4]),ival(params[5]));
|
||||
} else if (!strcmp(params[0],"Close")) {
|
||||
nb_close(ival(params[1]));
|
||||
nb_close(ival(params[1]),ival(params[2]));
|
||||
} else if (!strcmp(params[0],"Rename")) {
|
||||
nb_rename(params[1], params[2]);
|
||||
} else if (!strcmp(params[0],"Unlink")) {
|
||||
|
Loading…
Reference in New Issue
Block a user