From: Aki Tuomi Date: Fri, 1 Nov 2013 21:19:51 +0000 (+0200) Subject: Write all meta values instead of just first one X-Git-Tag: rec-3.6.0-rc1~365^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f93748dfee12169a3859d55857bc8dc920ba0d4;p=thirdparty%2Fpdns.git Write all meta values instead of just first one --- diff --git a/pdns/backends/gsql/gsqlbackend.cc b/pdns/backends/gsql/gsqlbackend.cc index 6c507b27e8..a182bb8366 100644 --- a/pdns/backends/gsql/gsqlbackend.cc +++ b/pdns/backends/gsql/gsqlbackend.cc @@ -763,16 +763,17 @@ bool GSQLBackend::setDomainMetadata(const string& name, const std::string& kind, if(!d_dnssecQueries) return false; - if(!meta.empty()) - snprintf(output,sizeof(output)-1,d_SetDomainMetadataQuery.c_str(), - sqlEscape(kind).c_str(), sqlEscape(*meta.begin()).c_str(), sqlEscape(toLower(name)).c_str()); - string clearQuery = (boost::format(d_ClearDomainMetadataQuery) % sqlEscape(toLower(name)) % sqlEscape(kind)).str(); try { d_db->doCommand(clearQuery); - if(!meta.empty()) - d_db->doCommand(output); + if(!meta.empty()) { + BOOST_FOREACH(const std::string & value, meta) { + snprintf(output,sizeof(output)-1,d_SetDomainMetadataQuery.c_str(), + sqlEscape(kind).c_str(), sqlEscape(value).c_str(), sqlEscape(toLower(name)).c_str()); + d_db->doCommand(output); + } + } } catch (SSqlException &e) { throw PDNSException("GSQLBackend unable to store metadata key: "+e.txtReason());