]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Ensure rlm_sql_mysql logs have an appropraite prefix
authorNick Porter <nick@portercomputing.co.uk>
Mon, 4 Nov 2024 10:00:50 +0000 (10:00 +0000)
committerNick Porter <nick@portercomputing.co.uk>
Mon, 4 Nov 2024 10:02:21 +0000 (10:02 +0000)
Use the connection name if available, the instance name before the
connection is made, and fall back to rlm_sql_mysql for library loading.

src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c

index b38a036e59f1024f22975dc223edc3a9d244b413..2b9d3faf07af0ed050f31ac729cb8836d802fd4d 100644 (file)
@@ -26,7 +26,7 @@
  */
 RCSID("$Id$")
 
-#define LOG_PREFIX "sql - mysql"
+#define LOG_PREFIX log_prefix
 
 #include <freeradius-devel/server/base.h>
 #include <freeradius-devel/util/debug.h>
@@ -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){