summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--program/include/bugs.inc106
-rwxr-xr-xprogram/include/iniset.php1
-rw-r--r--program/include/main.inc80
-rw-r--r--program/steps/utils/error.inc (renamed from program/steps/error.inc)6
4 files changed, 81 insertions, 112 deletions
diff --git a/program/include/bugs.inc b/program/include/bugs.inc
deleted file mode 100644
index cf5855e8e..000000000
--- a/program/include/bugs.inc
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-/*
- +-----------------------------------------------------------------------+
- | program/include/bugs.inc |
- | |
- | This file is part of the RoudCube Webmail client |
- | Copyright (C) 2005-2010, RoudCube Dev - Switzerland |
- | Licensed under the GNU GPL |
- | |
- | PURPOSE: |
- | Provide error handling and logging functions |
- | |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
- +-----------------------------------------------------------------------+
-
- $Id$
-
-*/
-
-
-/**
- * Error handling and logging functions
- *
- * @package Core
- */
-
-
-/**
- * Throw system error and show error page
- *
- * @param array Named parameters
- * - code: Error code (required)
- * - type: Error type [php|db|imap|javascript] (required)
- * - message: Error message
- * - file: File where error occured
- * - line: Line where error occured
- * @param boolean True to log the error
- * @param boolean Terminate script execution
- */
-function raise_error($arg=array(), $log=false, $terminate=false)
-{
- global $__page_content, $CONFIG, $OUTPUT, $ERROR_CODE, $ERROR_MESSAGE;
-
- // report bug (if not incompatible browser)
- if ($log && $arg['type'] && $arg['message'])
- log_bug($arg);
-
- // display error page and terminate script
- if ($terminate) {
- $ERROR_CODE = $arg['code'];
- $ERROR_MESSAGE = $arg['message'];
- include("program/steps/error.inc");
- exit;
- }
-}
-
-
-/**
- * Report error according to configured debug_level
- *
- * @param array Named parameters
- * @see raise_error()
- */
-function log_bug($arg_arr)
-{
- global $CONFIG;
- $program = strtoupper($arg_arr['type']);
-
- // write error to local log file
- if ($CONFIG['debug_level'] & 1) {
- $post_query = ($_SERVER['REQUEST_METHOD'] == 'POST' ? '?_task='.urlencode($_POST['_task']).'&_action='.urlencode($_POST['_action']) : '');
- $log_entry = sprintf("%s Error: %s%s (%s %s)",
- $program,
- $arg_arr['message'],
- $arg_arr['file'] ? sprintf(' in %s on line %d', $arg_arr['file'], $arg_arr['line']) : '',
- $_SERVER['REQUEST_METHOD'],
- $_SERVER['REQUEST_URI'] . $post_query);
-
- if (!write_log('errors', $log_entry)) {
- // send error to PHPs error handler if write_log didn't succeed
- trigger_error($arg_arr['message']);
- }
- }
-
- // resport the bug to the global bug reporting system
- if ($CONFIG['debug_level'] & 2) {
- // TODO: Send error via HTTP
- }
-
- // show error if debug_mode is on
- if ($CONFIG['debug_level'] & 4) {
- print "<b>$program Error";
-
- if (!empty($arg_arr['file']) && !empty($arg_arr['line']))
- print " in $arg_arr[file] ($arg_arr[line])";
-
- print ':</b>&nbsp;';
- print nl2br($arg_arr['message']);
- print '<br />';
- flush();
- }
-}
-
-?>
diff --git a/program/include/iniset.php b/program/include/iniset.php
index 29b2cce87..3887fa5f3 100755
--- a/program/include/iniset.php
+++ b/program/include/iniset.php
@@ -123,6 +123,5 @@ function rcube_pear_error($err)
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'rcube_pear_error');
// include global functions
-require_once 'include/bugs.inc';
require_once 'include/main.inc';
require_once 'include/rcube_shared.inc';
diff --git a/program/include/main.inc b/program/include/main.inc
index 004212ff8..409d6eed2 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -1618,16 +1618,92 @@ function check_email($email, $dns_check=true)
class rcube_base_replacer
{
private $base_url;
-
+
public function __construct($base)
{
$this->base_url = $base;
}
-
+
public function callback($matches)
{
return $matches[1] . '="' . make_absolute_url($matches[3], $this->base_url) . '"';
}
}
+/**
+ * Throw system error and show error page
+ *
+ * @param array Named parameters
+ * - code: Error code (required)
+ * - type: Error type [php|db|imap|javascript] (required)
+ * - message: Error message
+ * - file: File where error occured
+ * - line: Line where error occured
+ * @param boolean True to log the error
+ * @param boolean Terminate script execution
+ */
+function raise_error($arg=array(), $log=false, $terminate=false)
+{
+ global $__page_content, $CONFIG, $OUTPUT, $ERROR_CODE, $ERROR_MESSAGE;
+
+ // report bug (if not incompatible browser)
+ if ($log && $arg['type'] && $arg['message'])
+ log_bug($arg);
+
+ // display error page and terminate script
+ if ($terminate) {
+ $ERROR_CODE = $arg['code'];
+ $ERROR_MESSAGE = $arg['message'];
+ include('program/steps/utils/error.inc');
+ exit;
+ }
+}
+
+
+/**
+ * Report error according to configured debug_level
+ *
+ * @param array Named parameters
+ * @see raise_error()
+ */
+function log_bug($arg_arr)
+{
+ global $CONFIG;
+ $program = strtoupper($arg_arr['type']);
+
+ // write error to local log file
+ if ($CONFIG['debug_level'] & 1) {
+ $post_query = ($_SERVER['REQUEST_METHOD'] == 'POST' ? '?_task='.urlencode($_POST['_task']).'&_action='.urlencode($_POST['_action']) : '');
+ $log_entry = sprintf("%s Error: %s%s (%s %s)",
+ $program,
+ $arg_arr['message'],
+ $arg_arr['file'] ? sprintf(' in %s on line %d', $arg_arr['file'], $arg_arr['line']) : '',
+ $_SERVER['REQUEST_METHOD'],
+ $_SERVER['REQUEST_URI'] . $post_query);
+
+ if (!write_log('errors', $log_entry)) {
+ // send error to PHPs error handler if write_log didn't succeed
+ trigger_error($arg_arr['message']);
+ }
+ }
+
+ // resport the bug to the global bug reporting system
+ if ($CONFIG['debug_level'] & 2) {
+ // TODO: Send error via HTTP
+ }
+
+ // show error if debug_mode is on
+ if ($CONFIG['debug_level'] & 4) {
+ print "<b>$program Error";
+
+ if (!empty($arg_arr['file']) && !empty($arg_arr['line']))
+ print " in $arg_arr[file] ($arg_arr[line])";
+
+ print ':</b>&nbsp;';
+ print nl2br($arg_arr['message']);
+ print '<br />';
+ flush();
+ }
+}
+
?>
diff --git a/program/steps/error.inc b/program/steps/utils/error.inc
index f8bb8461d..364c953e7 100644
--- a/program/steps/error.inc
+++ b/program/steps/utils/error.inc
@@ -2,10 +2,10 @@
/*
+-----------------------------------------------------------------------+
- | program/steps/error.inc |
+ | program/steps/utils/error.inc |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland |
+ | Copyright (C) 2005-2010, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
@@ -46,7 +46,7 @@ else if ($ERROR_CODE==401) {
$__error_text = "Could not verify that you are authorized to access this service!<br />\n".
"Please contact your server-administrator.";
}
-
+
// failed request (wrong step in URL)
else if ($ERROR_CODE==404) {
$__error_title = "REQUEST FAILED/FILE NOT FOUND";