diff --git a/doc/libfprint-2-sections.txt b/doc/libfprint-2-sections.txt index e6bb0ef3..d37d8404 100644 --- a/doc/libfprint-2-sections.txt +++ b/doc/libfprint-2-sections.txt @@ -353,6 +353,7 @@ fp_dbg_hex_dump_data fp_info fp_warn fp_err +fpi_log_is_debug_transfer_enabled BUG_ON BUG diff --git a/libfprint/fpi-log.c b/libfprint/fpi-log.c index 40e223ca..daeb5281 100644 --- a/libfprint/fpi-log.c +++ b/libfprint/fpi-log.c @@ -21,6 +21,27 @@ #include "fpi-log.h" +/** + * fpi_log_is_debug_transfer_enabled: + * + * Checks if the %FP_DEBUG_TRANSFER environment variable is set. + * + * Returns: %TRUE if %FP_DEBUG_TRANSFER is set, %FALSE otherwise + */ +gboolean +fpi_log_is_debug_transfer_enabled (void) +{ + static gsize debug_transfer_enabled = 0; + + if (g_once_init_enter (&debug_transfer_enabled)) + { + gsize enabled = g_getenv ("FP_DEBUG_TRANSFER") != NULL ? TRUE : G_MAXSIZE; + g_once_init_leave (&debug_transfer_enabled, enabled); + } + + return debug_transfer_enabled == TRUE; +} + /** * fpi_dbg_hex_dump_data: * @buf: Bytes buffer to dump diff --git a/libfprint/fpi-log.h b/libfprint/fpi-log.h index cbc7026b..46380289 100644 --- a/libfprint/fpi-log.h +++ b/libfprint/fpi-log.h @@ -124,3 +124,5 @@ void (fpi_dbg_hex_dump_bytes) (const gchar *log_domain, #define fp_dbg_hex_dump_bytes(bytes) \ (fpi_dbg_hex_dump_bytes) \ (G_LOG_DOMAIN, (bytes)) + +gboolean fpi_log_is_debug_transfer_enabled (void); diff --git a/libfprint/fpi-spi-transfer.c b/libfprint/fpi-spi-transfer.c index 79931ae4..fdba4aae 100644 --- a/libfprint/fpi-spi-transfer.c +++ b/libfprint/fpi-spi-transfer.c @@ -52,7 +52,7 @@ G_DEFINE_BOXED_TYPE (FpiSpiTransfer, fpi_spi_transfer, fpi_spi_transfer_ref, fpi static void log_transfer (FpiSpiTransfer *transfer, gboolean submit, GError *error) { - if (g_getenv ("FP_DEBUG_TRANSFER")) + if (fpi_log_is_debug_transfer_enabled ()) { if (submit) { diff --git a/libfprint/fpi-usb-transfer.c b/libfprint/fpi-usb-transfer.c index 721a2510..9defff08 100644 --- a/libfprint/fpi-usb-transfer.c +++ b/libfprint/fpi-usb-transfer.c @@ -18,6 +18,7 @@ */ #include "fpi-usb-transfer.h" +#include "fpi-log.h" /** * SECTION:fpi-usb-transfer @@ -38,7 +39,7 @@ G_DEFINE_BOXED_TYPE (FpiUsbTransfer, fpi_usb_transfer, fpi_usb_transfer_ref, fpi static void log_transfer (FpiUsbTransfer *transfer, gboolean submit, GError *error) { - if (g_getenv ("FP_DEBUG_TRANSFER")) + if (fpi_log_is_debug_transfer_enabled ()) { if (!submit) {