void retrievalLoopThread();
void sendNotification(int sock, const DNSName &domain, const ComboAddress& remote, uint16_t id, UeberBackend* B);
bool notifyDomain(const DNSName &domain, UeberBackend* B);
+ vector<pair<DNSName, ComboAddress> > getSuckRequests();
private:
void loadArgsIntoSet(const char *listname, set<string> &listset);
void makeNotifySockets();
}
#endif
}
+
+string DLSuckRequests(const vector<string> &parts, Utility::pid_t ppid) {
+ string ret;
+ for (auto const &d: Communicator.getSuckRequests()) {
+ ret += d.first.toString() + " " + d.second.toString() + "\n";
+ }
+ return ret;
+}
string DLCurrentConfigHandler(const vector<string>&parts, Utility::pid_t ppid);
string DLListZones(const vector<string>&parts, Utility::pid_t ppid);
string DLTokenLogin(const vector<string>&parts, Utility::pid_t ppid);
+string DLSuckRequests(const vector<string> &parts, Utility::pid_t ppid);
DynListener::registerFunc("CURRENT-CONFIG",&DLCurrentConfigHandler, "retrieve the current configuration", "[diff|default]");
DynListener::registerFunc("LIST-ZONES",&DLListZones, "show list of zones", "[master|slave|native]");
DynListener::registerFunc("TOKEN-LOGIN", &DLTokenLogin, "Login to a PKCS#11 token", "<module> <slot> <pin>");
+ DynListener::registerFunc("XFR-QUEUE", &DLSuckRequests, "Get all requests for XFR in queue");
if(!::arg()["tcp-control-address"].empty()) {
DynListener* dlTCP=new DynListener(ComboAddress(::arg()["tcp-control-address"], ::arg().asNum("tcp-control-port")));
}
}
}
+
+vector<pair<DNSName, ComboAddress> > CommunicatorClass::getSuckRequests() {
+ vector<pair<DNSName, ComboAddress> > ret;
+ std::lock_guard<std::mutex> l(d_lock);
+ ret.reserve(d_suckdomains.size());
+ for (auto const &d : d_suckdomains) {
+ ret.push_back(make_pair(d.domain, d.master));
+ }
+ return ret;
+}