From 6973488fefbf5cb0be89c648fab1ae9f76f95cb8 Mon Sep 17 00:00:00 2001 From: Arran Cudbard-Bell Date: Sat, 15 Nov 2014 01:34:31 -0500 Subject: [PATCH] Use C99 field labels when initialising driver structs Means it's possible to add new callback functions in the module structs without having to go through and add NULL field initialisers to every module --- .../rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c | 25 ++++++++--------- .../rlm_sql_firebird/rlm_sql_firebird.c | 27 +++++++++--------- .../drivers/rlm_sql_freetds/rlm_sql_freetds.c | 27 +++++++++--------- .../drivers/rlm_sql_iodbc/rlm_sql_iodbc.c | 27 +++++++++--------- .../drivers/rlm_sql_mysql/rlm_sql_mysql.c | 28 +++++++++---------- .../drivers/rlm_sql_null/rlm_sql_null.c | 27 +++++++++--------- .../drivers/rlm_sql_oracle/rlm_sql_oracle.c | 27 +++++++++--------- .../rlm_sql_postgresql/rlm_sql_postgresql.c | 25 ++++++++--------- .../drivers/rlm_sql_sqlite/rlm_sql_sqlite.c | 28 +++++++++---------- .../rlm_sql_unixodbc/rlm_sql_unixodbc.c | 27 +++++++++--------- src/modules/rlm_sql/rlm_sql.h | 6 ++++ 11 files changed, 134 insertions(+), 140 deletions(-) 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 35c3d7546db2..cfc6a196a299 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 @@ -315,18 +315,15 @@ static int sql_affected_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t * /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_db2 = { - "rlm_sql_db2", - NULL, - sql_socket_init, - sql_query, - sql_select_query, - NULL, /* sql_store_result */ - sql_num_fields, - NULL, /* sql_num_rows */ - sql_fetch_row, - sql_free_result, - sql_error, - sql_finish_query, - sql_finish_select_query, - sql_affected_rows, + .name = "rlm_sql_db2", + .sql_socket_init = sql_socket_init, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_num_fields = sql_num_fields, + .sql_fetch_row = sql_fetch_row, + .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_affected_rows = sql_affected_rows }; 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 cc135b1ca366..b2c54aee6f98 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 @@ -278,18 +278,17 @@ static int sql_affected_rows(rlm_sql_handle_t *handle, rlm_sql_config_t *config) /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_firebird = { - "rlm_sql_firebird", - NULL, - sql_socket_init, - sql_query, - sql_select_query, - sql_store_result, - sql_num_fields, - sql_num_rows, - sql_fetch_row, - sql_free_result, - sql_error, - sql_finish_query, - sql_finish_select_query, - sql_affected_rows + .name = "rlm_sql_firebird", + .sql_socket_init = sql_socket_init, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_store_result = sql_store_result, + .sql_num_fields = sql_num_fields, + .sql_num_rows = sql_num_rows, + .sql_fetch_row = sql_fetch_row, + .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_affected_rows = sql_affected_rows }; 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 2a93854c0267..33c27b261e99 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 @@ -822,18 +822,17 @@ static sql_rcode_t sql_socket_init(rlm_sql_handle_t *handle, rlm_sql_config_t *c /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_freetds = { - "rlm_sql_freetds", - NULL, - sql_socket_init, - sql_query, - sql_select_query, - sql_store_result, - sql_num_fields, - sql_num_rows, - sql_fetch_row, - sql_free_result, - sql_error, - sql_finish_query, - sql_finish_select_query, - sql_affected_rows + .name = "rlm_sql_freetds", + .sql_socket_init = sql_socket_init, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_store_result = sql_store_result, + .sql_num_fields = sql_num_fields, + .sql_num_rows = sql_num_rows, + .sql_fetch_row = sql_fetch_row, + .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_affected_rows = sql_affected_rows }; 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 b24233864b7c..abc42cb7008a 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 @@ -384,18 +384,17 @@ static int sql_affected_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t * /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_iodbc = { - "rlm_sql_iodbc", - NULL, - sql_socket_init, - sql_query, - sql_select_query, - sql_store_result, - sql_num_fields, - sql_num_rows, - sql_fetch_row, - sql_free_result, - sql_error, - sql_finish_query, - sql_finish_select_query, - sql_affected_rows + .name = "rlm_sql_iodbc", + .sql_socket_init = sql_socket_init, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_store_result = sql_store_result, + .sql_num_fields = sql_num_fields, + .sql_num_rows = sql_num_rows, + .sql_fetch_row = sql_fetch_row, + .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_affected_rows = sql_affected_rows }; 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 bec08009a3d2..596ad850b689 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 @@ -573,18 +573,18 @@ static int sql_affected_rows(rlm_sql_handle_t * handle, UNUSED rlm_sql_config_t /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_mysql = { - "rlm_sql_mysql", - mod_instantiate, - sql_socket_init, - sql_query, - sql_select_query, - sql_store_result, - sql_num_fields, - sql_num_rows, - sql_fetch_row, - sql_free_result, - sql_error, - sql_finish_query, - sql_finish_select_query, - sql_affected_rows + .name = "rlm_sql_mysql", + .mod_instantiate = mod_instantiate, + .sql_socket_init = sql_socket_init, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_store_result = sql_store_result, + .sql_num_fields = sql_num_fields, + .sql_num_rows = sql_num_rows, + .sql_fetch_row = sql_fetch_row, + .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_affected_rows = sql_affected_rows }; diff --git a/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c b/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c index 6ef3874b939d..b1818429b1d9 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c @@ -201,18 +201,17 @@ static int sql_affected_rows(UNUSED rlm_sql_handle_t * handle, UNUSED rlm_sql_co /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_null = { - "rlm_sql_null", - NULL, - sql_socket_init, - sql_query, - sql_select_query, - sql_store_result, - sql_num_fields, - sql_num_rows, - sql_fetch_row, - sql_free_result, - sql_error, - sql_finish_query, - sql_finish_select_query, - sql_affected_rows + .name = "rlm_sql_null", + .sql_socket_init = sql_socket_init, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_store_result = sql_store_result, + .sql_num_fields = sql_num_fields, + .sql_num_rows = sql_num_rows, + .sql_fetch_row = sql_fetch_row, + .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_affected_rows = sql_affected_rows }; 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 21f0ab61f005..a11db7343c59 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 @@ -553,18 +553,17 @@ static int sql_affected_rows(rlm_sql_handle_t *handle, rlm_sql_config_t *config) /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_oracle = { - "rlm_sql_oracle", - NULL, - sql_socket_init, - sql_query, - sql_select_query, - sql_store_result, - sql_num_fields, - sql_num_rows, - sql_fetch_row, - sql_free_result, - sql_error, - sql_finish_query, - sql_finish_select_query, - sql_affected_rows + .name = "rlm_sql_oracle", + .sql_socket_init = sql_socket_init, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_store_result = sql_store_result, + .sql_num_fields = sql_num_fields, + .sql_num_rows = sql_num_rows, + .sql_fetch_row = sql_fetch_row, + .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_affected_rows = sql_affected_rows }; 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 46958e001004..9480accd61b5 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 @@ -481,18 +481,15 @@ static int sql_affected_rows(rlm_sql_handle_t * handle, UNUSED rlm_sql_config_t /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_postgresql = { - "rlm_sql_postgresql", - mod_instantiate, - sql_init_socket, - sql_query, - sql_select_query, - NULL, /* sql_store_result */ - sql_num_fields, - NULL, /* sql_num_rows */ - sql_fetch_row, - NULL, /* sql_free_result */ - sql_error, - sql_free_result, - sql_free_result, - sql_affected_rows, + .name = "rlm_sql_postgresql", + .mod_instantiate = mod_instantiate, + .sql_init_socket = sql_init_socket, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_num_fields = sql_num_fields, + .sql_fetch_row = sql_fetch_row, + .sql_error = sql_error, + .sql_finish_query = sql_free_result, + .sql_finish_select_query = sql_free_result, + .sql_affected_rows = sql_affected_rows }; 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 6f0b28294971..b82818c442f5 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 @@ -646,18 +646,18 @@ static int sql_affected_rows(rlm_sql_handle_t *handle, /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_sqlite = { - "rlm_sql_sqlite", - mod_instantiate, - sql_socket_init, - sql_query, - sql_select_query, - sql_store_result, - sql_num_fields, - sql_num_rows, - sql_fetch_row, - sql_free_result, - sql_error, - sql_finish_query, - sql_finish_query, - sql_affected_rows + .name = "rlm_sql_sqlite", + .mod_instantiate = mod_instantiate, + .sql_socket_init = sql_socket_init, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_store_result = sql_store_result, + .sql_num_fields = sql_num_fields, + .sql_num_rows = sql_num_rows, + .sql_fetch_row = sql_fetch_row, + .sql_free_result = sql_free_result, + .sql_error = sql_error, + .sql_finish_query = sql_finish_query, + .sql_finish_select_query = sql_finish_query, + .sql_affected_rows = sql_affected_rows }; 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 39afd8f73c92..0af63a0c9d0b 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 @@ -445,18 +445,17 @@ static int sql_affected_rows(rlm_sql_handle_t *handle, rlm_sql_config_t *config) /* Exported to rlm_sql */ rlm_sql_module_t rlm_sql_unixodbc = { - "rlm_sql_unixodbc", - NULL, - sql_socket_init, - sql_query, - sql_select_query, - sql_store_result, - sql_num_fields, - sql_num_rows, - sql_fetch_row, - sql_free_result, - sql_error, - sql_finish_query, - sql_finish_select_query, - sql_affected_rows + .name = "rlm_sql_unixodbc", + .sql_socket_init = sql_socket_init, + .sql_query = sql_query, + .sql_select_query = sql_select_query, + .sql_store_result = sql_store_result, + .sql_num_fields = sql_num_fields, + .sql_num_rows = sql_num_rows, + .sql_fetch_row = sql_fetch_row, + .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_affected_rows = sql_affected_rows }; diff --git a/src/modules/rlm_sql/rlm_sql.h b/src/modules/rlm_sql/rlm_sql.h index ba9b96902feb..98bf188f1244 100644 --- a/src/modules/rlm_sql/rlm_sql.h +++ b/src/modules/rlm_sql/rlm_sql.h @@ -112,16 +112,22 @@ typedef struct rlm_sql_module_t { sql_rcode_t (*mod_instantiate)(CONF_SECTION *conf, rlm_sql_config_t *config); sql_rcode_t (*sql_socket_init)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); + sql_rcode_t (*sql_query)(rlm_sql_handle_t *handle, rlm_sql_config_t *config, char const *query); sql_rcode_t (*sql_select_query)(rlm_sql_handle_t *handle, rlm_sql_config_t *config, char const *query); sql_rcode_t (*sql_store_result)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); + int (*sql_num_fields)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); int (*sql_num_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_free_result)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); + char const *(*sql_error)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); + sql_rcode_t (*sql_finish_query)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); sql_rcode_t (*sql_finish_select_query)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); + int (*sql_affected_rows)(rlm_sql_handle_t *handle, rlm_sql_config_t *config); } rlm_sql_module_t;