}
goto sendit; // need to jump over pw.commit
}
+ needCommit = true;
#ifdef HAVE_PROTOBUF
- if(luaconfsLocal->protobufServer && protobufResponse && (i->d_type == QType::A || i->d_type == QType::AAAA)) {
- PBDNSMessage_DNSResponse_DNSRR* pbRR = protobufResponse->add_rrs();
- if(pbRR) {
- pbRR->set_name(i->d_name.toString());
- pbRR->set_type(i->d_type);
- pbRR->set_class_(i->d_class);
- pbRR->set_ttl(i->d_ttl);
- if (i->d_type == QType::A) {
- const ARecordContent& arc = dynamic_cast<const ARecordContent&>(*(i->d_content));
- ComboAddress data = arc.getCA();
- pbRR->set_rdata(&data.sin4.sin_addr.s_addr, sizeof(data.sin4.sin_addr.s_addr));
- }
- else if (i->d_type == QType::AAAA) {
- const AAAARecordContent& arc = dynamic_cast<const AAAARecordContent&>(*(i->d_content));
- ComboAddress data = arc.getCA();
- pbRR->set_rdata(&data.sin6.sin6_addr.s6_addr, sizeof(data.sin6.sin6_addr.s6_addr));
- }
- }
+ if(luaconfsLocal->protobufServer && (i->d_type == QType::A || i->d_type == QType::AAAA || i->d_type == QType::CNAME)) {
+ pbMessage.addRR(*i);
}
#endif
}