From 1f93748dfee12169a3859d55857bc8dc920ba0d4 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Fri, 1 Nov 2013 23:19:51 +0200 Subject: [PATCH] Write all meta values instead of just first one --- pdns/backends/gsql/gsqlbackend.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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()); -- 2.47.2