From: Kees Monshouwer Date: Fri, 7 Mar 2014 19:30:43 +0000 (+0100) Subject: catch sql exceptions in replaceRRSet and replaceComments X-Git-Tag: rec-3.6.0-rc1~145^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F1324%2Fhead;p=thirdparty%2Fpdns.git catch sql exceptions in replaceRRSet and replaceComments --- 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);