From 111dafb178019fd5372292582c9a21f0b1bcc178 Mon Sep 17 00:00:00 2001 From: Maxime Mouchet Date: Sat, 6 Jan 2024 22:21:22 +0100 Subject: [PATCH] sniffer: fix mangled lines on stdout output --- .github/workflows/binaries.yml | 2 +- .github/workflows/tests.yml | 2 +- src/sniffer.cpp | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/binaries.yml b/.github/workflows/binaries.yml index 62f8034..2b2f79a 100644 --- a/.github/workflows/binaries.yml +++ b/.github/workflows/binaries.yml @@ -27,7 +27,7 @@ jobs: path: build/caracal-linux-amd64 macos: - runs-on: macos-latest + runs-on: macos-13 steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5ae0ddd..9171d4f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -48,7 +48,7 @@ jobs: - uses: codecov/codecov-action@v3 macos: - runs-on: macos-latest + runs-on: macos-13 steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 diff --git a/src/sniffer.cpp b/src/sniffer.cpp index 2ad0026..899f27a 100644 --- a/src/sniffer.cpp +++ b/src/sniffer.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include namespace fs = std::filesystem; @@ -70,6 +71,7 @@ void Sniffer::start() noexcept { std::cout << (Reply::csv_header() + "\n"); auto handler = [this](Tins::Packet &packet) { auto reply = Parser::parse(packet); + auto stdout = std::osyncstream(std::cout); if (reply && (!integrity_check_ || reply->is_valid(caracal_id_))) { spdlog::trace(reply.value()); @@ -77,7 +79,7 @@ void Sniffer::start() noexcept { if (reply->is_time_exceeded()) { statistics_.icmp_messages_path.insert(reply->reply_src_addr); } - std::cout << (reply->to_csv(meta_round_.value_or("1")) + "\n"); + stdout << (reply->to_csv(meta_round_.value_or("1")) + "\n"); } else { auto data = packet.pdu()->serialize(); spdlog::trace("invalid_packet_hex={:02x}", fmt::join(data, ""));