{
DEBUG2("rlm_sql_iodbc: Socket destructor called, closing socket");
- if (conn->stmt) {
- SQLFreeStmt(conn->stmt, SQL_DROP);
- }
+ if (conn->stmt) SQLFreeStmt(conn->stmt, SQL_DROP);
if (conn->dbc_handle) {
SQLDisconnect(conn->dbc_handle);
SQLFreeConnect(conn->dbc_handle);
}
- if (conn->env_handle) {
- SQLFreeEnv(conn->env_handle);
- }
+ if (conn->env_handle) SQLFreeEnv(conn->env_handle);
return 0;
}
ERROR("rlm_sql_iodbc: SQLAllocEnv failed");
if (sql_error(NULL, &entry, 1, handle, config) > 0) ERROR("rlm_sql_iodbc: %s", entry.msg);
- return -1;
+ return RLM_SQL_ERROR;
}
rcode = SQLAllocConnect(conn->env_handle,
ERROR("rlm_sql_iodbc: SQLAllocConnect failed");
if (sql_error(NULL, &entry, 1, handle, config) > 0) ERROR("rlm_sql_iodbc: %s", entry.msg);
- return -1;
+ return RLM_SQL_ERROR;
}
/*
ERROR("rlm_sql_iodbc: SQLConnectfailed");
if (sql_error(NULL, &entry, 1, handle, config) > 0) ERROR("rlm_sql_iodbc: %s", entry.msg);
- return -1;
+ return RLM_SQL_ERROR;
}
return 0;
SQLRETURN rcode;
rcode = SQLAllocStmt(conn->dbc_handle, &conn->stmt);
- if (!SQL_SUCCEEDED(rcode)) return -1;
+ if (!SQL_SUCCEEDED(rcode)) return RLM_SQL_ERROR;
if (!conn->dbc_handle) {
ERROR("rlm_sql_iodbc: Socket not connected");
- return -1;
+ return RLM_SQL_ERROR;
}
{
rcode = SQLExecDirect(conn->stmt, statement, SQL_NTS);
}
- if (!SQL_SUCCEEDED(rcode)) return -1;
+ if (!SQL_SUCCEEDED(rcode)) return RLM_SQL_ERROR;
return 0;
}
long len = 0;
rlm_sql_iodbc_conn_t *conn = handle->conn;
- if(sql_query(handle, config, query) < 0) {
- return -1;
- }
+ if (sql_query(handle, config, query) < 0) return RLM_SQL_ERROR;
numfields = sql_num_fields(handle, config);
return 0;
}
-static sql_rcode_t sql_store_result(UNUSED rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config)
-{
- return 0;
-}
-
static int sql_num_fields(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t *config)
{
handle->row = NULL;
- if((rc = SQLFetch(conn->stmt)) == SQL_NO_DATA_FOUND) {
- return 0;
- }
+ rc = SQLFetch(conn->stmt);
+ if (rc == SQL_NO_DATA_FOUND) return RLM_SQL_NO_MORE_ROWS;
+
/* XXX Check rc for database down, if so, return RLM_SQL_RECONNECT */
handle->row = conn->row;
.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_affected_rows = sql_affected_rows,
.sql_fields = sql_fields,