/src/serenity/Userland/Libraries/LibDNS/Question.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2020, Andreas Kling <kling@serenityos.org> |
3 | | * |
4 | | * SPDX-License-Identifier: BSD-2-Clause |
5 | | */ |
6 | | |
7 | | #pragma once |
8 | | |
9 | | #include "Answer.h" |
10 | | #include "Name.h" |
11 | | #include <AK/Types.h> |
12 | | |
13 | | namespace DNS { |
14 | | |
15 | 13.8M | #define MDNS_WANTS_UNICAST_RESPONSE 0x8000 |
16 | | |
17 | | class Question { |
18 | | public: |
19 | | Question(Name const& name, RecordType record_type, RecordClass class_code, bool mdns_wants_unicast_response) |
20 | 6.59M | : m_name(name) |
21 | 6.59M | , m_record_type(record_type) |
22 | 6.59M | , m_class_code(class_code) |
23 | 6.59M | , m_mdns_wants_unicast_response(mdns_wants_unicast_response) |
24 | 6.59M | { |
25 | 6.59M | } |
26 | | |
27 | 1.33M | RecordType record_type() const { return m_record_type; } |
28 | 0 | RecordClass class_code() const { return m_class_code; } |
29 | 1.33M | u16 raw_class_code() const { return (u16)m_class_code | (m_mdns_wants_unicast_response ? MDNS_WANTS_UNICAST_RESPONSE : 0); } |
30 | 1.33M | Name const& name() const { return m_name; } |
31 | 0 | bool mdns_wants_unicast_response() const { return m_mdns_wants_unicast_response; } |
32 | | |
33 | | private: |
34 | | Name m_name; |
35 | | RecordType m_record_type { 0 }; |
36 | | RecordClass m_class_code { 0 }; |
37 | | bool m_mdns_wants_unicast_response { false }; |
38 | | }; |
39 | | |
40 | | } |