d_paridx++;
return this;
}
+ SSqlStatement* bind(const string& name, const DNSName& value) {
+ return bind(name, stripDot(value.toString()));
+ }
SSqlStatement* bindNull(const string& name) {
if (d_paridx >= d_parnum)
throw SSqlException("Attempt to bind more parameters than query has: " + d_query);
return true;
}
-void GSQLBackend::lookup(const QType &qtype,const string &qname, DNSPacket *pkt_p, int domain_id)
+void GSQLBackend::lookup(const QType &qtype,const DNSName &qname, DNSPacket *pkt_p, int domain_id)
{
- string lcqname=toLower(qname);
-
try {
if(qtype.getCode()!=QType::ANY) {
if(domain_id < 0) {
d_query_stmt = d_NoIdQuery_stmt;
d_query_stmt->
bind("qtype", qtype.getName())->
- bind("qname", lcqname);
+ bind("qname", qname); // DNSNameFIXME: toLower()?
} else {
d_query_stmt = d_IdQuery_stmt;
d_query_stmt->
bind("qtype", qtype.getName())->
- bind("qname", lcqname)->
+ bind("qname", qname)->
bind("domain_id", domain_id);
}
} else {
if(domain_id < 0) {
d_query_stmt = d_ANYNoIdQuery_stmt;
d_query_stmt->
- bind("qname", lcqname);
+ bind("qname", qname);
} else {
d_query_stmt = d_ANYIdQuery_stmt;
d_query_stmt->
- bind("qname", lcqname)->
+ bind("qname", qname)->
bind("domain_id", domain_id);
}
}
d_qname=qname;
}
-bool GSQLBackend::list(const string &target, int domain_id, bool include_disabled)
+bool GSQLBackend::list(const DNSName &target, int domain_id, bool include_disabled)
{
DLOG(L<<"GSQLBackend constructing handle for list of domain id '"<<domain_id<<"'"<<endl);
release(&d_DeleteCommentsQuery_stmt);
}
- void lookup(const QType &, const string &qdomain, DNSPacket *p=0, int zoneId=-1);
- bool list(const string &target, int domain_id, bool include_disabled=false);
+ void lookup(const QType &, const DNSName &qdomain, DNSPacket *p=0, int zoneId=-1);
+ bool list(const DNSName &target, int domain_id, bool include_disabled=false);
bool get(DNSResourceRecord &r);
void getAllDomains(vector<DomainInfo> *domains, bool include_disabled=false);
bool isMaster(const string &domain, const string &ip);
bool replaceComments(const uint32_t domain_id, const string& qname, const QType& qt, const vector<Comment>& comments);
private:
- string d_qname;
+ DNSName d_qname;
SSql *d_db;
SSqlStatement::result_t d_result;