From: Alan T. DeKok Date: Tue, 14 Sep 2010 00:52:55 +0000 (+0200) Subject: Added functions for sql_affected_rows and sql_error X-Git-Tag: release_3_0_0_beta0~1247 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=freeradius.git;a=commitdiff_plain;h=e8bdc45d5d088d923be499da33aeb1d54fc2fb44 Added functions for sql_affected_rows and sql_error These look like they're not used right now, but they're worth having --- diff --git a/src/modules/rlm_sql/drivers/rlm_sql_sqlite/sql_sqlite.c b/src/modules/rlm_sql/drivers/rlm_sql_sqlite/sql_sqlite.c index f4b6dc0..14466d9 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_sqlite/sql_sqlite.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_sqlite/sql_sqlite.c @@ -338,8 +338,15 @@ static int sql_free_result(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config) * connection * *************************************************************************/ -static const char *sql_error(UNUSED SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config) +static const char *sql_error(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config) { + rlm_sql_sqlite_sock *sqlite_sock = sqlsocket->conn; + + if (sqlite_sock->pDb != NULL) { + return sqlite3_errmsg(sqlite_sock->pDb); + } + + radlog(L_ERR, "rlm_sql_sqlite: Socket not connected"); return NULL; } @@ -405,12 +412,22 @@ static int sql_finish_select_query(SQLSOCK * sqlsocket, SQL_CONFIG *config) * * Function: sql_affected_rows * - * Purpose: End the select query, such as freeing memory or result + * Purpose: Requests the number of rows affected by the last executed + * statement * *************************************************************************/ -static int sql_affected_rows(UNUSED SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config) +static int sql_affected_rows(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config) { - return 0; + int result = -1; + + rlm_sql_sqlite_sock *sqlite_sock = sqlsocket->conn; + + if (sqlite_sock->pDb != NULL) { + result = sqlite3_changes(sqlite_sock->pDb); + DEBUG3("rlm_sql_sqlite: sql_affected_rows() = %i\n", result); + } + + return result; }