userver
C++ Async Framework
Toggle main menu visibility
Documentation
API Groups
Namespaces
Reference
Class List
Class Index
File List
Macros
All
e
i
l
r
t
u
Functions
Macros
e
i
l
r
t
u
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Concepts
Loading...
Searching...
No Matches
dns_server_mock.hpp
1
#
pragma
once
2
3
#
include
<
exception
>
4
#
include
<
functional
>
5
#
include
<
memory
>
6
#
include
<
string
>
7
#
include
<
variant
>
8
#
include
<
vector
>
9
10
#
include
<
userver
/
engine
/
io
/
sockaddr
.
hpp
>
11
#
include
<
userver
/
engine
/
task
/
task
.
hpp
>
12
13
USERVER_NAMESPACE_BEGIN
14
15
namespace
internal::net {
16
struct
UdpListener;
17
}
// namespace internal::net
18
19
namespace
utest {
20
21
class
DnsServerMock
final
{
22
public
:
23
enum
class
RecordType {
24
kInvalid = 0,
25
kA = 1,
26
kAAAA = 28,
27
kCname = 5,
28
};
29
30
struct
DnsQuery
{
31
RecordType type{RecordType::kInvalid};
32
std::string name;
33
};
30
struct
DnsQuery
{
…
};
34
35
struct
DnsAnswer
{
36
using
AnswerData = std::variant<std::monostate, engine::
io
::Sockaddr, std::string>;
37
38
RecordType type{RecordType::kInvalid};
39
AnswerData data;
40
int
ttl{0};
41
};
35
struct
DnsAnswer
{
…
};
42
43
using
DnsAnswerVector = std::vector<
DnsAnswer
>;
44
45
struct
NoAnswer
: std::exception {};
46
47
// throwing an exception will cause SERVFAIL
48
using
DnsHandler = std::function<DnsAnswerVector(
const
DnsQuery
&)>;
49
50
explicit
DnsServerMock(DnsHandler);
51
52
std::string GetServerAddress()
const
;
53
54
private
:
55
void
ProcessRequests();
56
57
std::shared_ptr<internal::net::UdpListener> listener_;
58
DnsHandler handler_;
59
engine::
Task
receiver_task_;
60
};
21
class
DnsServerMock
final
{
…
};
61
62
}
// namespace utest
63
64
USERVER_NAMESPACE_END
userver
utest
dns_server_mock.hpp
Generated on Wed Apr 30 2025 15:55:42 for userver by
Doxygen
1.13.2