mmmm food
parent
3c5236d5d4
commit
deb4ee52eb
|
@ -28,7 +28,8 @@
|
|||
static constexpr size_t PACKET_BUFFER_SIZE = 65535;
|
||||
|
||||
/*
|
||||
* These structs are used in combination with templates to create a form of polymorphism which has significantly reduced the code reuse.
|
||||
* These structs are used in combination with templates to create polymorphism between the UDP and TCP implementation.
|
||||
* this design decision has significantly reduced the code reuse while not introducing any runtime overhead.
|
||||
* The data set within these structures are specific to the protocol they implement. UDP is exactly as specified in the RFC spec
|
||||
* TCP is what I observed from wireshark (+2 byte offset)
|
||||
*/
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* BLT Memory Util for parsing DNS packets / BLT + ASIO simple packet sender.
|
||||
* BLT Memory Util for parsing DNS packets / BLT + ASIO simple packet sender / BLT Type Name Demangler.
|
||||
* This software is unlikely to become part of BLT main but is provided under the BLT license (GPL 3).
|
||||
* Copyright (C) 2023 Brett Terpstra, Et al
|
||||
*
|
||||
|
@ -26,6 +26,13 @@
|
|||
#include <cstdint>
|
||||
#include <functional>
|
||||
#include <blt/std/memory.h>
|
||||
#include <blt/std/logging.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
#include <cxxabi.h>
|
||||
|
||||
#endif
|
||||
|
||||
using asio::ip::udp;
|
||||
using asio::ip::tcp;
|
||||
|
@ -128,6 +135,7 @@ namespace blt
|
|||
void sendUDPMessage(const std::string& host, const unsigned char* const& in, size_t in_size, blt::scoped_buffer<unsigned char>& out,
|
||||
size_t& out_size)
|
||||
{
|
||||
BLT_DEBUG("Sending UDP DNS request to '%s' of size %d", host.c_str(), in_size);
|
||||
asio::io_context io_context;
|
||||
udp::endpoint receiver_endpoint(asio::ip::address::from_string(host), 53);
|
||||
|
||||
|
@ -138,6 +146,7 @@ namespace blt
|
|||
|
||||
udp::endpoint sender_endpoint;
|
||||
out_size = socket.receive_from(asio::buffer(out.data(), out.size()), sender_endpoint);
|
||||
BLT_DEBUG("Received UDP DNS response from '%s' of size %d", host.c_str(), out_size);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -151,6 +160,7 @@ namespace blt
|
|||
void sendTCPMessage(const std::string& host, const unsigned char* const& in, size_t in_size, blt::scoped_buffer<unsigned char>& out,
|
||||
size_t& out_size)
|
||||
{
|
||||
BLT_DEBUG("Sending TCP DNS request to '%s' of size %d", host.c_str(), in_size);
|
||||
asio::io_context io_context;
|
||||
tcp::resolver resolver(io_context);
|
||||
tcp::resolver::results_type endpoints = resolver.resolve(host, "53");
|
||||
|
@ -161,9 +171,41 @@ namespace blt
|
|||
asio::write(socket, asio::buffer(in, in_size));
|
||||
|
||||
out_size = socket.read_some(asio::buffer(out.data(), out.size()));
|
||||
BLT_DEBUG("Received TCP dns response from '%s' of size %d", host.c_str(), out_size);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
/**
|
||||
* Attempts to demangle the type name of the provided template type
|
||||
* @tparam T
|
||||
* @return
|
||||
*/
|
||||
template<typename T>
|
||||
static BLT_CPP20_CONSTEXPR inline std::string type_name()
|
||||
{
|
||||
int status;
|
||||
std::string return_name = typeid(T).name();
|
||||
// only defined for GNU C++11?
|
||||
char *demangled_name = abi::__cxa_demangle(return_name.c_str(), nullptr, nullptr, &status);
|
||||
if (demangled_name == nullptr)
|
||||
return return_name;
|
||||
return_name = demangled_name;
|
||||
std::free(demangled_name);
|
||||
return return_name;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
static BLT_CPP20_CONSTEXPR inline std::string is_UDP_or_TCP(){
|
||||
std::string type = "UDP";
|
||||
if (blt::string::contains(blt::type_name<T>(), "TCP"))
|
||||
type = "TCP";
|
||||
return type;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
#endif //INSANE_DNS_UTIL_H
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 55c497475e15b9a4ff0ac319c2997bd1869c4454
|
||||
Subproject commit 1d8f9b4bbdb84647c8a96b1ef87d262afd7021cb
|
|
@ -0,0 +1,619 @@
|
|||
desc: (none)
|
||||
cmd: ./cmake-build-release/insane_dns
|
||||
time_unit: i
|
||||
#-----------
|
||||
snapshot=0
|
||||
#-----------
|
||||
time=0
|
||||
mem_heap_B=0
|
||||
mem_heap_extra_B=0
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=1
|
||||
#-----------
|
||||
time=1858253
|
||||
mem_heap_B=72704
|
||||
mem_heap_extra_B=8
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=2
|
||||
#-----------
|
||||
time=1967477
|
||||
mem_heap_B=72721
|
||||
mem_heap_extra_B=31
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=3
|
||||
#-----------
|
||||
time=2065395
|
||||
mem_heap_B=83254
|
||||
mem_heap_extra_B=426
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=4
|
||||
#-----------
|
||||
time=2127401
|
||||
mem_heap_B=82839
|
||||
mem_heap_extra_B=385
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=5
|
||||
#-----------
|
||||
time=2180342
|
||||
mem_heap_B=346399
|
||||
mem_heap_extra_B=521
|
||||
mem_stacks_B=0
|
||||
heap_tree=peak
|
||||
n7: 346399 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 65535 0x12315B: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x123177: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E23: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E3F: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n0: 6043 in 35 places, all below massif's threshold (1.00%)
|
||||
n1: 5512 0x13B9F6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121189: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121370: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
#-----------
|
||||
snapshot=6
|
||||
#-----------
|
||||
time=2228939
|
||||
mem_heap_B=346548
|
||||
mem_heap_extra_B=516
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=7
|
||||
#-----------
|
||||
time=2302687
|
||||
mem_heap_B=348602
|
||||
mem_heap_extra_B=758
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=8
|
||||
#-----------
|
||||
time=2402590
|
||||
mem_heap_B=346383
|
||||
mem_heap_extra_B=513
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=9
|
||||
#-----------
|
||||
time=2483605
|
||||
mem_heap_B=347791
|
||||
mem_heap_extra_B=729
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=10
|
||||
#-----------
|
||||
time=2565212
|
||||
mem_heap_B=347203
|
||||
mem_heap_extra_B=741
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=11
|
||||
#-----------
|
||||
time=2621156
|
||||
mem_heap_B=347203
|
||||
mem_heap_extra_B=741
|
||||
mem_stacks_B=0
|
||||
heap_tree=detailed
|
||||
n7: 347203 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 65535 0x12315B: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x123177: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E23: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E3F: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n0: 6847 in 46 places, all below massif's threshold (1.00%)
|
||||
n1: 5512 0x13B9F6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121189: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121370: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
#-----------
|
||||
snapshot=12
|
||||
#-----------
|
||||
time=2686859
|
||||
mem_heap_B=346993
|
||||
mem_heap_extra_B=711
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=13
|
||||
#-----------
|
||||
time=2791597
|
||||
mem_heap_B=347876
|
||||
mem_heap_extra_B=740
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=14
|
||||
#-----------
|
||||
time=2843781
|
||||
mem_heap_B=347289
|
||||
mem_heap_extra_B=591
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=15
|
||||
#-----------
|
||||
time=2921141
|
||||
mem_heap_B=348298
|
||||
mem_heap_extra_B=646
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=16
|
||||
#-----------
|
||||
time=3030115
|
||||
mem_heap_B=346383
|
||||
mem_heap_extra_B=513
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=17
|
||||
#-----------
|
||||
time=3097580
|
||||
mem_heap_B=346839
|
||||
mem_heap_extra_B=593
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=18
|
||||
#-----------
|
||||
time=3142554
|
||||
mem_heap_B=347052
|
||||
mem_heap_extra_B=620
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=19
|
||||
#-----------
|
||||
time=3219691
|
||||
mem_heap_B=346492
|
||||
mem_heap_extra_B=516
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=20
|
||||
#-----------
|
||||
time=3279011
|
||||
mem_heap_B=347293
|
||||
mem_heap_extra_B=587
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=21
|
||||
#-----------
|
||||
time=3354896
|
||||
mem_heap_B=348888
|
||||
mem_heap_extra_B=784
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=22
|
||||
#-----------
|
||||
time=3432040
|
||||
mem_heap_B=346383
|
||||
mem_heap_extra_B=513
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=23
|
||||
#-----------
|
||||
time=3491370
|
||||
mem_heap_B=347474
|
||||
mem_heap_extra_B=694
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=24
|
||||
#-----------
|
||||
time=3566435
|
||||
mem_heap_B=347294
|
||||
mem_heap_extra_B=730
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=25
|
||||
#-----------
|
||||
time=3626993
|
||||
mem_heap_B=346972
|
||||
mem_heap_extra_B=700
|
||||
mem_stacks_B=0
|
||||
heap_tree=detailed
|
||||
n7: 346972 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 65535 0x12315B: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x123177: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E23: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E3F: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n0: 6616 in 50 places, all below massif's threshold (1.00%)
|
||||
n1: 5512 0x13B9F6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121189: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121370: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
#-----------
|
||||
snapshot=26
|
||||
#-----------
|
||||
time=3716795
|
||||
mem_heap_B=346972
|
||||
mem_heap_extra_B=700
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=27
|
||||
#-----------
|
||||
time=3761731
|
||||
mem_heap_B=346974
|
||||
mem_heap_extra_B=698
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=28
|
||||
#-----------
|
||||
time=3836623
|
||||
mem_heap_B=347264
|
||||
mem_heap_extra_B=744
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=29
|
||||
#-----------
|
||||
time=3926969
|
||||
mem_heap_B=346723
|
||||
mem_heap_extra_B=565
|
||||
mem_stacks_B=0
|
||||
heap_tree=detailed
|
||||
n7: 346723 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 65535 0x12315B: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x123177: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E23: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E3F: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n0: 6367 in 50 places, all below massif's threshold (1.00%)
|
||||
n1: 5512 0x13B9F6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121189: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121370: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
#-----------
|
||||
snapshot=30
|
||||
#-----------
|
||||
time=3972677
|
||||
mem_heap_B=348103
|
||||
mem_heap_extra_B=665
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=31
|
||||
#-----------
|
||||
time=4056355
|
||||
mem_heap_B=346383
|
||||
mem_heap_extra_B=513
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=32
|
||||
#-----------
|
||||
time=4147071
|
||||
mem_heap_B=347573
|
||||
mem_heap_extra_B=627
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=33
|
||||
#-----------
|
||||
time=4192567
|
||||
mem_heap_B=347659
|
||||
mem_heap_extra_B=669
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=34
|
||||
#-----------
|
||||
time=4260795
|
||||
mem_heap_B=346776
|
||||
mem_heap_extra_B=592
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=35
|
||||
#-----------
|
||||
time=4306232
|
||||
mem_heap_B=347293
|
||||
mem_heap_extra_B=587
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=36
|
||||
#-----------
|
||||
time=4374355
|
||||
mem_heap_B=348887
|
||||
mem_heap_extra_B=785
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=37
|
||||
#-----------
|
||||
time=4455264
|
||||
mem_heap_B=346383
|
||||
mem_heap_extra_B=513
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=38
|
||||
#-----------
|
||||
time=4523346
|
||||
mem_heap_B=346970
|
||||
mem_heap_extra_B=590
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=39
|
||||
#-----------
|
||||
time=4591349
|
||||
mem_heap_B=347629
|
||||
mem_heap_extra_B=643
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=40
|
||||
#-----------
|
||||
time=4636590
|
||||
mem_heap_B=346811
|
||||
mem_heap_extra_B=581
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=41
|
||||
#-----------
|
||||
time=4727579
|
||||
mem_heap_B=347783
|
||||
mem_heap_extra_B=673
|
||||
mem_stacks_B=0
|
||||
heap_tree=detailed
|
||||
n7: 347783 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 65535 0x12315B: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x123177: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E23: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E3F: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n0: 7427 in 50 places, all below massif's threshold (1.00%)
|
||||
n1: 5512 0x13B9F6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121189: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121370: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
#-----------
|
||||
snapshot=42
|
||||
#-----------
|
||||
time=4805586
|
||||
mem_heap_B=346383
|
||||
mem_heap_extra_B=513
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=43
|
||||
#-----------
|
||||
time=4873480
|
||||
mem_heap_B=346929
|
||||
mem_heap_extra_B=583
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=44
|
||||
#-----------
|
||||
time=4919047
|
||||
mem_heap_B=347515
|
||||
mem_heap_extra_B=597
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=45
|
||||
#-----------
|
||||
time=4986981
|
||||
mem_heap_B=347195
|
||||
mem_heap_extra_B=613
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=46
|
||||
#-----------
|
||||
time=5032678
|
||||
mem_heap_B=348375
|
||||
mem_heap_extra_B=777
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=47
|
||||
#-----------
|
||||
time=5114347
|
||||
mem_heap_B=346383
|
||||
mem_heap_extra_B=513
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=48
|
||||
#-----------
|
||||
time=5204963
|
||||
mem_heap_B=347542
|
||||
mem_heap_extra_B=602
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=49
|
||||
#-----------
|
||||
time=5296131
|
||||
mem_heap_B=346751
|
||||
mem_heap_extra_B=577
|
||||
mem_stacks_B=0
|
||||
heap_tree=detailed
|
||||
n7: 346751 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 65535 0x12315B: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x123177: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E23: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125E3F: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n0: 6395 in 50 places, all below massif's threshold (1.00%)
|
||||
n1: 5512 0x13B9F6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121189: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121370: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
#-----------
|
||||
snapshot=50
|
||||
#-----------
|
||||
time=5341085
|
||||
mem_heap_B=346939
|
||||
mem_heap_extra_B=605
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=51
|
||||
#-----------
|
||||
time=5386034
|
||||
mem_heap_B=348215
|
||||
mem_heap_extra_B=785
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=52
|
||||
#-----------
|
||||
time=5468799
|
||||
mem_heap_B=346383
|
||||
mem_heap_extra_B=513
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=53
|
||||
#-----------
|
||||
time=5514187
|
||||
mem_heap_B=347599
|
||||
mem_heap_extra_B=609
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=54
|
||||
#-----------
|
||||
time=5559331
|
||||
mem_heap_B=347542
|
||||
mem_heap_extra_B=602
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=55
|
||||
#-----------
|
||||
time=5604884
|
||||
mem_heap_B=347629
|
||||
mem_heap_extra_B=643
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
|
@ -0,0 +1,512 @@
|
|||
desc: (none)
|
||||
cmd: ./cmake-build-release/insane_dns
|
||||
time_unit: i
|
||||
#-----------
|
||||
snapshot=0
|
||||
#-----------
|
||||
time=0
|
||||
mem_heap_B=0
|
||||
mem_heap_extra_B=0
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=1
|
||||
#-----------
|
||||
time=1858915
|
||||
mem_heap_B=72704
|
||||
mem_heap_extra_B=8
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=2
|
||||
#-----------
|
||||
time=1968102
|
||||
mem_heap_B=72721
|
||||
mem_heap_extra_B=31
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=3
|
||||
#-----------
|
||||
time=1991434
|
||||
mem_heap_B=84075
|
||||
mem_heap_extra_B=141
|
||||
mem_stacks_B=0
|
||||
heap_tree=detailed
|
||||
n4: 84075 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 5512 0x13B5F7: blt::logging::tag_map::tag_map(std::initializer_list<blt::logging::tag>) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121247: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121440: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x13B9D6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121259: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121440: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n0: 347 in 6 places, all below massif's threshold (1.00%)
|
||||
#-----------
|
||||
snapshot=4
|
||||
#-----------
|
||||
time=2022277
|
||||
mem_heap_B=81429
|
||||
mem_heap_extra_B=387
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=5
|
||||
#-----------
|
||||
time=2066046
|
||||
mem_heap_B=83254
|
||||
mem_heap_extra_B=426
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=6
|
||||
#-----------
|
||||
time=2097404
|
||||
mem_heap_B=82492
|
||||
mem_heap_extra_B=404
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=7
|
||||
#-----------
|
||||
time=2128135
|
||||
mem_heap_B=82839
|
||||
mem_heap_extra_B=385
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=8
|
||||
#-----------
|
||||
time=2164690
|
||||
mem_heap_B=83930
|
||||
mem_heap_extra_B=342
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=9
|
||||
#-----------
|
||||
time=2185650
|
||||
mem_heap_B=347255
|
||||
mem_heap_extra_B=513
|
||||
mem_stacks_B=0
|
||||
heap_tree=peak
|
||||
n7: 347255 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 65535 0x12322B: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x123247: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125FBD: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125FD9: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n0: 6899 in 36 places, all below massif's threshold (1.00%)
|
||||
n1: 5512 0x13B9D6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121259: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121440: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
#-----------
|
||||
snapshot=10
|
||||
#-----------
|
||||
time=2217424
|
||||
mem_heap_B=347729
|
||||
mem_heap_extra_B=591
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=11
|
||||
#-----------
|
||||
time=2238570
|
||||
mem_heap_B=347551
|
||||
mem_heap_extra_B=529
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=12
|
||||
#-----------
|
||||
time=2273309
|
||||
mem_heap_B=348435
|
||||
mem_heap_extra_B=605
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=13
|
||||
#-----------
|
||||
time=2296370
|
||||
mem_heap_B=348898
|
||||
mem_heap_extra_B=646
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=14
|
||||
#-----------
|
||||
time=2336534
|
||||
mem_heap_B=347286
|
||||
mem_heap_extra_B=474
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=15
|
||||
#-----------
|
||||
time=2402373
|
||||
mem_heap_B=347239
|
||||
mem_heap_extra_B=505
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=16
|
||||
#-----------
|
||||
time=2431609
|
||||
mem_heap_B=347723
|
||||
mem_heap_extra_B=597
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=17
|
||||
#-----------
|
||||
time=2460342
|
||||
mem_heap_B=348308
|
||||
mem_heap_extra_B=604
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=18
|
||||
#-----------
|
||||
time=2503251
|
||||
mem_heap_B=347552
|
||||
mem_heap_extra_B=616
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=19
|
||||
#-----------
|
||||
time=2531869
|
||||
mem_heap_B=348259
|
||||
mem_heap_extra_B=653
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=20
|
||||
#-----------
|
||||
time=2559925
|
||||
mem_heap_B=347783
|
||||
mem_heap_extra_B=673
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=21
|
||||
#-----------
|
||||
time=2599638
|
||||
mem_heap_B=348508
|
||||
mem_heap_extra_B=612
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=22
|
||||
#-----------
|
||||
time=2623188
|
||||
mem_heap_B=347833
|
||||
mem_heap_extra_B=615
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=23
|
||||
#-----------
|
||||
time=2652796
|
||||
mem_heap_B=348573
|
||||
mem_heap_extra_B=619
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=24
|
||||
#-----------
|
||||
time=2675828
|
||||
mem_heap_B=348603
|
||||
mem_heap_extra_B=637
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=25
|
||||
#-----------
|
||||
time=2700332
|
||||
mem_heap_B=349467
|
||||
mem_heap_extra_B=765
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=26
|
||||
#-----------
|
||||
time=2737715
|
||||
mem_heap_B=348833
|
||||
mem_heap_extra_B=687
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=27
|
||||
#-----------
|
||||
time=2806505
|
||||
mem_heap_B=347407
|
||||
mem_heap_extra_B=521
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=28
|
||||
#-----------
|
||||
time=2828826
|
||||
mem_heap_B=347924
|
||||
mem_heap_extra_B=620
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=29
|
||||
#-----------
|
||||
time=2858597
|
||||
mem_heap_B=348050
|
||||
mem_heap_extra_B=718
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=30
|
||||
#-----------
|
||||
time=2880714
|
||||
mem_heap_B=348504
|
||||
mem_heap_extra_B=712
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=31
|
||||
#-----------
|
||||
time=2917861
|
||||
mem_heap_B=348900
|
||||
mem_heap_extra_B=748
|
||||
mem_stacks_B=0
|
||||
heap_tree=detailed
|
||||
n7: 348900 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 65535 0x12322B: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x123247: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125FBD: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125FD9: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n0: 8544 in 50 places, all below massif's threshold (1.00%)
|
||||
n1: 5512 0x13B9D6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121259: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121440: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
#-----------
|
||||
snapshot=32
|
||||
#-----------
|
||||
time=2962541
|
||||
mem_heap_B=348485
|
||||
mem_heap_extra_B=763
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=33
|
||||
#-----------
|
||||
time=2992631
|
||||
mem_heap_B=348959
|
||||
mem_heap_extra_B=769
|
||||
mem_stacks_B=0
|
||||
heap_tree=detailed
|
||||
n7: 348959 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
|
||||
n1: 72704 0x49077B9: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:70)
|
||||
n1: 72704 0x4004ABD: call_init (dl-init.c:26)
|
||||
n1: 72704 0x4004BA3: _dl_init (dl-init.c:117)
|
||||
n0: 72704 0x401AA5F: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
|
||||
n1: 65535 0x12322B: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x123247: run_udp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125FBD: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n1: 65535 0x125FD9: run_tcp_server() (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 65535 0x49364A2: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
|
||||
n1: 65535 0x4B25043: start_thread (pthread_create.c:442)
|
||||
n0: 65535 0x4BA485F: clone (clone.S:100)
|
||||
n0: 8603 in 50 places, all below massif's threshold (1.00%)
|
||||
n1: 5512 0x13B9D6: std::__detail::_MakeUniq<blt::logging::tag_map>::__single_object std::make_unique<blt::logging::tag_map, blt::logging::tag_map>(blt::logging::tag_map&&) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x121259: __static_initialization_and_destruction_0(int, int) [clone .constprop.0] (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
n1: 5512 0x4AC32F5: call_init (libc-start.c:145)
|
||||
n1: 5512 0x4AC32F5: __libc_start_main@@GLIBC_2.34 (libc-start.c:347)
|
||||
n0: 5512 0x121440: (below main) (in /home/brett/Documents/code/c++/Insane_DNS/cmake-build-release/insane_dns)
|
||||
#-----------
|
||||
snapshot=34
|
||||
#-----------
|
||||
time=3022333
|
||||
mem_heap_B=348515
|
||||
mem_heap_extra_B=765
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=35
|
||||
#-----------
|
||||
time=3052343
|
||||
mem_heap_B=348485
|
||||
mem_heap_extra_B=763
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=36
|
||||
#-----------
|
||||
time=3074669
|
||||
mem_heap_B=348447
|
||||
mem_heap_extra_B=761
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=37
|
||||
#-----------
|
||||
time=3102477
|
||||
mem_heap_B=348046
|
||||
mem_heap_extra_B=730
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=38
|
||||
#-----------
|
||||
time=3148713
|
||||
mem_heap_B=348228
|
||||
mem_heap_extra_B=764
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=39
|
||||
#-----------
|
||||
time=3186244
|
||||
mem_heap_B=348198
|
||||
mem_heap_extra_B=778
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=40
|
||||
#-----------
|
||||
time=3233405
|
||||
mem_heap_B=347703
|
||||
mem_heap_extra_B=601
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=41
|
||||
#-----------
|
||||
time=3261461
|
||||
mem_heap_B=348569
|
||||
mem_heap_extra_B=639
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=42
|
||||
#-----------
|
||||
time=3298648
|
||||
mem_heap_B=347767
|
||||
mem_heap_extra_B=601
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=43
|
||||
#-----------
|
||||
time=3337191
|
||||
mem_heap_B=348547
|
||||
mem_heap_extra_B=661
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=44
|
||||
#-----------
|
||||
time=3365261
|
||||
mem_heap_B=348094
|
||||
mem_heap_extra_B=546
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=45
|
||||
#-----------
|
||||
time=3431516
|
||||
mem_heap_B=347407
|
||||
mem_heap_extra_B=521
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=46
|
||||
#-----------
|
||||
time=3469646
|
||||
mem_heap_B=348563
|
||||
mem_heap_extra_B=629
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=47
|
||||
#-----------
|
||||
time=3516029
|
||||
mem_heap_B=347680
|
||||
mem_heap_extra_B=624
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=48
|
||||
#-----------
|
||||
time=3562998
|
||||
mem_heap_B=348678
|
||||
mem_heap_extra_B=690
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=49
|
||||
#-----------
|
||||
time=3599873
|
||||
mem_heap_B=348011
|
||||
mem_heap_extra_B=701
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
||||
#-----------
|
||||
snapshot=50
|
||||
#-----------
|
||||
time=3620865
|
||||
mem_heap_B=341878
|
||||
mem_heap_extra_B=482
|
||||
mem_stacks_B=0
|
||||
heap_tree=empty
|
58
src/main.cpp
58
src/main.cpp
|
@ -13,8 +13,9 @@
|
|||
#include <string>
|
||||
#include <array>
|
||||
#include <thread>
|
||||
#include <iomanip> // This might be necessary
|
||||
#include <iomanip>
|
||||
#include <vector>
|
||||
#include <typeinfo>
|
||||
#include <type_traits>
|
||||
#include <unordered_set>
|
||||
#include "ip.h"
|
||||
|
@ -109,6 +110,11 @@ static constexpr bool REDIRECT_ADS = true;
|
|||
|
||||
class send_buffer;
|
||||
|
||||
/**
|
||||
* This data structure represents a DNS question. When constructed it will read the FULL domain as a single string, along with the QTYPE and QCLASS
|
||||
* It is safe to read QDCOUNT questions by constructing this class.
|
||||
* The question will be reconstructed by the send_buffer class.
|
||||
*/
|
||||
class question
|
||||
{
|
||||
friend send_buffer;
|
||||
|
@ -142,6 +148,11 @@ class question
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* This data structure represents a DNS answer. When constructed it will read the FULL answer along with the associated data. It is therefore safe
|
||||
* to read ANCOUNT by constructing a series of answers which read from the byte stream. This class cannot be copied but can be moved.
|
||||
* The answer will be rebuilt by the send_buffer class for you.
|
||||
*/
|
||||
class answer
|
||||
{
|
||||
friend send_buffer;
|
||||
|
@ -152,7 +163,7 @@ class answer
|
|||
uint32_t TTL = 0;
|
||||
uint16_t RDLENGTH = 0;
|
||||
bool requires_reset = false;
|
||||
unsigned char* RDATA = nullptr;
|
||||
blt::scoped_buffer<unsigned char> RDATA;
|
||||
public:
|
||||
explicit answer(const blt::byte_reader& reader)
|
||||
{
|
||||
|
@ -161,10 +172,8 @@ class answer
|
|||
reader.to(CLASS);
|
||||
reader.to(TTL);
|
||||
reader.to(RDLENGTH);
|
||||
RDATA = new unsigned char[RDLENGTH];
|
||||
reader.copy(RDATA, RDLENGTH);
|
||||
|
||||
BLT_TRACE("%d, %d, %d, %d, %d", NAME, TYPE, CLASS, TTL, RDLENGTH);
|
||||
RDATA = blt::scoped_buffer<unsigned char>(RDLENGTH);
|
||||
reader.copy(RDATA.data(), RDLENGTH);
|
||||
}
|
||||
|
||||
[[nodiscard]] uint16_t type() const
|
||||
|
@ -176,18 +185,17 @@ class answer
|
|||
{
|
||||
BLT_DEBUG("Substituting with replacement address '%s'", REPLACEMENT_IP().asString.c_str());
|
||||
BLT_ASSERT(RDLENGTH == 4);
|
||||
std::memcpy(RDATA, addr.octets, 4);
|
||||
std::memcpy(RDATA.data(), addr.octets, 4);
|
||||
}
|
||||
|
||||
inline void setARecord(const IPAddress& addr)
|
||||
{
|
||||
BLT_DEBUG("Setting to A record");
|
||||
BLT_DEBUG("Setting answer to A record");
|
||||
NAME = 0;
|
||||
NAME |= (0b11 << 14);
|
||||
requires_reset = true;
|
||||
BLT_INFO(NAME);
|
||||
delete[] RDATA;
|
||||
RDATA = new unsigned char[4];
|
||||
BLT_TRACE(NAME);
|
||||
RDATA = blt::scoped_buffer<unsigned char>(4);
|
||||
RDLENGTH = 4;
|
||||
TYPE = 1;
|
||||
CLASS = 1;
|
||||
|
@ -205,9 +213,10 @@ class answer
|
|||
}
|
||||
|
||||
// rule of 5
|
||||
answer(const answer& answer) = delete;
|
||||
// (there used to be a destructor)
|
||||
answer(const answer& copy) = delete;
|
||||
|
||||
answer& operator=(const answer& answer) = delete;
|
||||
answer& operator=(const answer& copy) = delete;
|
||||
|
||||
answer(answer&& move) noexcept
|
||||
{
|
||||
|
@ -216,8 +225,7 @@ class answer
|
|||
CLASS = move.CLASS;
|
||||
TTL = move.TTL;
|
||||
RDLENGTH = move.RDLENGTH;
|
||||
RDATA = move.RDATA;
|
||||
move.RDATA = nullptr;
|
||||
RDATA = std::move(move.RDATA);
|
||||
}
|
||||
|
||||
answer& operator=(answer&& move) noexcept
|
||||
|
@ -228,15 +236,12 @@ class answer
|
|||
CLASS = move.CLASS;
|
||||
TTL = move.TTL;
|
||||
RDLENGTH = move.RDLENGTH;
|
||||
RDATA = move.RDATA;
|
||||
move.RDATA = nullptr;
|
||||
RDATA = std::move(move.RDATA);
|
||||
return *this;
|
||||
}
|
||||
|
||||
~answer()
|
||||
{
|
||||
delete[] RDATA;
|
||||
}
|
||||
// there used to be a destructor
|
||||
~answer() = default;
|
||||
};
|
||||
|
||||
class send_buffer
|
||||
|
@ -267,7 +272,7 @@ class send_buffer
|
|||
write(t.CLASS);
|
||||
write(t.TTL);
|
||||
write(t.RDLENGTH);
|
||||
std::memcpy(&internal_data[write_index], t.RDATA, t.RDLENGTH);
|
||||
std::memcpy(&internal_data[write_index], t.RDATA.data(), t.RDLENGTH);
|
||||
write_index += t.RDLENGTH;
|
||||
} else if constexpr (std::is_same_v<T, question>)
|
||||
{
|
||||
|
@ -341,7 +346,7 @@ request_info handle_forward_request(MESSENGER messenger, const INFO& info, const
|
|||
uint16_t questions; // yes I made this part of my library just for this :3
|
||||
blt::mem::fromBytes(&input_recv_buffer[info.QUESTIONS_BEGIN], questions); // i hate little endian
|
||||
|
||||
BLT_INFO("Bytes received: %d with %d questions", bytes, questions);
|
||||
BLT_INFO("(%s) Bytes received: %d with %d questions", blt::is_UDP_or_TCP<INFO>().c_str(), bytes, questions);
|
||||
|
||||
// forward to google.
|
||||
size_t out_bytes;
|
||||
|
@ -359,7 +364,8 @@ void handle_response(const INFO& info, send_buffer& return_send_buffer, request_
|
|||
{
|
||||
blt::byte_reader reader(forward_recv_buffer.data(), forward_recv_buffer.size(), info.HEADER_END);
|
||||
|
||||
BLT_INFO("Bytes answered: %d with %d answers", rq_info.number_of_bytes, rq_info.number_of_answers);
|
||||
auto TYPE_STR = blt::is_UDP_or_TCP<INFO>();
|
||||
BLT_INFO("(%s) Bytes answered: %d with %d answers", TYPE_STR.c_str(), rq_info.number_of_bytes, rq_info.number_of_answers);
|
||||
|
||||
// no one actually does multiple questions. trying to do it in dig is not easy
|
||||
// and the standard isn't really designed for this (how do we handle if one question errors but the other doesn't? there is only
|
||||
|
@ -372,7 +378,7 @@ void handle_response(const INFO& info, send_buffer& return_send_buffer, request_
|
|||
answers.push_back(std::move(a));
|
||||
}
|
||||
|
||||
BLT_INFO("DOMAIN: %s", q().c_str());
|
||||
BLT_INFO("(%s) DOMAIN: %s", TYPE_STR.c_str(), q().c_str());
|
||||
if (STRICT_MATCHING && BLT_CONTAINS(DISALLOWED_DOMAINS, q()))
|
||||
process_answers(answers);
|
||||
else if (!STRICT_MATCHING)
|
||||
|
@ -388,7 +394,7 @@ void handle_response(const INFO& info, send_buffer& return_send_buffer, request_
|
|||
return_send_buffer.write(q);
|
||||
for (const answer& a : answers)
|
||||
{
|
||||
BLT_TRACE("Writing answer with type of %d", a.type());
|
||||
BLT_TRACE("(%s) Writing answer with type of %d", TYPE_STR.c_str(), a.type());
|
||||
a.reset(question_offset);
|
||||
return_send_buffer.write(a);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue