Synced sqlite3utils with private and fixed a small recursive bug in SIPEngine that was already fixed in private

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4912 19bc5d8c-e614-43d4-8b26-e1612bc8e597
This commit is contained in:
Kurtis Heimerl
2013-02-15 02:57:54 +00:00
parent f9e71e7747
commit db0753a41c
2 changed files with 16 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
/* /*
* Written by David A. Burgess, Kestrel Signal Processing, Inc., 2010 * Copyright 2010 Kestrel Signal Processing, Inc.
* The author disclaims copyright to this source code. * All rights reserved.
*/ */
@@ -17,12 +17,18 @@
int sqlite3_prepare_statement(sqlite3* DB, sqlite3_stmt **stmt, const char* query) int sqlite3_prepare_statement(sqlite3* DB, sqlite3_stmt **stmt, const char* query)
{ {
int prc = sqlite3_prepare_v2(DB,query,strlen(query),stmt,NULL); int src = SQLITE_BUSY;
if (prc) { while (src==SQLITE_BUSY) {
fprintf(stderr,"sqlite3_prepare_v2 failed for \"%s\": %s\n",query,sqlite3_errmsg(DB)); src = sqlite3_prepare_v2(DB,query,strlen(query),stmt,NULL);
sqlite3_finalize(*stmt); if (src==SQLITE_BUSY) {
} usleep(100000);
return prc; }
}
if (src) {
fprintf(stderr,"sqlite3_prepare_v2 failed for \"%s\": %s\n",query,sqlite3_errmsg(DB));
sqlite3_finalize(*stmt);
}
return src;
} }
int sqlite3_run_query(sqlite3* DB, sqlite3_stmt *stmt) int sqlite3_run_query(sqlite3* DB, sqlite3_stmt *stmt)
@@ -140,6 +146,7 @@ bool sqlite3_command(sqlite3* DB, const char* query)
if (sqlite3_prepare_statement(DB,&stmt,query)) return false; if (sqlite3_prepare_statement(DB,&stmt,query)) return false;
// Run the query. // Run the query.
int src = sqlite3_run_query(DB,stmt); int src = sqlite3_run_query(DB,stmt);
sqlite3_finalize(stmt);
return src==SQLITE_DONE; return src==SQLITE_DONE;
} }

View File

@@ -114,7 +114,7 @@ ostream& SIP::operator<<(ostream& os, SIPState s)
{ {
const char* str = SIPStateString(s); const char* str = SIPStateString(s);
if (str) os << str; if (str) os << str;
else os << "?" << s << "?"; else os << "?" << ((int)s) << "?";
return os; return os;
} }