Undocumented for now. Based on a patch from Sven Anders
char *sql_login;
char *sql_password;
char *sql_db;
char *sql_login;
char *sql_password;
char *sql_db;
+ char *sql_file; /* for sqlite */
char *query_user;
char *default_profile;
char *nas_query;
char *query_user;
char *default_profile;
char *nas_query;
{
int status;
rlm_sql_sqlite_sock *sqlite_sock;
{
int status;
rlm_sql_sqlite_sock *sqlite_sock;
char buffer[2048];
if (!sqlsocket->conn) {
char buffer[2048];
if (!sqlsocket->conn) {
sqlite_sock = sqlsocket->conn;
memset(sqlite_sock, 0, sizeof(rlm_sql_sqlite_sock));
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",
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;
}
radlog(L_INFO, "rlm_sql_sqlite: sqlite3_open() = %d\n", status);
return (status != SQLITE_OK) * -1;
}
* connection
*
*************************************************************************/
* connection
*
*************************************************************************/
-static const char *sql_error(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
+static const char *sql_error(UNUSED SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
* Purpose: End the select query, such as freeing memory or result
*
*************************************************************************/
* 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)
offsetof(SQL_CONFIG,sql_password), NULL, ""},
{"radius_db", PW_TYPE_STRING_PTR,
offsetof(SQL_CONFIG,sql_db), NULL, "radius"},
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,
{"read_groups", PW_TYPE_BOOLEAN,
offsetof(SQL_CONFIG,read_groups), NULL, "yes"},
{"sqltrace", PW_TYPE_BOOLEAN,