From: Alan T. DeKok Date: Tue, 22 Jan 2019 15:21:04 +0000 (-0500) Subject: remove sql_fields X-Git-Tag: release_3_0_18~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93cd53dcbd1aea7e83f329b949e6dd42e1e26e98;p=thirdparty%2Ffreeradius-server.git remove sql_fields Lots of code, and nothing ever used it. --- diff --git a/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c b/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c index 7f922b389e6..14e6c40fa2e 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c @@ -137,44 +137,6 @@ static int sql_num_fields(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *con return c; } -static sql_rcode_t sql_fields(char const **out[], rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) -{ - rlm_sql_db2_conn_t *conn = handle->conn; - - SQLSMALLINT fields, len, i; - - char const **names; - char field[128]; - - SQLNumResultCols(conn->stmt, &fields); - if (fields == 0) return RLM_SQL_ERROR; - - MEM(names = talloc_array(handle, char const *, fields)); - - for (i = 0; i < fields; i++) { - char *p; - - switch (SQLColAttribute(conn->stmt, i, SQL_DESC_BASE_COLUMN_NAME, - field, sizeof(field), &len, NULL)) { - case SQL_INVALID_HANDLE: - case SQL_ERROR: - ERROR("Failed retrieving field name at index %i", i); - talloc_free(names); - return RLM_SQL_ERROR; - - default: - break; - } - - MEM(p = talloc_array(names, char, (size_t)len + 1)); - strlcpy(p, field, (size_t)len + 1); - names[i] = p; - } - *out = names; - - return RLM_SQL_OK; -} - static sql_rcode_t sql_fetch_row(rlm_sql_handle_t *handle, rlm_sql_config_t *config) { int c, i; @@ -285,7 +247,6 @@ rlm_sql_module_t rlm_sql_db2 = { .sql_select_query = sql_select_query, .sql_num_fields = sql_num_fields, .sql_affected_rows = sql_affected_rows, - .sql_fields = sql_fields, .sql_fetch_row = sql_fetch_row, .sql_free_result = sql_free_result, .sql_error = sql_error, diff --git a/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c b/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c index 966ddc3914e..49bcf739920 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c @@ -182,27 +182,6 @@ static int sql_num_rows(rlm_sql_handle_t *handle, rlm_sql_config_t *config) return sql_affected_rows(handle, config); } -/** Returns name of fields. - * - */ -static sql_rcode_t sql_fields(char const **out[], rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) -{ - rlm_sql_firebird_conn_t *conn = handle->conn; - - int fields, i; - char const **names; - - fields = conn->sqlda_out->sqld; - if (fields <= 0) return RLM_SQL_ERROR; - - MEM(names = talloc_array(handle, char const *, fields)); - - for (i = 0; i < fields; i++) names[i] = conn->sqlda_out->sqlvar[i].sqlname; - *out = names; - - return RLM_SQL_OK; -} - /** Returns an individual row. * */ @@ -312,7 +291,6 @@ rlm_sql_module_t rlm_sql_firebird = { .sql_num_rows = sql_num_rows, .sql_affected_rows = sql_affected_rows, .sql_fetch_row = sql_fetch_row, - .sql_fields = sql_fields, .sql_free_result = sql_free_result, .sql_error = sql_error, .sql_finish_query = sql_finish_query, diff --git a/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c b/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c index ad52cca2d79..820ba2063ac 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c @@ -324,57 +324,6 @@ static int sql_num_fields(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *con return num; } -/************************************************************************* - * - * Function: sql_fields - * - * Purpose: Return name of regular result columns. - * - *************************************************************************/ -static sql_rcode_t sql_fields(char const **out[], rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) -{ - rlm_sql_freetds_conn_t *conn = handle->conn; - CS_DATAFMT datafmt; - int fields, i; - char const **names; - - /* Get number of elements in row result */ - if (ct_res_info(conn->command, CS_NUMDATA, (CS_INT *)&fields, CS_UNUSED, NULL) != CS_SUCCEED) { - ERROR("rlm_sql_freetds: sql_fields() Error retrieving column count"); - - return RLM_SQL_ERROR; - } - - if (fields <= 0) return RLM_SQL_ERROR; - - MEM(names = talloc_array(handle, char const *, fields)); - - for (i = 0; i < fields; i++) { - int col = i + 1; - char *p; - - /* - ** Get the column description. ct_describe() fills the - ** datafmt parameter with a description of the column. - */ - if (ct_describe(conn->command, col, &datafmt) != CS_SUCCEED) { - ERROR("rlm_sql_freetds: sql_fields() Problems with ct_describe(), column %d", col); - talloc_free(names); - return RLM_SQL_ERROR; - } - - if (datafmt.namelen > 0) { - MEM(p = talloc_array(names, char, (size_t)datafmt.namelen + 1)); - strlcpy(p, datafmt.name, (size_t)datafmt.namelen + 1); - names[i] = p; - } - } - - *out = names; - - return RLM_SQL_OK; -} - /** Retrieves any errors associated with the connection handle * * @note Caller will free any memory allocated in ctx. @@ -803,7 +752,6 @@ rlm_sql_module_t rlm_sql_freetds = { .sql_select_query = sql_select_query, .sql_num_fields = sql_num_fields, .sql_num_rows = sql_num_rows, - .sql_fields = sql_fields, .sql_affected_rows = sql_affected_rows, .sql_fetch_row = sql_fetch_row, .sql_free_result = sql_free_result, diff --git a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/rlm_sql_iodbc.c b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/rlm_sql_iodbc.c index c15664c35ff..d87444db95d 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/rlm_sql_iodbc.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/rlm_sql_iodbc.c @@ -195,44 +195,6 @@ static int sql_num_fields(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *con return (int)count; } -static sql_rcode_t sql_fields(char const **out[], rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) -{ - rlm_sql_iodbc_conn_t *conn = handle->conn; - - SQLSMALLINT fields, len, i; - - char const **names; - char field[128]; - - SQLNumResultCols(conn->stmt, &fields); - if (fields == 0) return RLM_SQL_ERROR; - - MEM(names = talloc_array(handle, char const *, fields)); - - for (i = 0; i < fields; i++) { - char *p; - - switch (SQLColAttribute(conn->stmt, i, SQL_DESC_BASE_COLUMN_NAME, - field, sizeof(field), &len, NULL)) { - case SQL_INVALID_HANDLE: - case SQL_ERROR: - ERROR("Failed retrieving field name at index %i", i); - talloc_free(names); - return RLM_SQL_ERROR; - - default: - break; - } - - MEM(p = talloc_array(names, char, (size_t)len + 1)); - strlcpy(p, field, (size_t)len + 1); - names[i] = p; - } - *out = names; - - return RLM_SQL_OK; -} - static sql_rcode_t sql_fetch_row(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) { SQLRETURN rc; @@ -325,7 +287,6 @@ rlm_sql_module_t rlm_sql_iodbc = { .sql_select_query = sql_select_query, .sql_num_fields = sql_num_fields, .sql_affected_rows = sql_affected_rows, - .sql_fields = sql_fields, .sql_fetch_row = sql_fetch_row, .sql_free_result = sql_free_result, .sql_error = sql_error, diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c b/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c index 8fb7cee9d5b..2b05db8182f 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c @@ -439,32 +439,6 @@ static int sql_num_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *confi return 0; } -static sql_rcode_t sql_fields(char const **out[], rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) -{ - rlm_sql_mysql_conn_t *conn = handle->conn; - - unsigned int fields, i; - MYSQL_FIELD *field_info; - char const **names; - - fields = mysql_num_fields(conn->result); - if (fields == 0) return RLM_SQL_ERROR; - - /* - * https://bugs.mysql.com/bug.php?id=32318 - * Hints that we don't have to free field_info. - */ - field_info = mysql_fetch_fields(conn->result); - if (!field_info) return RLM_SQL_ERROR; - - MEM(names = talloc_zero_array(handle, char const *, fields + 1)); - - for (i = 0; i < fields; i++) names[i] = field_info[i].name; - *out = names; - - return RLM_SQL_OK; -} - static sql_rcode_t sql_fetch_row(rlm_sql_handle_t *handle, rlm_sql_config_t *config) { rlm_sql_mysql_conn_t *conn = handle->conn; @@ -762,7 +736,6 @@ rlm_sql_module_t rlm_sql_mysql = { .sql_num_fields = sql_num_fields, .sql_num_rows = sql_num_rows, .sql_affected_rows = sql_affected_rows, - .sql_fields = sql_fields, .sql_fetch_row = sql_fetch_row, .sql_free_result = sql_free_result, .sql_error = sql_error, diff --git a/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c b/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c index 9ddb31cea23..88fd41dc663 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c @@ -202,47 +202,6 @@ static int sql_num_fields(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *con return count; } -static sql_rcode_t sql_fields(char const **out[], rlm_sql_handle_t *handle, rlm_sql_config_t *config) -{ - rlm_sql_oracle_conn_t *conn = handle->conn; - int fields, i, status; - char const **names; - OCIParam *param; - - fields = sql_num_fields(handle, config); - if (fields <= 0) return RLM_SQL_ERROR; - - MEM(names = talloc_array(handle, char const *, fields)); - - for (i = 0; i < fields; i++) { - OraText *pcol_name = NULL; - ub4 pcol_size = 0; - - status = OCIParamGet(conn->query, OCI_HTYPE_STMT, conn->error, (dvoid **)¶m, i + 1); - if (status != OCI_SUCCESS) { - ERROR("rlm_sql_oracle: OCIParamGet(OCI_HTYPE_STMT) failed in sql_fields()"); - error: - talloc_free(names); - - return RLM_SQL_ERROR; - } - - status = OCIAttrGet((dvoid **)param, OCI_DTYPE_PARAM, &pcol_name, &pcol_size, - OCI_ATTR_NAME, conn->error); - if (status != OCI_SUCCESS) { - ERROR("rlm_sql_oracle: OCIParamGet(OCI_ATTR_NAME) failed in sql_fields()"); - - goto error; - } - - names[i] = (char const *)pcol_name; - } - - *out = names; - - return RLM_SQL_OK; -} - static sql_rcode_t sql_query(rlm_sql_handle_t *handle, rlm_sql_config_t *config, char const *query) { int status; @@ -504,7 +463,6 @@ rlm_sql_module_t rlm_sql_oracle = { .sql_num_rows = sql_num_rows, .sql_affected_rows = sql_affected_rows, .sql_fetch_row = sql_fetch_row, - .sql_fields = sql_fields, .sql_free_result = sql_free_result, .sql_error = sql_error, .sql_finish_query = sql_finish_query, diff --git a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c index 721f5ddcc6d..0405dcf9e3c 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c @@ -388,24 +388,6 @@ static sql_rcode_t sql_select_query(rlm_sql_handle_t * handle, rlm_sql_config_t return sql_query(handle, config, query); } -static sql_rcode_t sql_fields(char const **out[], rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) -{ - rlm_sql_postgres_conn_t *conn = handle->conn; - - int fields, i; - char const **names; - - fields = PQnfields(conn->result); - if (fields <= 0) return RLM_SQL_ERROR; - - MEM(names = talloc_zero_array(handle, char const *, fields + 1)); - - for (i = 0; i < fields; i++) names[i] = PQfname(conn->result, i); - *out = names; - - return RLM_SQL_OK; -} - static sql_rcode_t sql_fetch_row(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) { @@ -537,7 +519,6 @@ rlm_sql_module_t rlm_sql_postgresql = { .sql_query = sql_query, .sql_select_query = sql_select_query, .sql_num_fields = sql_num_fields, - .sql_fields = sql_fields, .sql_fetch_row = sql_fetch_row, .sql_error = sql_error, .sql_finish_query = sql_free_result, diff --git a/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c b/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c index 9cf1aff6040..3282f401ec1 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c @@ -634,24 +634,6 @@ static int sql_num_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *confi return 0; } -static sql_rcode_t sql_fields(char const **out[], rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) -{ - rlm_sql_sqlite_conn_t *conn = handle->conn; - - int fields, i; - char const **names; - - fields = sqlite3_column_count(conn->statement); - if (fields <= 0) return RLM_SQL_ERROR; - - MEM(names = talloc_zero_array(handle, char const *, fields + 1)); - - for (i = 0; i < fields; i++) names[i] = sqlite3_column_name(conn->statement, i); - *out = names; - - return RLM_SQL_OK; -} - static sql_rcode_t sql_fetch_row(rlm_sql_handle_t *handle, rlm_sql_config_t *config) { int status; @@ -810,7 +792,6 @@ rlm_sql_module_t rlm_sql_sqlite = { .sql_num_rows = sql_num_rows, .sql_affected_rows = sql_affected_rows, .sql_fetch_row = sql_fetch_row, - .sql_fields = sql_fields, .sql_free_result = sql_free_result, .sql_error = sql_error, .sql_finish_query = sql_finish_query, diff --git a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c index 9c7d30a34c5..847f81a3748 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c @@ -181,44 +181,6 @@ static int sql_num_fields(rlm_sql_handle_t *handle, rlm_sql_config_t *config) return num_fields; } -static sql_rcode_t sql_fields(char const **out[], rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config) -{ - rlm_sql_unixodbc_conn_t *conn = handle->conn; - - SQLSMALLINT fields, len, i; - - char const **names; - char field[128]; - - SQLNumResultCols(conn->stmt, &fields); - if (fields == 0) return RLM_SQL_ERROR; - - MEM(names = talloc_array(handle, char const *, fields)); - - for (i = 0; i < fields; i++) { - char *p; - - switch (SQLColAttribute(conn->stmt, i, SQL_DESC_BASE_COLUMN_NAME, - field, sizeof(field), &len, NULL)) { - case SQL_INVALID_HANDLE: - case SQL_ERROR: - ERROR("Failed retrieving field name at index %i", i); - talloc_free(names); - return RLM_SQL_ERROR; - - default: - break; - } - - MEM(p = talloc_array(names, char, (size_t)len + 1)); - strlcpy(p, field, (size_t)len + 1); - names[i] = p; - } - *out = names; - - return RLM_SQL_OK; -} - static sql_rcode_t sql_fetch_row(rlm_sql_handle_t *handle, rlm_sql_config_t *config) { rlm_sql_unixodbc_conn_t *conn = handle->conn; @@ -393,7 +355,6 @@ rlm_sql_module_t rlm_sql_unixodbc = { .sql_select_query = sql_select_query, .sql_num_fields = sql_num_fields, .sql_affected_rows = sql_affected_rows, - .sql_fields = sql_fields, .sql_fetch_row = sql_fetch_row, .sql_free_result = sql_free_result, .sql_error = sql_error, diff --git a/src/modules/rlm_sql/rlm_sql.c b/src/modules/rlm_sql/rlm_sql.c index 0f843e0e85f..f2a7951edc6 100644 --- a/src/modules/rlm_sql/rlm_sql.c +++ b/src/modules/rlm_sql/rlm_sql.c @@ -884,8 +884,6 @@ static int mod_bootstrap(CONF_SECTION *conf, void *instance) /* * Load the appropriate driver for our database. - * - * We need this to check if the sql_fields callback is provided. */ inst->handle = fr_dlopenext(inst->config->sql_driver_name); if (!inst->handle) { diff --git a/src/modules/rlm_sql/rlm_sql.h b/src/modules/rlm_sql/rlm_sql.h index cf2203c1735..5af8db40905 100644 --- a/src/modules/rlm_sql/rlm_sql.h +++ b/src/modules/rlm_sql/rlm_sql.h @@ -206,7 +206,6 @@ typedef struct rlm_sql_module_t { int (*sql_affected_rows)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); sql_rcode_t (*sql_fetch_row)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); - sql_rcode_t (*sql_fields)(char const **out[], rlm_sql_handle_t *handle, rlm_sql_config_t *config); sql_rcode_t (*sql_free_result)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); sql_error_t sql_error; //!< Get any errors from the previous query.