该类负责所有模块的加载,加载完的模块会放到内部的backends vector中
内部含有一个class handler
class UeberBackend
{
static vector<UeberBackend *>instances;
static pthread_mutex_t instances_lock;
static bool loadmodule(const string &name);
static void go(void);
vector<DNSBackend*> backends;
class handle
{
// 回答问题的后端
DNSBackend *d_hinterBackend;
//对问题的描述
DNSPacket *pkt_p;
DNSName qname;
};
void lookup(const QType &, const DNSName &qdomain, DNSPacket *pkt_p=0, int zoneId=-1);
//下面的一系列函数验证该实例是否是zone的权威
vector<DNSZoneRecord> d_answers;
struct Question
{
DNSName qname;
int zoneId;
QType qtype;
}d_question;
}