From: Nick Porter Date: Mon, 4 Nov 2024 10:00:50 +0000 (+0000) Subject: Ensure rlm_sql_mysql logs have an appropraite prefix X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d12d5e87f00a7ff71727a791b33d8099ad06f029;p=thirdparty%2Ffreeradius-server.git Ensure rlm_sql_mysql logs have an appropraite prefix Use the connection name if available, the instance name before the connection is made, and fall back to rlm_sql_mysql for library loading. --- 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 b38a036e59f..2b9d3faf07a 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 @@ -26,7 +26,7 @@ */ RCSID("$Id$") -#define LOG_PREFIX "sql - mysql" +#define LOG_PREFIX log_prefix #include #include @@ -141,6 +141,7 @@ static int mod_instantiate(module_inst_ctx_t const *mctx) { rlm_sql_mysql_t *inst = talloc_get_type_abort(mctx->mi->data, rlm_sql_mysql_t); int warnings; + char const *log_prefix = mctx->mi->name; warnings = fr_table_value_by_str(server_warnings_table, inst->warnings_str, -1); if (warnings < 0) { @@ -174,6 +175,7 @@ static void mod_unload(void) static int mod_load(void) { + char const *log_prefix = "rlm_sql_mysql"; if (mysql_library_init(0, NULL, NULL)) { ERROR("libmysql initialisation failed"); @@ -190,6 +192,7 @@ static int mod_load(void) static void _sql_connect_io_notify(fr_event_list_t *el, int fd, UNUSED int flags, void *uctx) { rlm_sql_mysql_conn_t *c = talloc_get_type_abort(uctx, rlm_sql_mysql_conn_t); + char const *log_prefix = c->conn->name; fr_event_fd_delete(el, fd, FR_EVENT_FILTER_IO); @@ -226,10 +229,11 @@ static void _sql_connect_query_run(connection_t *conn, UNUSED connection_state_t { rlm_sql_t const *sql = talloc_get_type_abort_const(uctx, rlm_sql_t); rlm_sql_mysql_conn_t *sql_conn = talloc_get_type_abort(conn->h, rlm_sql_mysql_conn_t); + char const *log_prefix = conn->name; int ret; MYSQL_RES *result; - DEBUG2("Executing \"%s\" on connection %s", sql->config.connect_query, conn->name); + DEBUG2("Executing \"%s\"", sql->config.connect_query); ret = mysql_real_query(sql_conn->sock, sql->config.connect_query, strlen(sql->config.connect_query)); if (ret != 0) { @@ -257,6 +261,7 @@ static connection_state_t _sql_connection_init(void **h, connection_t *conn, voi { rlm_sql_t const *sql = talloc_get_type_abort_const(uctx, rlm_sql_t); rlm_sql_mysql_t const *inst = talloc_get_type_abort(sql->driver_submodule->data, rlm_sql_mysql_t); + char const *log_prefix = conn->name; rlm_sql_mysql_conn_t *c; rlm_sql_config_t const *config = &sql->config; @@ -632,6 +637,7 @@ static size_t sql_warnings(TALLOC_CTX *ctx, sql_log_entry_t out[], size_t outlen MYSQL_ROW row; unsigned int num_fields; size_t i = 0; + char const *log_prefix = conn->conn->name; if (outlen == 0) return 0; @@ -695,9 +701,11 @@ static size_t sql_error(TALLOC_CTX *ctx, sql_log_entry_t out[], size_t outlen, rlm_sql_mysql_conn_t *conn; char const *error; size_t i = 0; + char const *log_prefix; if (!query_ctx->tconn) return 0; conn = talloc_get_type_abort(query_ctx->tconn->conn->h, rlm_sql_mysql_conn_t); + log_prefix = conn->conn->name; fr_assert(outlen > 0); @@ -840,6 +848,7 @@ static ssize_t sql_escape_func(request_t *request, char *out, size_t outlen, cha size_t inlen; connection_t *c = talloc_get_type_abort(arg, connection_t); rlm_sql_mysql_conn_t *conn; + char const *log_prefix = c->name; if ((c->state == CONNECTION_STATE_HALTED) || (c->state == CONNECTION_STATE_CLOSED)) { ROPTIONAL(RERROR, ERROR, "Connection not available for escaping"); @@ -859,15 +868,22 @@ static ssize_t sql_escape_func(request_t *request, char *out, size_t outlen, cha SQL_TRUNK_CONNECTION_ALLOC +#undef LOG_PREFIX +#define LOG_PREFIX "rlm_sql_mysql" + TRUNK_NOTIFY_FUNC(sql_trunk_connection_notify, rlm_sql_mysql_conn_t) +#undef LOG_PREFIX +#define LOG_PREFIX log_prefix + CC_NO_UBSAN(function) /* UBSAN: false positive - public vs private connection_t trips --fsanitize=function*/ static void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t *tconn, connection_t *conn, UNUSED void *uctx) { rlm_sql_mysql_conn_t *sql_conn = talloc_get_type_abort(conn->h, rlm_sql_mysql_conn_t); + char const *log_prefix = conn->name; request_t *request; - trunk_request_t *treq; + trunk_request_t *treq; fr_sql_query_t *query_ctx; char const *info; int err; @@ -962,6 +978,7 @@ static void sql_trunk_request_demux(UNUSED fr_event_list_t *el, UNUSED trunk_con connection_t *conn, UNUSED void *uctx) { rlm_sql_mysql_conn_t *sql_conn = talloc_get_type_abort(conn->h, rlm_sql_mysql_conn_t); + char const *log_prefix = conn->name; fr_sql_query_t *query_ctx; char const *info; int err = 0; @@ -1090,6 +1107,7 @@ static void *sql_escape_arg_alloc(TALLOC_CTX *ctx, fr_event_list_t *el, void *uc { rlm_sql_t const *inst = talloc_get_type_abort(uctx, rlm_sql_t); connection_t *conn; + char const *log_prefix = inst->name; conn = connection_alloc(ctx, el, &(connection_funcs_t){