NetworkCaptureLogger: PCAP support added

Log TCP/UDP read/write with fake packet.
This commit is contained in:
Sepalani
2017-08-29 22:14:01 +01:00
parent 906fbf6c8e
commit 82bb5d9915
12 changed files with 485 additions and 29 deletions

View File

@@ -388,14 +388,23 @@ std::shared_ptr<Core::NetworkCaptureLogger> PPCDebugInterface::NetworkLogger()
{
const bool has_ssl = Config::Get(Config::MAIN_NETWORK_SSL_DUMP_READ) ||
Config::Get(Config::MAIN_NETWORK_SSL_DUMP_WRITE);
const auto current_capture_type =
has_ssl ? Core::NetworkCaptureType::Raw : Core::NetworkCaptureType::None;
const bool is_pcap = Config::Get(Config::MAIN_NETWORK_DUMP_AS_PCAP);
const auto current_capture_type = [&] {
if (is_pcap)
return Core::NetworkCaptureType::PCAP;
if (has_ssl)
return Core::NetworkCaptureType::Raw;
return Core::NetworkCaptureType::None;
}();
if (m_network_logger && m_network_logger->GetCaptureType() == current_capture_type)
return m_network_logger;
switch (current_capture_type)
{
case Core::NetworkCaptureType::PCAP:
m_network_logger = std::make_shared<Core::PCAPSSLCaptureLogger>();
break;
case Core::NetworkCaptureType::Raw:
m_network_logger = std::make_shared<Core::BinarySSLCaptureLogger>();
break;