sqlite {
# Path to the sqlite database
filename = "/tmp/freeradius.db"
-#
- # How long to wait for write locks on the database to be
- # released (in ms) before giving up.
- busy_timeout = 200
-#
+
# If the file above does not exist and bootstrap is set
# a new database file will be created, and the SQL statements
# contained within the bootstrap file will be executed.
DO_CASS_OPTION("sql_server", cass_cluster_set_contact_points(cluster, config->sql_server));
if (config->sql_port) DO_CASS_OPTION("sql_port", cass_cluster_set_port(cluster, config->sql_port));
/* Can't fail */
- if (config->query_timeout) cass_cluster_set_request_timeout(cluster, config->query_timeout * 1000);
+ if (config->query_timeout) cass_cluster_set_request_timeout(cluster, fr_time_delta_to_msec(config->query_timeout));
/* Can't fail */
if (config->sql_login && config->sql_password) cass_cluster_set_credentials(cluster, config->sql_login,
config->sql_password);
mysql_options(&(conn->db), MYSQL_OPT_CONNECT_TIMEOUT, &connect_timeout);
if (config->query_timeout) {
- unsigned int read_timeout = config->query_timeout;
- unsigned int write_timeout = config->query_timeout;
+ unsigned int read_timeout = fr_time_delta_to_sec(config->query_timeout);
+ unsigned int write_timeout = fr_time_delta_to_sec(config->query_timeout);
/*
* The timeout in seconds for each attempt to read from the server.
* There are retries if necessary, so the total effective timeout
* value is three times the option value.
*/
- if (config->query_timeout >= 3) read_timeout /= 3;
+ if (read_timeout >= 3) read_timeout /= 3;
/*
* The timeout in seconds for each attempt to write to the server.
* There is a retry if necessary, so the total effective timeout
* value is two times the option value.
*/
- if (config->query_timeout >= 2) write_timeout /= 2;
+ if (write_timeout >= 2) write_timeout /= 2;
/*
* Connect timeout is actually connect timeout (according to the
{
rlm_sql_postgres_conn_t *conn = handle->conn;
rlm_sql_postgres_t *inst = config->driver;
- fr_time_delta_t timeout = fr_time_delta_from_sec(config->query_timeout);
+ fr_time_delta_t timeout = config->query_timeout;
fr_time_t start;
int sockfd;
PGresult *tmp_result;
r = select(sockfd + 1, &read_fd, NULL, NULL, config->query_timeout ? &fr_time_delta_to_timeval(timeout - elapsed) : NULL);
if (r == 0) {
too_long:
- ERROR("Socket read timeout after %d seconds", config->query_timeout);
+ ERROR("Socket read timeout after %d seconds", (int) fr_time_delta_to_sec(config->query_timeout));
return RLM_SQL_RECONNECT;
}
if (r < 0) {
}
if (config->query_timeout) {
- db_string = talloc_asprintf_append(db_string, " connect_timeout=%d", config->query_timeout);
+ db_string = talloc_asprintf_append(db_string, " connect_timeout=%d", (int) fr_time_delta_to_sec(config->query_timeout));
}
if (inst->send_application_name) {
}
if ((config->query_timeout) && !strstr(db_string, "connect_timeout=")) {
- db_string = talloc_asprintf_append(db_string, " connect_timeout=%d", config->query_timeout);
+ db_string = talloc_asprintf_append(db_string, " connect_timeout=%d", (int) fr_time_delta_to_sec(config->query_timeout));
}
if (inst->send_application_name && !strstr(db_string, "application_name=")) {
typedef struct {
char const *filename;
- fr_time_t busy_timeout;
bool bootstrap;
} rlm_sql_sqlite_t;
static const CONF_PARSER driver_config[] = {
{ FR_CONF_OFFSET("filename", FR_TYPE_FILE_OUTPUT | FR_TYPE_REQUIRED, rlm_sql_sqlite_t, filename) },
- { FR_CONF_OFFSET("busy_timeout", FR_TYPE_TIME_DELTA, rlm_sql_sqlite_t, busy_timeout), .dflt = "200s" },
CONF_PARSER_TERMINATOR
};
#endif
return RLM_SQL_ERROR;
}
- status = sqlite3_busy_timeout(conn->db, fr_time_delta_to_sec(inst->busy_timeout));
+ status = sqlite3_busy_timeout(conn->db, fr_time_delta_to_sec(config->query_timeout));
if (sql_check_error(conn->db, status) != RLM_SQL_OK) {
sql_print_error(conn->db, status, "Error setting busy timeout");
return RLM_SQL_ERROR;
/*
* This only works for a few drivers.
*/
- { FR_CONF_OFFSET("query_timeout", FR_TYPE_UINT32, rlm_sql_config_t, query_timeout) },
+ { FR_CONF_OFFSET("query_timeout", FR_TYPE_TIME_DELTA, rlm_sql_config_t, query_timeout) },
{ FR_CONF_POINTER("accounting", FR_TYPE_SUBSECTION, NULL), .subcs = (void const *) acct_config },
//!< NULL drivers.
char const *allowed_chars; //!< Chars which done need escaping..
- uint32_t query_timeout; //!< How long to allow queries to run for.
+ fr_time_delta_t query_timeout; //!< How long to allow queries to run for.
char const *connect_query; //!< Query executed after establishing
//!< new connection.