rpcsx/rpcs3/Emu/NP/np_dnshook.h

36 lines
679 B
C
Raw Normal View History

2021-11-03 00:53:57 +01:00
#pragma once
2022-05-05 13:11:22 +02:00
#include <unordered_map>
2021-11-03 00:53:57 +01:00
#include <queue>
#include <vector>
2022-05-05 13:11:22 +02:00
#include <optional>
2021-11-03 00:53:57 +01:00
#include "util/types.hpp"
#include "Utilities/mutex.h"
namespace np
{
class dnshook
{
public:
dnshook();
void add_dns_spy(u32 sock);
void remove_dns_spy(u32 sock);
bool is_dns(u32 sock);
bool is_dns_queue(u32 sock);
std::vector<u8> get_dns_packet(u32 sock);
s32 analyze_dns_packet(s32 s, const u8* buf, u32 len);
2022-05-05 13:11:22 +02:00
private:
std::optional<u32> get_redir(const std::string& hostname);
2021-11-03 00:53:57 +01:00
private:
shared_mutex mutex;
2022-05-05 13:11:22 +02:00
std::unordered_map<s32, std::queue<std::vector<u8>>> m_dns_spylist;
std::vector<std::pair<std::string, u32>> m_redirs;
2021-11-03 00:53:57 +01:00
};
} // namespace np