summaryrefslogtreecommitdiff
path: root/program/include/bugs.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/bugs.inc')
-rw-r--r--program/include/bugs.inc90
1 files changed, 46 insertions, 44 deletions
diff --git a/program/include/bugs.inc b/program/include/bugs.inc
index 946a910be..9d98ef45b 100644
--- a/program/include/bugs.inc
+++ b/program/include/bugs.inc
@@ -4,8 +4,8 @@
+-----------------------------------------------------------------------+
| program/include/bugs.inc |
| |
- | This file is part of the BQube Webmail client |
- | Copyright (C) 2005, BQube Dev - Switzerland |
+ | This file is part of the RoudCube Webmail client |
+ | Copyright (C) 2005-2007, RoudCube Dev - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
@@ -20,19 +20,29 @@
*/
-// throw system error and show error page
-function raise_error($arg=array(), $log=FALSE, $terminate=FALSE)
+/**
+ * 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;
- /* $arg keys:
- int code
- string type (php, xpath, db, imap, javascript)
- string message
- sring file
- int line
- */
-
// report bug (if not incompatible browser)
if ($log && $arg['type'] && $arg['message'])
log_bug($arg);
@@ -48,61 +58,53 @@ function raise_error($arg=array(), $log=FALSE, $terminate=FALSE)
}
-// report error
+/**
+ * Report error according to configured debug_level
+ *
+ * @param array Named parameters
+ * @see raise_error()
+ */
function log_bug($arg_arr)
- {
+{
global $CONFIG, $INSTALL_PATH;
$program = $arg_arr['type']=='xpath' ? 'XPath' : strtoupper($arg_arr['type']);
// write error to local log file
if ($CONFIG['debug_level'] & 1)
- {
- $log_entry = sprintf("[%s] %s Error: %s in %s on line %d\n",
- date("d-M-Y H:i:s O", mktime()),
- $program,
- $arg_arr['message'],
- $arg_arr['file'],
- $arg_arr['line']);
+ {
+ $log_entry = sprintf(
+ "[%s] %s Error: %s in %s on line %d\n",
+ date("d-M-Y H:i:s O", mktime()),
+ $program,
+ $arg_arr['message'],
+ $arg_arr['file'],
+ $arg_arr['line']);
if (empty($CONFIG['log_dir']))
$CONFIG['log_dir'] = $INSTALL_PATH.'logs';
// try to open specific log file for writing
if ($fp = @fopen($CONFIG['log_dir'].'/errors', 'a'))
-
- {
+ {
fwrite($fp, $log_entry);
fclose($fp);
- }
+ }
else
- {
+ {
// send error to PHPs error handler
trigger_error($arg_arr['message']);
- }
}
+ }
-/*
// resport the bug to the global bug reporting system
if ($CONFIG['debug_level'] & 2)
- {
- $delm = '%AC';
- http_request(sprintf('http://roundcube.net/log/bug.php?_type=%s&_domain=%s&_server_ip=%s&_client_ip=%s&_useragent=%s&_url=%s%%3A//%s&_errors=%s%s%s%s%s',
- $arg_arr['type'],
- $GLOBALS['HTTP_HOST'],
- $GLOBALS['SERVER_ADDR'],
- $GLOBALS['REMOTE_ADDR'],
- rawurlencode($GLOBALS['HTTP_USER_AGENT']),
- $GLOBALS['SERVER_PORT']==43 ? 'https' : 'http',
- $GLOBALS['HTTP_HOST'].$GLOBALS['REQUEST_URI'],
- $arg_arr['file'], $delm,
- $arg_arr['line'], $delm,
- rawurlencode($arg_arr['message'])));
- }
-*/
+ {
+ // 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']))
@@ -112,7 +114,7 @@ function log_bug($arg_arr)
print nl2br($arg_arr['message']);
print '<br />';
flush();
- }
}
+}
?>