Yarilo  v0.9
WPA2 Decrypter & Packet Analyzer
recording.h
Go to the documentation of this file.
1 #ifndef SNIFF_RECORDING
2 #define SNIFF_RECORDING
3 
4 #include "channel.h"
5 #include "uuid.h"
6 #include <filesystem>
7 #include <memory>
8 #include <optional>
9 #include <spdlog/logger.h>
10 #include <tins/snap.h>
11 
12 namespace yarilo {
13 
17 class Recording {
18 public:
22  enum class DataLinkType {
23  RADIOTAP,
24  RAW80211,
25  ETH2,
26  };
27 
31  struct info {
33  std::string filename;
34  std::string display_name;
36  uint32_t count;
37  };
38 
44  Recording(const std::filesystem::path &save_dir, bool dump_raw);
45 
51  void set_name(const std::string &basename) { this->basename = basename; }
52 
59  std::optional<info> dump(std::shared_ptr<PacketChannel> channel) const;
60 
67  std::optional<info> dump(std::vector<Tins::Packet *> *packets) const;
68 
74  static std::unique_ptr<Tins::Packet> make_eth_packet(Tins::Packet *pkt);
75 
76 private:
77  /*
78  * Generates a filename for the recording file.
79  * @return The generated filename as a path object.
80  */
81  std::filesystem::path generate_filename() const;
82 
83  std::shared_ptr<spdlog::logger> logger;
84  const std::filesystem::path save_dir;
85  const bool dump_raw = false;
86  std::string basename = "recording";
87  uuid::UUIDv4 uuid;
88 };
89 
90 } // namespace yarilo
91 
92 #endif // SNIFF_RECORDING
Recordings utility class.
Definition: recording.h:17
static std::unique_ptr< Tins::Packet > make_eth_packet(Tins::Packet *pkt)
Definition: recording.cpp:139
std::optional< info > dump(std::shared_ptr< PacketChannel > channel) const
Definition: recording.cpp:19
Recording(const std::filesystem::path &save_dir, bool dump_raw)
Definition: recording.cpp:12
void set_name(const std::string &basename)
Definition: recording.h:51
DataLinkType
data link of a saved recording
Definition: recording.h:22
std::string UUIDv4
Definition: uuid.h:11
Definition: access_point.cpp:22
Information about a saved recording.
Definition: recording.h:31
std::string filename
Definition: recording.h:33
uuid::UUIDv4 uuid
Definition: recording.h:32
DataLinkType datalink
Definition: recording.h:35
std::string display_name
Definition: recording.h:34
uint32_t count
Definition: recording.h:36