Changeset View
Changeset View
Standalone View
Standalone View
src/seeder/test/dns_tests.cpp
// Copyright (c) 2019 The Bitcoin developers | // Copyright (c) 2019 The Bitcoin developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#include <seeder/dns.h> | #include <seeder/dns.h> | ||||
#include <string> | #include <string> | ||||
#include <vector> | #include <vector> | ||||
#include <boost/test/unit_test.hpp> | #include <boost/test/unit_test.hpp> | ||||
BOOST_AUTO_TEST_SUITE(dns_tests) | BOOST_AUTO_TEST_SUITE(dns_tests) | ||||
static const int MAX_QUERY_NAME_LENGTH = 255; | |||||
// Max size of the null-terminated buffer parse_name() writes to. | |||||
static const int MAX_QUERY_NAME_BUFFER_LENGTH = MAX_QUERY_NAME_LENGTH + 1; | |||||
static const uint8_t END_OF_NAME_FIELD = 0; | static const uint8_t END_OF_NAME_FIELD = 0; | ||||
static const size_t MAX_LABEL_LENGTH = 63; | |||||
// Builds the name field of the question section of a DNS query | // Builds the name field of the question section of a DNS query | ||||
static std::vector<uint8_t> | static std::vector<uint8_t> | ||||
CreateDNSQuestionNameField(const std::string &queryName) { | CreateDNSQuestionNameField(const std::string &queryName) { | ||||
std::vector<uint8_t> nameField; | std::vector<uint8_t> nameField; | ||||
size_t i = 0; | size_t i = 0; | ||||
size_t labelIndex = 0; | size_t labelIndex = 0; | ||||
while (i < queryName.size()) { | while (i < queryName.size()) { | ||||
▲ Show 20 Lines • Show All 115 Lines • Show Last 20 Lines |