summaryrefslogtreecommitdiff
path: root/framework/Web
diff options
context:
space:
mode:
authorFabio Bas <ctrlaltca@gmail.com>2014-10-23 22:35:19 +0200
committerFabio Bas <ctrlaltca@gmail.com>2014-10-23 22:35:19 +0200
commit6258436ce62988d1178c7c394d5093dbac52056f (patch)
treef45955e528cdcdd7eec362ee6e27f84fbe83c589 /framework/Web
parenta95129eca0c513b4090c76656a068805b3b5281f (diff)
Fix #539
TErrorHandler: let THttpResponse handle http status codes
Diffstat (limited to 'framework/Web')
-rw-r--r--framework/Web/THttpResponse.php13
1 files changed, 9 insertions, 4 deletions
diff --git a/framework/Web/THttpResponse.php b/framework/Web/THttpResponse.php
index 75563ef9..7e1afcc6 100644
--- a/framework/Web/THttpResponse.php
+++ b/framework/Web/THttpResponse.php
@@ -512,10 +512,15 @@ class THttpResponse extends TModule implements ITextWriter
*/
protected function sendHttpHeader()
{
- if (($version=$this->getRequest()->getHttpProtocolVersion())==='')
- header (' ', true, $this->_status);
- else
- header($version.' '.$this->_status.' '.$this->_reason, true, $this->_status);
+ $protocol=$this->getRequest()->getHttpProtocolVersion();
+ if($this->getRequest()->getHttpProtocolVersion() === null)
+ $protocol='HTTP/1.1';
+
+ $phpSapiName = substr(php_sapi_name(), 0, 3);
+ $cgi = $phpSapiName == 'cgi' || $phpSapiName == 'fpm';
+
+ header(($cgi ? 'Status:' : $protocol).' '.$this->_status.' '.$this->_reason, true, TPropertyValue::ensureInteger($this->_status));
+
$this->_httpHeaderSent = true;
}