1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-08 14:16:42 +02:00

Only send FirePHP headers to browser advertising support for it in their user agent

This commit is contained in:
Jordi Boggiano
2011-10-24 11:39:02 +02:00
parent f13a538b41
commit b704c49a30
2 changed files with 21 additions and 1 deletions

View File

@@ -1,3 +1,9 @@
* 1.0.2 (2011-10-24)
Changes:
* Fixed bug in IE with large response headers and FirePHPHandler
* 1.0.1 (2011-08-25) * 1.0.1 (2011-08-25)
Changes: Changes:

View File

@@ -52,6 +52,8 @@ class FirePHPHandler extends AbstractProcessingHandler
*/ */
protected static $messageIndex = 1; protected static $messageIndex = 1;
protected $sendHeaders = true;
/** /**
* Base header creation function used by init headers & record headers * Base header creation function used by init headers & record headers
* *
@@ -116,7 +118,7 @@ class FirePHPHandler extends AbstractProcessingHandler
*/ */
protected function sendHeader($header, $content) protected function sendHeader($header, $content)
{ {
if (!headers_sent()) { if (!headers_sent() && $this->sendHeaders) {
header(sprintf('%s: %s', $header, $content)); header(sprintf('%s: %s', $header, $content));
} }
} }
@@ -132,6 +134,8 @@ class FirePHPHandler extends AbstractProcessingHandler
{ {
// WildFire-specific headers must be sent prior to any messages // WildFire-specific headers must be sent prior to any messages
if (!self::$initialized) { if (!self::$initialized) {
$this->sendHeaders = $this->headersAccepted();
foreach ($this->getInitHeaders() as $header => $content) { foreach ($this->getInitHeaders() as $header => $content) {
$this->sendHeader($header, $content); $this->sendHeader($header, $content);
} }
@@ -142,4 +146,14 @@ class FirePHPHandler extends AbstractProcessingHandler
$header = $this->createRecordHeader($record); $header = $this->createRecordHeader($record);
$this->sendHeader(key($header), current($header)); $this->sendHeader(key($header), current($header));
} }
/**
* Verifies if the headers are accepted by the current user agent
*
* @return Boolean
*/
protected function headersAccepted()
{
return !isset($_SERVER['HTTP_USER_AGENT']) || preg_match('{\bFirePHP/\d+\.\d+\b}', $_SERVER['HTTP_USER_AGENT']);
}
} }