[php-src] Issue #11131: php-fpm access.format: allow environment variables (in addition to fastcgi env vars)

From: Date: Tue, 25 Apr 2023 14:29:48 +0000
Subject: [php-src] Issue #11131: php-fpm access.format: allow environment variables (in addition to fastcgi env vars)
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-244269@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/11131 Author: rcanavan ### Description We're using the patch below to inject environment variables into the php-fpm access log, e.g. for statistics about outgoing requests that were performed using curl. Example usage: access.format = "{\"uid\":\"%{UNIQUE_ID}E\",\"timestamp\":%{%s}t,\"requesttime\":%{request_time}E,\"requestvolume\":\"%{request_volume}E}" Could you provide some guidance if this has any change to be accepted, and if so, how I can help in the process? ``` diff --git a/sapi/fpm/fpm/fpm_log.c b/sapi/fpm/fpm/fpm_log.c index bb66c0812..518aba4aa 100644 --- a/sapi/fpm/fpm/fpm_log.c +++ b/sapi/fpm/fpm/fpm_log.c @@ -247,7 +247,7 @@ int fpm_log_write(char *log_format) /* {{{ */ case 'e': /* fastcgi env */ if (format[0] == '\0') { - zlog(ZLOG_WARNING, "the name of the environment variable must be set between embraces for %%%c", *s); + zlog(ZLOG_WARNING, "the name of the environment variable must be set between curly braces for %%%c", *s); return -1; } @@ -258,6 +258,19 @@ int fpm_log_write(char *log_format) /* {{{ */ format[0] = '\0'; break; + case 'E': /* env */ + if (format[0] == '\0') { + zlog(ZLOG_WARNING, "the name of the environment variable must be set between curly braces for %%%c", *s); + return -1; + } + + if (!test) { + char *env = getenv(format); + len2 = snprintf(b, FPM_LOG_BUFFER - len, "%s", env ? env : "-"); + } + format[0] = '\0'; + break; + case 'f': /* script */ if (!test) { len2 = snprintf(b, FPM_LOG_BUFFER - len, "%s", *proc.script_filename ? proc.script_filename : "-"); @@ -526,4 +539,4 @@ static int fpm_access_log_suppress(struct fpm_scoreboard_proc_s *proc) } return 0; -} \ No newline at end of file +} ```

« previous php.bugs (#244269) next »