From f374debc72fba156c5643b2d789b2e934d64beab Mon Sep 17 00:00:00 2001 From: Kees Monshouwer Date: Fri, 7 Mar 2014 20:30:43 +0100 Subject: [PATCH] catch sql exceptions in replaceRRSet and replaceComments --- pdns/backends/gsql/gsqlbackend.cc | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/pdns/backends/gsql/gsqlbackend.cc b/pdns/backends/gsql/gsqlbackend.cc index ed3b32a140..1a42736b0a 100644 --- a/pdns/backends/gsql/gsqlbackend.cc +++ b/pdns/backends/gsql/gsqlbackend.cc @@ -1104,7 +1104,13 @@ bool GSQLBackend::replaceRRSet(uint32_t domain_id, const string& qname, const QT % sqlEscape(qname) ).str(); } - d_db->doCommand(query); + try { + d_db->doCommand(query); + } + catch (SSqlException &e) { + throw PDNSException("GSQLBackend unable to delete RRSet: "+e.txtReason()); + } + if (rrset.empty()) { // zap comments for now non-existing rrset query = (boost::format(d_DeleteCommentRRsetQuery) @@ -1112,7 +1118,12 @@ bool GSQLBackend::replaceRRSet(uint32_t domain_id, const string& qname, const QT % sqlEscape(qname) % sqlEscape(qt.getName()) ).str(); - d_db->doCommand(query); + try { + d_db->doCommand(query); + } + catch (SSqlException &e) { + throw PDNSException("GSQLBackend unable to delete comment: "+e.txtReason()); + } } BOOST_FOREACH(const DNSResourceRecord& rr, rrset) { feedRecord(rr); @@ -1365,7 +1376,12 @@ bool GSQLBackend::replaceComments(const uint32_t domain_id, const string& qname, % sqlEscape(qt.getName()) ).str(); - d_db->doCommand(query); + try { + d_db->doCommand(query); + } + catch (SSqlException &e) { + throw PDNSException("GSQLBackend unable to delete comment: "+e.txtReason()); + } BOOST_FOREACH(const Comment& comment, comments) { feedComment(comment); -- 2.47.2