--uid <UID> Drop effective user-id to *UID* after binding the listen sockets.
--gid <GID> Drop effective group-id to *GID* after binding the listen sockets.
--axfr-timeout <NUM> Stop an inbound AXFR when it is not completed in *NUM* seconds. Defaults to 10 seconds.
---tcp-out-threads <NUM> Amount of worker threads to handle TCP traffic.
- This limits the number of concurrent AXFR/IXFR, the default is 10.
+--tcp-in-threads <NUM> Amount of worker threads to handle TCP traffic from clients.
+ This limits the number of concurrent AXFR/IXFR sessions, the default is 10.
See also
--------
if (saddr == ComboAddress("0.0.0.0", 0)) {
g_log<<Logger::Warning<<"Could not determine source of message"<<endl;
+ close(cfd);
return;
}
vector<vector<uint8_t>> packets;
if (mdp.d_qtype == QType::SOA) {
- vector<uint8_t> packet;
+ vector<uint8_t> packet;
bool ret = makeSOAPacket(mdp, packet);
if (!ret) {
close(cfd);
("work-dir", po::value<string>()->default_value("."), "Directory for storing AXFR and IXFR data")
("keep", po::value<uint16_t>()->default_value(KEEP_DEFAULT), "Number of old zone versions to retain")
("axfr-timeout", po::value<uint16_t>()->default_value(AXFRTIMEOUT_DEFAULT), "Timeout in seconds for an inbound AXFR to complete")
- ("tcp-out-threads", po::value<uint16_t>()->default_value(10), "Number of maximum simultaneous outbound TCP connections")
+ ("tcp-in-threads", po::value<uint16_t>()->default_value(10), "Number of maximum simultaneous inbound TCP connections. Limits simultaneous AXFR/IXFR transactions")
;
po::options_description alloptions;
po::options_description hidden("hidden options");
std::thread ut(updateThread);
vector<std::thread> tcpHandlers;
- for (int i = 0; i < g_vm["tcp-out-threads"].as<uint16_t>(); ++i) {
+ for (int i = 0; i < g_vm["tcp-in-threads"].as<uint16_t>(); ++i) {
tcpHandlers.push_back(std::thread(tcpWorker, i));
}