diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d10fa9..013adc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Fixed - Mustache.php version to resolve issues on PHP 7.4 - type crash when URL passed to network request filters is invalid +- large server timing headers breaking proxies ## 3.3.1 - 2019-07-02 diff --git a/src/Manager/Server_Timing_Manager.php b/src/Manager/Server_Timing_Manager.php index a936c1e..1b3ca5c 100644 --- a/src/Manager/Server_Timing_Manager.php +++ b/src/Manager/Server_Timing_Manager.php @@ -57,11 +57,15 @@ class Server_Timing_Manager { foreach ( $this->collector->get_records() as $record ) { $duration = $record->get_duration() * 1000; - if ( $duration < 1 ) { + if ( $duration < 1 ) { // Filter out less than 1ms events as too noisy. continue; } $header .= sprintf( '%s;dur=%.2f;desc="%s", ', $record->get_category(), $duration, $record->get_name() ); + + if ( strlen( $header ) > 4000 ) { // 8+KB headers break proxies, so we cut off at 1/2 that limit. + break; + } } header( 'Server-Timing: ' . preg_replace( '/\R/', '', $header ) );