* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-if (!defined('LACONICA')) {
- exit(1);
-}
-
-require_once INSTALLDIR.'/lib/error.php';
+if (!defined('GNUSOCIAL')) { exit(1); }
/**
* Class for displaying HTTP server errors
class ServerErrorAction extends ErrorAction
{
- function __construct($message='Error', $code=500)
+ static $status = array(500 => 'Internal Server Error',
+ 501 => 'Not Implemented',
+ 502 => 'Bad Gateway',
+ 503 => 'Service Unavailable',
+ 504 => 'Gateway Timeout',
+ 505 => 'HTTP Version Not Supported');
+
+ function __construct($message='Error', $code=500, $ex=null)
{
parent::__construct($message, $code);
- $this->status = array(500 => 'Internal Server Error',
- 501 => 'Not Implemented',
- 502 => 'Bad Gateway',
- 503 => 'Service Unavailable',
- 504 => 'Gateway Timeout',
- 505 => 'HTTP Version Not Supported');
-
$this->default = 500;
- // Server errors must be logged.
-
- common_log(LOG_ERR, "ServerErrorAction: $code $message");
- }
-
- // XXX: Should these error actions even be invokable via URI?
-
- function handle($args)
- {
- parent::handle($args);
-
- $this->code = $this->trimmed('code');
-
- if (!$this->code || $code < 500 || $code > 599) {
+ if (!$this->code || $this->code < 500 || $this->code > 599) {
$this->code = $this->default;
}
- $this->message = $this->trimmed('message');
-
if (!$this->message) {
$this->message = "Server Error $this->code";
}
+ // Server errors must be logged.
+ $log = "ServerErrorAction: $code $message";
+ if ($ex) {
+ $log .= "\n" . $ex->getTraceAsString();
+ }
+ common_log(LOG_ERR, $log);
+
$this->showPage();
}
+ /**
+ * To specify additional HTTP headers for the action
+ *
+ * @return void
+ */
+ function extraHeaders()
+ {
+ $status_string = @self::$status[$this->code];
+ header('HTTP/1.1 '.$this->code.' '.$status_string);
+ }
+
+ /**
+ * Page title.
+ *
+ * @return page title
+ */
+
function title()
{
- return $this->status[$this->code];
+ return @self::$status[$this->code];
}
+
}