Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b1ae5c3 authored by Henri Chataing's avatar Henri Chataing Committed by Automerger Merge Worker
Browse files

Merge "RootCanal: Implement simple PCAP filtering" am: e4e780c7

parents 8d58eb21 e4e780c7
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -40,6 +40,14 @@ class PacketBuilder : public BasePacketBuilder, protected EndianInserter<little_

  // Classes which need fragmentation should define a function like this:
  // std::forward_list<DerivedBuilder>& Fragment(size_t max_size);

  // Serialize the packet to a byte vector.
  std::vector<uint8_t> SerializeToBytes() const {
    std::vector<uint8_t> output;
    BitInserter it(output);
    Serialize(it);
    return output;
  }
};

}  // namespace packet
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ PacketView<little_endian>::PacketView(const std::forward_list<class View> fragme
}

template <bool little_endian>
PacketView<little_endian>::PacketView(std::shared_ptr<std::vector<uint8_t>> packet)
PacketView<little_endian>::PacketView(std::shared_ptr<const std::vector<uint8_t>> packet)
    : fragments_({View(packet, 0, packet->size())}), length_(packet->size()) {}

template <bool little_endian>
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ class PacketView {
 public:
  explicit PacketView(std::forward_list<View> fragments);
  PacketView(const PacketView& PacketView) = default;
  explicit PacketView(std::shared_ptr<std::vector<uint8_t>> packet);
  explicit PacketView(std::shared_ptr<const std::vector<uint8_t>> packet);
  PacketView<little_endian>() = delete;
  virtual ~PacketView() = default;

+1 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ filegroup {
        "lib/crypto/crypto.cc",
        "lib/hci/address.cc",
        "lib/hci/class_of_device.cc",
        "lib/hci/pcap_filter.cc",
    ],
}

+3 −1
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ DEFINE_string(default_commands_file, "",
              "commands file which root-canal runs it as default");
DEFINE_bool(enable_hci_sniffer, false, "enable hci sniffer");
DEFINE_bool(enable_baseband_sniffer, false, "enable baseband sniffer");
DEFINE_bool(enable_pcap_filter, false, "enable PCAP filter");

constexpr uint16_t kTestPort = 6401;
constexpr uint16_t kHciServerPort = 6402;
@@ -131,7 +132,8 @@ int main(int argc, char** argv) {
      std::make_shared<PosixAsyncSocketServer>(link_ble_server_port, &am),
      std::make_shared<PosixAsyncSocketConnector>(&am),
      FLAGS_controller_properties_file, FLAGS_default_commands_file,
      FLAGS_enable_hci_sniffer, FLAGS_enable_baseband_sniffer);
      FLAGS_enable_hci_sniffer, FLAGS_enable_baseband_sniffer,
      FLAGS_enable_pcap_filter);
  std::promise<void> barrier;
  std::future<void> barrier_future = barrier.get_future();
  root_canal.initialize(std::move(barrier));
Loading