From cc61af1e2c933f2178a5dc3e5a5599e74d380eb3 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Thu, 10 Aug 2017 21:55:29 +0200 Subject: Add duration to packages and tpp format --- src/monitor-cmd.cc | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/monitor-cmd.cc') diff --git a/src/monitor-cmd.cc b/src/monitor-cmd.cc index 580f45f..eb7245d 100644 --- a/src/monitor-cmd.cc +++ b/src/monitor-cmd.cc @@ -63,27 +63,28 @@ public: } void package_data(Monitor*, uint32_t id, - char const* data, size_t size, bool last) override { + char const* data, size_t size, bool last, + struct timespec timestamp) override { auto it = packages_.find(id); if (it == packages_.end()) { assert(false); return; } if (interleave_) { - print_package(it->second, last, data, size); + print_package(it->second, last, data, size, timestamp); if (last) packages_.erase(it); return; } auto buf = data_.find(id); if (last) { if (buf == data_.end()) { - print_package(it->second, true, data, size); + print_package(it->second, true, data, size, timestamp); } else { buf->second->write(data, size); size_t avail; auto ptr = buf->second->read_ptr(&avail); print_package(it->second, true, - reinterpret_cast(ptr), avail); + reinterpret_cast(ptr), avail, timestamp); data_.erase(buf); } packages_.erase(it); @@ -97,17 +98,19 @@ public: } private: - void print_package(Package& pkg, bool last, char const* data, size_t size) { + void print_package(Package& pkg, bool last, char const* data, size_t size, + struct timespec timestamp) { if (size == 0 && !last) return; if (writer_) { assert(last); - writer_->write(pkg, data, size); + writer_->write(pkg, data, size, timestamp); return; } { ios_save save(out_); - out_ << "*** " << pkg.timestamp.tv_sec << '.' - << std::setfill('0') << std::setw(9) << pkg.timestamp.tv_nsec + auto ts = interleave_ ? timestamp : pkg.timestamp; + out_ << "*** " << ts.tv_sec << '.' + << std::setfill('0') << std::setw(9) << ts.tv_nsec << '\n'; } out_ << "* Source: " << pkg.source_host << ':' << pkg.source_port << '\n' -- cgit v1.2.3-70-g09d2