{
int status;
rlm_sql_sqlite_sock *sqlite_sock;
+ char *filename;
char buffer[2048];
if (!sqlsocket->conn) {
sqlite_sock = sqlsocket->conn;
memset(sqlite_sock, 0, sizeof(rlm_sql_sqlite_sock));
- snprintf(buffer, sizeof(buffer), "%s/sqlite_radius_client_database",
- radius_dir);
+ filename = config->sql_file;
+ if (!filename) {
+ snprintf(buffer, sizeof(buffer), "%s/sqlite_radius_client_database",
+ radius_dir);
+ filename = buffer;
+ }
radlog(L_INFO, "rlm_sql_sqlite: Opening sqlite database %s for #%d",
- buffer, sqlsocket->id);
+ filename, sqlsocket->id);
- status = sqlite3_open(buffer, &sqlite_sock->pDb);
+ status = sqlite3_open(filename, &sqlite_sock->pDb);
radlog(L_INFO, "rlm_sql_sqlite: sqlite3_open() = %d\n", status);
return (status != SQLITE_OK) * -1;
}
* connection
*
*************************************************************************/
-static const char *sql_error(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
+static const char *sql_error(UNUSED SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
{
return NULL;
}
* Purpose: End the select query, such as freeing memory or result
*
*************************************************************************/
-static int sql_affected_rows(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
+static int sql_affected_rows(UNUSED SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
{
return 0;
}
offsetof(SQL_CONFIG,sql_password), NULL, ""},
{"radius_db", PW_TYPE_STRING_PTR,
offsetof(SQL_CONFIG,sql_db), NULL, "radius"},
+ {"filename", PW_TYPE_FILENAME, /* for sqlite */
+ offsetof(SQL_CONFIG,sql_file), NULL, NULL},
{"read_groups", PW_TYPE_BOOLEAN,
offsetof(SQL_CONFIG,read_groups), NULL, "yes"},
{"sqltrace", PW_TYPE_BOOLEAN,