From 63d43e6545dcfd564a3456dbe1cfab0a0f491655 Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Mon, 3 Dec 2012 14:35:47 -0800 Subject: [PATCH] Renaming ASCII writer filter option 'only_single_header_row' to 'tsv'. Also clarifying usage. Closes #912. --- CHANGES | 5 +++++ VERSION | 2 +- .../base/frameworks/logging/writers/ascii.bro | 11 +++++++---- src/logging/writers/Ascii.cc | 16 ++++++++-------- src/logging/writers/Ascii.h | 2 +- .../ssh-filtered.log | 0 .../logging/{ascii-csv.bro => ascii-tsv.bro} | 2 +- 7 files changed, 23 insertions(+), 15 deletions(-) rename testing/btest/Baseline/{scripts.base.frameworks.logging.ascii-csv => scripts.base.frameworks.logging.ascii-tsv}/ssh-filtered.log (100%) rename testing/btest/scripts/base/frameworks/logging/{ascii-csv.bro => ascii-tsv.bro} (94%) diff --git a/CHANGES b/CHANGES index abe92547d9..475207a99f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,9 @@ +2.1-194 | 2012-12-03 14:36:26 -0800 + + * Renaming ASCII writer filter option 'only_single_header_row' to + 'tsv'. Also clarifying usage. Closes #912. (Robin Sommer) + 2.1-193 | 2012-12-03 14:11:14 -0800 * Fix a set of bugs with table/set attributes. (Jon Siwek) diff --git a/VERSION b/VERSION index c8d43d4760..57be098d90 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1-193 +2.1-194 diff --git a/scripts/base/frameworks/logging/writers/ascii.bro b/scripts/base/frameworks/logging/writers/ascii.bro index 800af51502..352006666b 100644 --- a/scripts/base/frameworks/logging/writers/ascii.bro +++ b/scripts/base/frameworks/logging/writers/ascii.bro @@ -2,11 +2,14 @@ ##! to tweak the output format of ASCII logs. ##! ##! The ASCII writer supports currently one writer-specific filter option via -##! ``config``: setting ``only_single_header_row`` to ``T`` turns the output into -##! into CSV mode where only a single header row with the column names is printed -##! out as meta information. Example filter using this:: +##! ``config``: setting ``tsv`` to the string ``T`` turns the output into into +##! "tab-separated-value" mode where only a single header row with the column names +##! is printed out as meta information, with no "# fields" prepended; no other meta +##! data gets included in that mode. ##! -##! local my_filter: Log::Filter = [$name = "my-filter", $writer = Log::WRITER_ASCII, $config = table(["only_single_header_row"] = "T")]; +##! Example filter using this:: +##! +##! local my_filter: Log::Filter = [$name = "my-filter", $writer = Log::WRITER_ASCII, $config = table(["tsv"] = "T")]; ##! module LogAscii; diff --git a/src/logging/writers/Ascii.cc b/src/logging/writers/Ascii.cc index c65b0701c3..15b50344d5 100644 --- a/src/logging/writers/Ascii.cc +++ b/src/logging/writers/Ascii.cc @@ -19,7 +19,7 @@ Ascii::Ascii(WriterFrontend* frontend) : WriterBackend(frontend) { fd = 0; ascii_done = false; - only_single_header_row = false; + tsv = false; output_to_stdout = BifConst::LogAscii::output_to_stdout; include_meta = BifConst::LogAscii::include_meta; @@ -81,7 +81,7 @@ void Ascii::CloseFile(double t) if ( ! fd ) return; - if ( include_meta && ! only_single_header_row ) + if ( include_meta && ! tsv ) WriteHeaderField("close", Timestamp(0)); safe_close(fd); @@ -111,17 +111,17 @@ bool Ascii::DoInit(const WriterInfo& info, int num_fields, const Field* const * for ( WriterInfo::config_map::const_iterator i = info.config.begin(); i != info.config.end(); i++ ) { - if ( strcmp(i->first, "only_single_header_row") == 0 ) + if ( strcmp(i->first, "tsv") == 0 ) { if ( strcmp(i->second, "T") == 0 ) - only_single_header_row = true; + tsv = true; else if ( strcmp(i->second, "F") == 0 ) - only_single_header_row = false; + tsv = false; else { - Error("invalid value for 'only_single_header_row', must be boolean (T/F)"); + Error("invalid value for 'tsv', must be a string and either \"T\" or \"F\""); return false; } } @@ -144,9 +144,9 @@ bool Ascii::DoInit(const WriterInfo& info, int num_fields, const Field* const * types += fields[i]->TypeName().c_str(); } - if ( only_single_header_row ) + if ( tsv ) { - // A single CSV-style line is all we need. + // A single TSV-style line is all we need. string str = names + "\n"; if ( ! safe_write(fd, str.c_str(), str.length()) ) goto write_error; diff --git a/src/logging/writers/Ascii.h b/src/logging/writers/Ascii.h index 37ec19aba6..9fff5aae30 100644 --- a/src/logging/writers/Ascii.h +++ b/src/logging/writers/Ascii.h @@ -45,7 +45,7 @@ private: // Options set from the script-level. bool output_to_stdout; bool include_meta; - bool only_single_header_row; + bool tsv; char* separator; int separator_len; diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.ascii-csv/ssh-filtered.log b/testing/btest/Baseline/scripts.base.frameworks.logging.ascii-tsv/ssh-filtered.log similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.logging.ascii-csv/ssh-filtered.log rename to testing/btest/Baseline/scripts.base.frameworks.logging.ascii-tsv/ssh-filtered.log diff --git a/testing/btest/scripts/base/frameworks/logging/ascii-csv.bro b/testing/btest/scripts/base/frameworks/logging/ascii-tsv.bro similarity index 94% rename from testing/btest/scripts/base/frameworks/logging/ascii-csv.bro rename to testing/btest/scripts/base/frameworks/logging/ascii-tsv.bro index 1c10f5fc6b..09276a08fd 100644 --- a/testing/btest/scripts/base/frameworks/logging/ascii-csv.bro +++ b/testing/btest/scripts/base/frameworks/logging/ascii-tsv.bro @@ -22,7 +22,7 @@ event bro_init() Log::create_stream(SSH::LOG, [$columns=Log]); local filter = Log::get_filter(SSH::LOG, "default"); - filter$config = table(["only_single_header_row"] = "T"); + filter$config = table(["tsv"] = "T"); Log::add_filter(SSH::LOG, filter); local cid = [$orig_h=1.2.3.4, $orig_p=1234/tcp, $resp_h=2.3.4.5, $resp_p=80/tcp];