#define NBDEBUG 0
/*
Unix SMB/CIFS implementation.
SMB torture tester
Copyright (C) Andrew Tridgell 1997-1998
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#include "includes.h"
#include "torture.h"
#define MAX_FILES 1000
static char buf[70000];
extern int line_count;
extern int nbio_id;
static int nprocs;
static struct {
int fd;
int handle;
} ftable[MAX_FILES];
static struct children {
double bytes_in, bytes_out;
int line;
int done;
} *children;
double nbio_total(void)
{
int i;
double total = 0;
for (i=0;iname[0] == '.') return;
n = SMB_STRDUP(name);
n[strlen(n)-1] = 0;
if (asprintf(&s, "%s%s", n, finfo->name) == -1) {
printf("asprintf failed\n");
return;
}
if (finfo->mode & aDIR) {
char *s2;
if (asprintf(&s2, "%s\\*", s) == -1) {
printf("asprintf failed\n");
return;
}
cli_list(c, s2, aDIR, delete_fn, NULL);
nb_rmdir(s);
} else {
total_deleted++;
nb_unlink(s);
}
free(s);
free(n);
}
void nb_deltree(const char *dname)
{
char *mask;
if (asprintf(&mask, "%s\\*", dname) == -1) {
printf("asprintf failed\n");
return;
}
total_deleted = 0;
cli_list(c, mask, aDIR, delete_fn, NULL);
free(mask);
cli_rmdir(c, dname);
if (total_deleted) printf("WARNING: Cleaned up %d files\n", total_deleted);
}
void nb_cleanup(void)
{
cli_rmdir(c, "clients");
children[nbio_id].done = 1;
}