In preparation for moving from pool connections to trunk connections.
return 0;
}
-static sql_rcode_t sql_finish_query(rlm_sql_handle_t *handle, rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, rlm_sql_config_t const *config)
{
- rlm_sql_cassandra_conn_t *conn = handle->conn;
+ rlm_sql_cassandra_conn_t *conn = query_ctx->handle->conn;
/*
* Clear our local log buffer, and free any messages which weren't
talloc_free_children(conn->log_ctx);
memset(&conn->last_error, 0, sizeof(conn->last_error));
- return sql_free_result(handle, config);
+ return sql_free_result(query_ctx->handle, config);
}
/*
return 1;
}
-static sql_rcode_t sql_finish_query(UNUSED rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_query(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
return RLM_SQL_OK;
}
-static sql_rcode_t sql_finish_select_query(rlm_sql_handle_t *handle, rlm_sql_config_t const *config)
-{
- return sql_finish_query(handle, config);
-}
-
static int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
SQLINTEGER c;
.sql_free_result = sql_free_result,
.sql_error = sql_error,
.sql_finish_query = sql_finish_query,
- .sql_finish_select_query = sql_finish_select_query
+ .sql_finish_select_query = sql_finish_query
};
/* Forward declarations */
static sql_rcode_t sql_free_result(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
static int sql_num_fields(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
-static sql_rcode_t sql_finish_query(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
static int _sql_socket_destructor(rlm_sql_firebird_conn_t *conn)
{
/** End the select query, such as freeing memory or result.
*
*/
-static sql_rcode_t sql_finish_select_query(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_select_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_firebird_conn_t *conn = (rlm_sql_firebird_conn_t *) handle->conn;
+ rlm_sql_firebird_conn_t *conn = (rlm_sql_firebird_conn_t *) query_ctx->handle->conn;
fb_commit(conn);
fb_close_cursor(conn);
/** End the query
*
*/
-static sql_rcode_t sql_finish_query(UNUSED rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_query(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
return 0;
}
return 1;
}
-static sql_rcode_t sql_finish_select_query(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_select_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_freetds_conn_t *conn = handle->conn;
+ rlm_sql_freetds_conn_t *conn = query_ctx->handle->conn;
ct_cancel(NULL, conn->command, CS_CANCEL_ALL);
if (ct_cmd_drop(conn->command) != CS_SUCCEED) {
default:
ERROR("unexpected result type from query");
- sql_finish_select_query(query_ctx->handle, &query_ctx->inst->config);
+ sql_finish_select_query(query_ctx, &query_ctx->inst->config);
RETURN_MODULE_FAIL;
}
}
-static sql_rcode_t sql_finish_query(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_freetds_conn_t *conn = handle->conn;
+ rlm_sql_freetds_conn_t *conn = query_ctx->handle->conn;
ct_cancel(NULL, conn->command, CS_CANCEL_ALL);
if (ct_cmd_drop(conn->command) != CS_SUCCEED) {
* whether more results exist and process them in turn if so.
*
*/
-static sql_rcode_t sql_finish_query(rlm_sql_handle_t *handle, rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, rlm_sql_config_t const *config)
{
- rlm_sql_mysql_conn_t *conn = talloc_get_type_abort(handle->conn, rlm_sql_mysql_conn_t);
+ rlm_sql_mysql_conn_t *conn = talloc_get_type_abort(query_ctx->handle->conn, rlm_sql_mysql_conn_t);
int ret;
MYSQL_RES *result;
* already stored result.
*/
} else {
- sql_free_result(handle, config); /* sql_free_result sets conn->result to NULL */
+ sql_free_result(query_ctx->handle, config); /* sql_free_result sets conn->result to NULL */
}
/*
return 0;
}
-static sql_rcode_t sql_finish_query(UNUSED rlm_sql_handle_t * handle, UNUSED rlm_sql_config_t const *config)
-{
- return 0;
-}
-
-static sql_rcode_t sql_finish_select_query(UNUSED rlm_sql_handle_t * handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_query(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
return 0;
}
.sql_free_result = sql_free_result,
.sql_error = sql_error,
.sql_finish_query = sql_finish_query,
- .sql_finish_select_query = sql_finish_select_query,
+ .sql_finish_select_query = sql_finish_query,
.sql_affected_rows = sql_affected_rows
};
return RLM_SQL_OK;
}
-static sql_rcode_t sql_finish_query(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_oracle_conn_t *conn = handle->conn;
+ rlm_sql_oracle_conn_t *conn = query_ctx->handle->conn;
if (OCIStmtRelease(conn->query, conn->error, NULL, 0, OCI_DEFAULT) != OCI_SUCCESS ) {
ERROR("OCI release failed in sql_finish_query");
return 0;
}
-static sql_rcode_t sql_finish_select_query(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_select_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_oracle_conn_t *conn = handle->conn;
+ rlm_sql_oracle_conn_t *conn = query_ctx->handle->conn;
TALLOC_FREE(conn->row);
conn->ind = NULL; /* ind is a child of row */
return 0;
}
-static sql_rcode_t sql_free_result(rlm_sql_handle_t * handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_postgres_conn_t *conn = handle->conn;
+ rlm_sql_postgres_conn_t *conn = query_ctx->handle->conn;
if (conn->result != NULL) {
PQclear(conn->result);
return 1;
}
-static sql_rcode_t sql_finish_query(rlm_sql_handle_t *handle, rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, rlm_sql_config_t const *config)
{
- return sql_free_result(handle, config);
+ return sql_free_result(query_ctx->handle, config);
}
static int sql_affected_rows(fr_sql_query_t *query_ctx,
RETURN_MODULE_OK;
}
-static sql_rcode_t sql_finish_select_query(rlm_sql_handle_t * handle, rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_select_query(fr_sql_query_t *query_ctx, rlm_sql_config_t const *config)
{
- rlm_sql_unixodbc_conn_t *conn = handle->conn;
+ rlm_sql_unixodbc_conn_t *conn = query_ctx->handle->conn;
- sql_free_result(handle, config);
+ sql_free_result(query_ctx->handle, config);
/*
* SQL_CLOSE - The cursor (if any) associated with the statement
return 0;
}
-static sql_rcode_t sql_finish_query(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_unixodbc_conn_t *conn = handle->conn;
+ rlm_sql_unixodbc_conn_t *conn = query_ctx->handle->conn;
SQLFreeStmt(conn->stmt, SQL_CLOSE);
row = query_ctx->handle->row;
if (!row[0]){
RDEBUG2("row[0] returned NULL");
- (inst->driver->sql_finish_select_query)(*handle, &inst->config);
+ (inst->driver->sql_finish_select_query)(query_ctx, &inst->config);
talloc_free(entry);
return -1;
}
sql_error_t sql_error; //!< Get any errors from the previous query.
- sql_rcode_t (*sql_finish_query)(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
- sql_rcode_t (*sql_finish_select_query)(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
+ sql_rcode_t (*sql_finish_query)(fr_sql_query_t *query_ctx, rlm_sql_config_t const *config);
+ sql_rcode_t (*sql_finish_select_query)(fr_sql_query_t *query_ctx, rlm_sql_config_t const *config);
xlat_escape_legacy_t sql_escape_func;
void *(*sql_escape_arg_alloc)(TALLOC_CTX *ctx, fr_event_list_t *el, void *uctx);
{
if (to_free->status <= 0) return 0;
if (to_free->type == SQL_QUERY_SELECT) {
- (to_free->inst->driver->sql_finish_select_query)(to_free->handle, &to_free->inst->config);
+ (to_free->inst->driver->sql_finish_select_query)(to_free, &to_free->inst->config);
} else {
- (to_free->inst->driver->sql_finish_query)(to_free->handle, &to_free->inst->config);
+ (to_free->inst->driver->sql_finish_query)(to_free, &to_free->inst->config);
}
return 0;
}
*/
case RLM_SQL_QUERY_INVALID:
rlm_sql_print_error(inst, request, query_ctx->handle, false);
- (inst->driver->sql_finish_query)(query_ctx->handle, &inst->config);
+ (inst->driver->sql_finish_query)(query_ctx, &inst->config);
RETURN_MODULE_INVALID;
/*
case RLM_SQL_ERROR:
if (inst->driver->flags & RLM_SQL_RCODE_FLAGS_ALT_QUERY) {
rlm_sql_print_error(inst, request, query_ctx->handle, false);
- (inst->driver->sql_finish_query)(query_ctx->handle, &inst->config);
+ (inst->driver->sql_finish_query)(query_ctx, &inst->config);
RETURN_MODULE_FAIL;
}
FALL_THROUGH;
*/
case RLM_SQL_ALT_QUERY:
rlm_sql_print_error(inst, request, query_ctx->handle, true);
- (inst->driver->sql_finish_query)(query_ctx->handle, &inst->config);
+ (inst->driver->sql_finish_query)(query_ctx, &inst->config);
break;
default:
case RLM_SQL_ERROR:
default:
rlm_sql_print_error(inst, request, query_ctx->handle, false);
- (inst->driver->sql_finish_select_query)(query_ctx->handle, &inst->config);
+ (inst->driver->sql_finish_select_query)(query_ctx, &inst->config);
if (query_ctx->rcode == RLM_SQL_QUERY_INVALID) RETURN_MODULE_INVALID;
RETURN_MODULE_FAIL;
}