Commit cfb196fd authored by JINMEI Tatuya's avatar JINMEI Tatuya

cleanup: use isc_throw (and isc::Exception derived classes) for exceptions.

(with some minor style level cleanups)


git-svn-id: svn://bind10.isc.org/svn/bind10/trunk@1383 e5f2f494-b856-4b98-b285-d166d9295462
parent 68a70dae
...@@ -49,7 +49,8 @@ Sqlite3DataSrc::prepare(const char* statement) { ...@@ -49,7 +49,8 @@ Sqlite3DataSrc::prepare(const char* statement) {
sqlite3_stmt* prepared = NULL; sqlite3_stmt* prepared = NULL;
if (sqlite3_prepare_v2(db, statement, -1, &prepared, NULL) != SQLITE_OK) { if (sqlite3_prepare_v2(db, statement, -1, &prepared, NULL) != SQLITE_OK) {
throw("could not prepare"); isc_throw(Sqlite3Error, "could not prepare sqlite3 statement: " <<
statement);
} }
return (prepared); return (prepared);
} }
...@@ -84,11 +85,12 @@ Sqlite3DataSrc::hasExactZone(const char* name) const { ...@@ -84,11 +85,12 @@ Sqlite3DataSrc::hasExactZone(const char* name) const {
sqlite3_reset(q_zone); sqlite3_reset(q_zone);
rc = sqlite3_bind_text(q_zone, 1, name, -1, SQLITE_STATIC); rc = sqlite3_bind_text(q_zone, 1, name, -1, SQLITE_STATIC);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw("Could not bind"); isc_throw(Sqlite3Error, "Could not bind " << name <<
" to SQL statement (zone)");
} }
rc = sqlite3_step(q_zone); rc = sqlite3_step(q_zone);
int i = (rc == SQLITE_ROW) ? sqlite3_column_int(q_zone, 0) : -1; const int i = (rc == SQLITE_ROW) ? sqlite3_column_int(q_zone, 0) : -1;
sqlite3_reset(q_zone); sqlite3_reset(q_zone);
return (i); return (i);
} }
...@@ -216,25 +218,27 @@ Sqlite3DataSrc::findRecords(const Name& name, const RRType& rdtype, ...@@ -216,25 +218,27 @@ Sqlite3DataSrc::findRecords(const Name& name, const RRType& rdtype,
int rc; int rc;
rc = sqlite3_bind_int(query, 1, zone_id); rc = sqlite3_bind_int(query, 1, zone_id);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw("Could not bind 1 (query)"); isc_throw(Sqlite3Error, "Could not bind zone ID " << zone_id <<
" to SQL statement (query)");
} }
const string s_name = name.toText(); const string s_name = name.toText();
rc = sqlite3_bind_text(query, 2, s_name.c_str(), -1, SQLITE_STATIC); rc = sqlite3_bind_text(query, 2, s_name.c_str(), -1, SQLITE_STATIC);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw("Could not bind 2 (query)"); isc_throw(Sqlite3Error, "Could not bind name " << s_name <<
" to SQL statement (query)");
} }
if (query == q_record) { if (query == q_record) {
rc = sqlite3_bind_text(query, 3, rdtype.toText().c_str(), -1, rc = sqlite3_bind_text(query, 3, rdtype.toText().c_str(), -1,
SQLITE_STATIC); SQLITE_STATIC);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw("Could not bind 3 (query)"); isc_throw(Sqlite3Error, "Could not bind RR type " <<
rdtype.toText() << " to SQL statement (query)");
} }
} }
int rows = importSqlite3Rows(query, name, getClass(), rdtype, false, target, const int rows = importSqlite3Rows(query, name, getClass(), rdtype, false,
flags); target, flags);
sqlite3_reset(query); sqlite3_reset(query);
if (rows > 0) { if (rows > 0) {
return (rows); return (rows);
...@@ -250,13 +254,15 @@ Sqlite3DataSrc::findRecords(const Name& name, const RRType& rdtype, ...@@ -250,13 +254,15 @@ Sqlite3DataSrc::findRecords(const Name& name, const RRType& rdtype,
rc = sqlite3_bind_int(q_count, 1, zone_id); rc = sqlite3_bind_int(q_count, 1, zone_id);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw("Could not bind 1 (count)"); isc_throw(Sqlite3Error, "Could not bind zone ID " << zone_id <<
" to SQL statement (qcount)");
} }
rc = sqlite3_bind_text(q_count, 2, name.reverse().toText().c_str(), -1, rc = sqlite3_bind_text(q_count, 2, name.reverse().toText().c_str(), -1,
SQLITE_STATIC); SQLITE_STATIC);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw("Could not bind 2 (count)"); isc_throw(Sqlite3Error, "Could not bind name " << name.reverse() <<
" to SQL statement (qcount)");
} }
rc = sqlite3_step(q_count); rc = sqlite3_step(q_count);
...@@ -300,7 +306,7 @@ void ...@@ -300,7 +306,7 @@ void
Sqlite3DataSrc::loadVersion(void) { Sqlite3DataSrc::loadVersion(void) {
sqlite3_stmt* prepared = prepare("SELECT version FROM schema_version"); sqlite3_stmt* prepared = prepare("SELECT version FROM schema_version");
if (sqlite3_step(prepared) != SQLITE_ROW) { if (sqlite3_step(prepared) != SQLITE_ROW) {
throw("failed to find a row in schema_version table"); isc_throw(Sqlite3Error, "Failed to find a row in schema_version table");
} }
database_version = sqlite3_column_int(prepared, 0); database_version = sqlite3_column_int(prepared, 0);
release(prepared); release(prepared);
...@@ -309,7 +315,7 @@ Sqlite3DataSrc::loadVersion(void) { ...@@ -309,7 +315,7 @@ Sqlite3DataSrc::loadVersion(void) {
void void
Sqlite3DataSrc::setupPreparedStatements(void) { Sqlite3DataSrc::setupPreparedStatements(void) {
const char* q_zone_str = "SELECT id FROM zones WHERE name=?1"; const char* const q_zone_str = "SELECT id FROM zones WHERE name=?1";
try { try {
q_zone = prepare(q_zone_str); q_zone = prepare(q_zone_str);
} catch (const char* e) { } catch (const char* e) {
...@@ -409,9 +415,10 @@ Sqlite3DataSrc::setupPreparedStatements(void) { ...@@ -409,9 +415,10 @@ Sqlite3DataSrc::setupPreparedStatements(void) {
} }
void void
Sqlite3DataSrc::execSetupQuery(const char* query) { Sqlite3DataSrc::execSetupQuery(const char* const query) {
if (sqlite3_exec(db, query, NULL, NULL, NULL) != SQLITE_OK) { if (sqlite3_exec(db, query, NULL, NULL, NULL) != SQLITE_OK) {
throw(query); isc_throw(Sqlite3Error, "Failed to find a row in schema_version table: "
<< query);
} }
} }
...@@ -509,10 +516,8 @@ Sqlite3DataSrc::findPreviousName(const Name& qname, ...@@ -509,10 +516,8 @@ Sqlite3DataSrc::findPreviousName(const Name& qname,
Name& target, Name& target,
const Name* zonename) const const Name* zonename) const
{ {
int zone_id = (zonename == NULL) ? const int zone_id = (zonename == NULL) ?
findClosest(qname, NULL) : findClosest(qname, NULL) : findClosest(*zonename, NULL);
findClosest(*zonename, NULL);
if (zone_id < 0) { if (zone_id < 0) {
return (ERROR); return (ERROR);
} }
...@@ -522,12 +527,14 @@ Sqlite3DataSrc::findPreviousName(const Name& qname, ...@@ -522,12 +527,14 @@ Sqlite3DataSrc::findPreviousName(const Name& qname,
int rc = sqlite3_bind_int(q_previous, 1, zone_id); int rc = sqlite3_bind_int(q_previous, 1, zone_id);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw ("Could not bind 1 (previous)"); isc_throw(Sqlite3Error, "Could not bind zone ID " << zone_id <<
" to SQL statement (qprevious)");
} }
rc = sqlite3_bind_text(q_previous, 2, qname.reverse().toText().c_str(), rc = sqlite3_bind_text(q_previous, 2, qname.reverse().toText().c_str(),
-1, SQLITE_STATIC); -1, SQLITE_STATIC);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw ("Could not bind 2 (previous)"); isc_throw(Sqlite3Error, "Could not bind name " << qname <<
" to SQL statement (qprevious)");
} }
rc = sqlite3_step(q_previous); rc = sqlite3_step(q_previous);
...@@ -547,7 +554,7 @@ Sqlite3DataSrc::findCoveringNSEC3(const Name& zonename, ...@@ -547,7 +554,7 @@ Sqlite3DataSrc::findCoveringNSEC3(const Name& zonename,
string& hashstr, string& hashstr,
RRsetList& target) const RRsetList& target) const
{ {
int zone_id = findClosest(zonename, NULL); const int zone_id = findClosest(zonename, NULL);
if (zone_id < 0) { if (zone_id < 0) {
return (ERROR); return (ERROR);
} }
...@@ -557,12 +564,14 @@ Sqlite3DataSrc::findCoveringNSEC3(const Name& zonename, ...@@ -557,12 +564,14 @@ Sqlite3DataSrc::findCoveringNSEC3(const Name& zonename,
int rc = sqlite3_bind_int(q_prevnsec3, 1, zone_id); int rc = sqlite3_bind_int(q_prevnsec3, 1, zone_id);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw ("Could not bind 1 (previous NSEC3)"); isc_throw(Sqlite3Error, "Could not bind zone ID " << zone_id <<
" to SQL statement (previous NSEC3)");
} }
rc = sqlite3_bind_text(q_prevnsec3, 2, hashstr.c_str(), -1, SQLITE_STATIC); rc = sqlite3_bind_text(q_prevnsec3, 2, hashstr.c_str(), -1, SQLITE_STATIC);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw ("Could not bind 2 (previous NSEC3)"); isc_throw(Sqlite3Error, "Could not bind hash " << hashstr <<
" to SQL statement (previous NSEC3)");
} }
rc = sqlite3_step(q_prevnsec3); rc = sqlite3_step(q_prevnsec3);
...@@ -577,7 +586,8 @@ Sqlite3DataSrc::findCoveringNSEC3(const Name& zonename, ...@@ -577,7 +586,8 @@ Sqlite3DataSrc::findCoveringNSEC3(const Name& zonename,
sqlite3_reset(q_prevnsec3); sqlite3_reset(q_prevnsec3);
rc = sqlite3_bind_text(q_prevnsec3, 2, "w", -1, SQLITE_STATIC); rc = sqlite3_bind_text(q_prevnsec3, 2, "w", -1, SQLITE_STATIC);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw ("Could not bind 2 (last NSEC3)"); isc_throw(Sqlite3Error, "Could not bind \"w\""
" to SQL statement (previous NSEC3)");
} }
rc = sqlite3_step(q_prevnsec3); rc = sqlite3_step(q_prevnsec3);
...@@ -593,12 +603,14 @@ Sqlite3DataSrc::findCoveringNSEC3(const Name& zonename, ...@@ -593,12 +603,14 @@ Sqlite3DataSrc::findCoveringNSEC3(const Name& zonename,
rc = sqlite3_bind_int(q_nsec3, 1, zone_id); rc = sqlite3_bind_int(q_nsec3, 1, zone_id);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw ("Could not bind 1 (NSEC3)"); isc_throw(Sqlite3Error, "Could not bind zone ID " << zone_id <<
" to SQL statement (NSEC3)");
} }
rc = sqlite3_bind_text(q_nsec3, 2, hash, -1, SQLITE_STATIC); rc = sqlite3_bind_text(q_nsec3, 2, hash, -1, SQLITE_STATIC);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
throw ("Could not bind 2 (NSEC3)"); isc_throw(Sqlite3Error, "Could not bind hash " << hash <<
" to SQL statement (NSEC3)");
} }
DataSrc::Result result = SUCCESS; DataSrc::Result result = SUCCESS;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment