From e8bb162220ac17cb9b8cc229666356e88f081887 Mon Sep 17 00:00:00 2001 From: Ben Fuhrmannek Date: Sat, 7 Aug 2021 15:55:48 +0200 Subject: prevent STDERR debug output based on SP_NODEBUG environment variable --- src/snuffleupagus.c | 12 +++++++++--- src/sp_utils.h | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/snuffleupagus.c b/src/snuffleupagus.c index 2ee94a1..3ad47d5 100644 --- a/src/snuffleupagus.c +++ b/src/snuffleupagus.c @@ -75,7 +75,11 @@ ZEND_DLEXPORT zend_extension zend_extension_entry = { static PHP_GINIT_FUNCTION(snuffleupagus) { #ifdef SP_DEBUG_STDERR - sp_debug_stderr = dup(STDERR_FILENO); + if (getenv("SP_NODEBUG")) { + sp_debug_stderr = -1; + } else { + sp_debug_stderr = dup(STDERR_FILENO); + } #endif sp_log_debug("(GINIT)"); snuffleupagus_globals->is_config_valid = SP_CONFIG_NONE; @@ -218,8 +222,10 @@ static PHP_GSHUTDOWN_FUNCTION(snuffleupagus) { #undef FREE_CFG_ZSTR #ifdef SP_DEBUG_STDERR - close(sp_debug_stderr); - sp_debug_stderr = STDERR_FILENO; + if (sp_debug_stderr >= 0) { + close(sp_debug_stderr); + sp_debug_stderr = STDERR_FILENO; + } #endif } diff --git a/src/sp_utils.h b/src/sp_utils.h index ec79e8b..c0ddbe4 100644 --- a/src/sp_utils.h +++ b/src/sp_utils.h @@ -57,7 +57,7 @@ #ifdef SP_DEBUG_STDERR extern int sp_debug_stderr; #define sp_log_debug(fmt, ...) \ - dprintf(sp_debug_stderr, "[snuffleupagus][DEBUG] %s(): " fmt "\n", __FUNCTION__, ##__VA_ARGS__); + if (sp_debug_stderr > 0) dprintf(sp_debug_stderr, "[snuffleupagus][DEBUG] %s(): " fmt "\n", __FUNCTION__, ##__VA_ARGS__); #else #define sp_log_debug(fmt, ...) \ sp_log_msgf("DEBUG", SP_LOG_DEBUG, SP_TYPE_LOG, "%s(): " fmt, __FUNCTION__, ##__VA_ARGS__) -- cgit v1.3