throw std::out_of_range("Key 'unique' is not a string");
}
}
+ if (!items["group"].is_null()) {
+ if (items["group"].is_array()) {
+ for (const auto& value : items["group"].array_items()) {
+ d_group.insert(value.string_value());
+ }
+ }
+ else {
+ throw std::out_of_range("Key 'group' is not an array");
+ }
+ }
}
}
else {
if (!d_unique.empty()) {
object["unique"] = d_unique.toString();
}
+ if (!d_group.empty()) {
+ json11::Json::array entries;
+ for (const string& group : d_group) {
+ entries.push_back(group);
+ }
+ object["group"] = entries;
+ }
auto tmp = d_doc.object_items();
tmp[getTypeString(d_type)] = object;
const json11::Json ret = tmp;
dzr.dr.d_content = std::make_shared<PTRRecordContent>(d_coo);
dzrs.emplace_back(dzr);
}
+
+ for (const auto& group : d_group) {
+ dzr.dr.d_name = DNSName("group") + prefix;
+ dzr.dr.d_ttl = 0;
+ dzr.dr.d_type = QType::TXT;
+ dzr.dr.d_content = std::make_shared<TXTRecordContent>("\"" + group + "\"");
+ dzrs.emplace_back(dzr);
+ }
}
$PDNSUTIL --config-dir=. --config-name=gmysql load-zone catalog.invalid zones/catalog.invalid
$PDNSUTIL --config-dir=. --config-name=gmysql set-kind catalog.invalid producer
- $PDNSUTIL --config-dir=. --config-name=gmysql set-options test.com '{"producer": {"coo": "other-catalog.invalid","unique": "123"}}'
+ $PDNSUTIL --config-dir=. --config-name=gmysql set-options test.com '{"producer":{"coo":"other-catalog.invalid","unique":"123"}}'
+ $PDNSUTIL --config-dir=. --config-name=gmysql set-options tsig.com '{"producer":{"group":["pdns-group-x","pdns-group-y"]}}'
fi
gsql_master gmysql dyndns
$PDNSUTIL --config-dir=. --config-name=lmdb load-zone catalog.invalid zones/catalog.invalid
$PDNSUTIL --config-dir=. --config-name=lmdb set-kind catalog.invalid producer
- $PDNSUTIL --config-dir=. --config-name=lmdb set-options test.com '{"producer": {"coo": "other-catalog.invalid","unique": "123"}}'
+ $PDNSUTIL --config-dir=. --config-name=lmdb set-options test.com '{"producer":{"coo":"other-catalog.invalid","unique":"123"}}'
+ $PDNSUTIL --config-dir=. --config-name=lmdb set-options tsig.com '{"producer":{"group":["pdns-group-x","pdns-group-y"]}}'
fi
$RUNWRAPPER $PDNS --daemon=no --local-address=$address --local-port=$port --config-dir=. \