goto finish;
} /* else it's a SELECT statement */
- if (rlm_sql_select_query(&handle, inst, query) != RLM_SQL_OK){
- char const *error = (inst->module->sql_error)(handle, inst->config);
- REDEBUG("SQL query failed: %s", error);
- ret = -1;
+ if (rlm_sql_select_query(&handle, inst, query) != RLM_SQL_OK) {
+ ret = -1; /* error handled by rlm_sql_select_query */
goto finish;
}
return -1;
}
- if (rlm_sql_select_query(&handle, inst, inst->config->client_query) != RLM_SQL_OK){
- return -1;
- }
+ if (rlm_sql_select_query(&handle, inst, inst->config->client_query) != RLM_SQL_OK) return -1;
while ((rlm_sql_fetch_row(&handle, inst) == 0) && (row = handle->row)) {
char *server = NULL;
ret = rlm_sql_select_query(handle, inst, expanded);
talloc_free(expanded);
- if (ret != RLM_SQL_OK) {
- return -1;
- }
+ if (ret != RLM_SQL_OK) return -1;
while (rlm_sql_fetch_row(handle, inst) == 0) {
row = (*handle)->row;
goto finish;
}
- rows = sql_getvpdata(request, inst, handle, &check_tmp, expanded);
+ rows = sql_getvpdata(request, inst, request, handle, &check_tmp, expanded);
TALLOC_FREE(expanded);
if (rows < 0) {
REDEBUG("Error retrieving check pairs for group %s", entry->name);
goto finish;
}
- rows = sql_getvpdata(request->reply, inst, handle, &reply_tmp, expanded);
+ rows = sql_getvpdata(request->reply, inst, request, handle, &reply_tmp, expanded);
TALLOC_FREE(expanded);
if (rows < 0) {
REDEBUG("Error retrieving reply pairs for group %s", entry->name);
goto error;
}
- rows = sql_getvpdata(request, inst, &handle, &check_tmp, expanded);
+ rows = sql_getvpdata(request, inst, request, &handle, &check_tmp, expanded);
TALLOC_FREE(expanded);
if (rows < 0) {
REDEBUG("SQL query error getting check attributes");
goto error;
}
- rows = sql_getvpdata(request->reply, inst, &handle, &reply_tmp, expanded);
+ rows = sql_getvpdata(request->reply, inst, request, &handle, &reply_tmp, expanded);
TALLOC_FREE(expanded);
if (rows < 0) {
REDEBUG("SQL query error getting reply attributes");
goto finish;
}
- if (rlm_sql_select_query(&handle, inst, expanded) != RLM_SQL_OK) {
- goto finish;
- }
+ if (rlm_sql_select_query(&handle, inst, expanded) != RLM_SQL_OK) goto finish;
/*
* Setup some stuff, like for MPP detection.
void *mod_conn_create(TALLOC_CTX *ctx, void *instance);
int sql_userparse(TALLOC_CTX *ctx, VALUE_PAIR **first_pair, rlm_sql_row_t row);
int sql_read_realms(rlm_sql_handle_t *handle);
-int sql_getvpdata(TALLOC_CTX *ctx, rlm_sql_t *inst, rlm_sql_handle_t **handle, VALUE_PAIR **pair, char const *query);
+int sql_getvpdata(TALLOC_CTX *ctx, rlm_sql_t *inst, REQUEST *request, rlm_sql_handle_t **handle, VALUE_PAIR **pair, char const *query);
int sql_read_naslist(rlm_sql_handle_t *handle);
int sql_read_clients(rlm_sql_handle_t *handle);
int sql_dict_init(rlm_sql_handle_t *handle);
int i, count;
/* There's no query to run, return an error */
- if (query[0] == '\0') return RLM_SQL_QUERY_ERROR;
+ if (query[0] == '\0') {
+ ERROR("rlm_sql (%s): Zero length query", inst->config->xlat_name);
+ return RLM_SQL_QUERY_ERROR;
+ }
/* There's no handle, we need a new one */
if (!*handle) return RLM_SQL_RECONNECT;
int i, count;
/* There's no query to run, return an error */
- if (query[0] == '\0') return RLM_SQL_QUERY_ERROR;
-
- /* There's no handle, we need a new one */
- if (!*handle) return RLM_SQL_RECONNECT;
+ if (query[0] == '\0') {
+ ERROR("rlm_sql (%s): Zero length SELECT query", inst->config->xlat_name);
+ return RLM_SQL_QUERY_ERROR;
+ }
/*
* inst->pool may be NULL is this function is called by mod_conn_create.
* Purpose: Get any group check or reply pairs
*
*************************************************************************/
-int sql_getvpdata(TALLOC_CTX *ctx, rlm_sql_t *inst, rlm_sql_handle_t **handle,
+int sql_getvpdata(TALLOC_CTX *ctx, rlm_sql_t *inst, REQUEST *request, rlm_sql_handle_t **handle,
VALUE_PAIR **pair, char const *query)
{
- rlm_sql_row_t row;
- int rows = 0;
- sql_rcode_t rcode;
+ rlm_sql_row_t row;
+ int rows = 0;
+ sql_rcode_t rcode;
rcode = rlm_sql_select_query(handle, inst, query);
- if (!rcode) {
- ERROR("rlm_sql (%s): Failed in SELECT query: %d", inst->config->xlat_name, rcode);
- return -1;
- }
+ if (!rcode) return -1; /* error handled by rlm_sql_select_query */
while (rlm_sql_fetch_row(handle, inst) == 0) {
row = (*handle)->row;
- if (!row)
- break;
+ if (!row) break;
if (sql_userparse(ctx, pair, row) != 0) {
- ERROR("rlm_sql (%s): Error parsing user data from database result", inst->config->xlat_name);
+ REDEBUG("Error parsing user data from database result");
(inst->module->sql_finish_select_query)(*handle, inst->config);