diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2010-12-01 16:58:00 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2010-12-01 16:58:00 -0500 |
commit | cbf44952901131c5c2df11080c76659616ddb2f4 (patch) | |
tree | 0c559833a84667d07cff3270d9c5a88f6d4a1823 | |
parent | f765ede58f3942e38e3d18d2b1637431cd70be19 (diff) | |
download | NetNuke2-cbf44952901131c5c2df11080c76659616ddb2f4.tar.gz |
Added command line argument to enable logging.
Added command line argument to allow NetNuke to destroy data.
Fixed logging.
-rw-r--r-- | src/netnuke.c | 9 | ||||
-rw-r--r-- | src/nukectl.c | 18 | ||||
-rw-r--r-- | src/output_redirect.c | 13 |
3 files changed, 29 insertions, 11 deletions
diff --git a/src/netnuke.c b/src/netnuke.c index b61bbee..76f7d23 100644 --- a/src/netnuke.c +++ b/src/netnuke.c @@ -37,6 +37,7 @@ pthread_mutex_t lock_global = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t lock_write = PTHREAD_MUTEX_INITIALIZER; extern unsigned long total_written_bytes; +int safety_flag = 0; int logging_flag = 0; int verbose_flag = 0; int bus_mask = 0; @@ -48,7 +49,9 @@ static struct option long_options[] = {"help", no_argument, 0, 0}, {"verbose", no_argument, &verbose_flag, 1}, {"quiet", no_argument, &verbose_flag, 0}, + {"safety-off", no_argument, &safety_flag, 0}, {"ignore-first", no_argument, 0, 'i'}, + {"logging", no_argument, &logging_flag, 1}, {"timeout", required_argument, 0, 't'}, {"scheme", required_argument, 0, 's'}, {"device-type", required_argument, 0, 'd'}, @@ -60,7 +63,9 @@ static char* long_options_help[] = "\tThis message", "More output", "Suppress output", + "Enable destructive write mode", "Ignore first device", + "Log all output to netnuke.log", "Set timeout-to-failure (in seconds)", "Set nuking scheme:\n\ 0 = zero\n\ @@ -128,6 +133,7 @@ int main(int argc, char* argv[]) fprintf(stderr, "Failed to cleanup %s: %s\n", NNLOGFILE, strerror(errno)); } COM(self, "Program start\n"); + COM(self, "Safety is %s\n", verbose_flag ? "ON" : "OFF"); if(argc < 2) usage(basename(argv[0])); int c; @@ -206,13 +212,12 @@ int main(int argc, char* argv[]) COM(self, "Generating threads\n"); for( i = 0 ; device[i] != NULL ; i++ ) { - printf("%d\n", i); thread[i] = (pthread_t)nnthread(device[i]); COM(self, "thread id: %ld\n", thread[i]); } - COM(self, "Joining all threads\n"); thread_count = i; + COM(self, "Joining %d thread%c\n", thread_count, (thread_count > 1 || thread_count < 1) ? 's' : '\b'); for( i = 0 ; i < thread_count ; i++ ) { pthread_join(thread[i], NULL); diff --git a/src/nukectl.c b/src/nukectl.c index 8b0897b..8ea266e 100644 --- a/src/nukectl.c +++ b/src/nukectl.c @@ -29,6 +29,7 @@ FILE* randfp; unsigned int randseed; unsigned long long total_written_bytes; +extern int safety_flag; extern pthread_mutex_t lock_global; extern pthread_mutex_t lock_write; @@ -46,8 +47,7 @@ void* wipe(void* device) COM(self, "Unable to open %s: %s\n", d->path, strerror(errno)); return (int*)1; } - COM(self, "path: %s, block size %d, blocks %llu, total bytes %llu\n", - d->path, d->blksz, d->blks, d->sz); + COM(self, "%s, block size %d, blocks %llu, total bytes %llu\n", d->path, d->blksz, d->blks, d->sz); srand(nngetseed()); while(blocks_written < blocks) @@ -87,8 +87,18 @@ int nnwrite(FILE* fp, int bsize) unsigned int bytes_written = 0; char* buffer = randstr(bsize); pthread_mutex_lock(&lock_write); - //bytes_written = fwrite(buffer, sizeof(char), bsize, fp); - bytes_written += bsize; //temporary testing + if(safety_flag) + { + /* simulation */ + bytes_written += bsize; + } + else + { + /* destructive */ + //bytes_written = fwrite(buffer, sizeof(char), bsize, fp); + bytes_written += bsize; + } + total_written_bytes += bytes_written; pthread_mutex_unlock(&lock_write); diff --git a/src/output_redirect.c b/src/output_redirect.c index 48d7f02..e296b33 100644 --- a/src/output_redirect.c +++ b/src/output_redirect.c @@ -64,17 +64,20 @@ int COM(const char* func, char *format, ...) va_end (args); logtm = localtime(&logtime); - snprintf(timestr, sizeof(timestr), "%02d-%02d-%02d %02d:%02d:%02d", logtm->tm_year+1900, logtm->tm_mon+1, logtm->tm_mday, logtm->tm_hour, logtm->tm_min, logtm->tm_sec); - snprintf(tmpstr, sizeof(tmpstr), "%s _%s_: %s", timestr, func, str); - free(str); - fprintf(stdout, "%s", tmpstr); if(logging_flag) { + snprintf(timestr, sizeof(timestr), "%02d-%02d-%02d %02d:%02d:%02d", logtm->tm_year+1900, logtm->tm_mon+1, logtm->tm_mday, logtm->tm_hour, logtm->tm_min, logtm->tm_sec); + snprintf(tmpstr, sizeof(tmpstr), "%s _%s_: %s", timestr, func, str); fprintf(logfp, "%s", tmpstr); fclose(logfp); } + else + { + snprintf(tmpstr, sizeof(tmpstr), "_%s_: %s", func, str); + fprintf(stdout, "%s", tmpstr); + } - + free(str); return 0; } |