From 43486922fac591683fcbe4335166c349f726c6eb Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 31 Aug 2011 09:36:27 -0400
Subject: [PATCH] Improve error reporting in installer

---
 installer/rcube_install.php |   17 ++++----
 installer/utils.php         |   18 ++++++++-
 installer/index.php         |   28 ++++++++++++++
 3 files changed, 53 insertions(+), 10 deletions(-)

diff --git a/installer/index.php b/installer/index.php
index 8df7ab0..7ed5224 100644
--- a/installer/index.php
+++ b/installer/index.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+ +-------------------------------------------------------------------------+
+ | Roundcube Webmail setup tool                                            |
+ | Version 0.6                                                             |
+ |                                                                         |
+ | Copyright (C) 2009-2011, The Roundcube Dev Team                         |
+ |                                                                         |
+ | This program is free software; you can redistribute it and/or modify    |
+ | it under the terms of the GNU General Public License version 2          |
+ | as published by the Free Software Foundation.                           |
+ |                                                                         |
+ | This program is distributed in the hope that it will be useful,         |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of          |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           |
+ | GNU General Public License for more details.                            |
+ |                                                                         |
+ | You should have received a copy of the GNU General Public License along |
+ | with this program; if not, write to the Free Software Foundation, Inc., |
+ | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.             |
+ |                                                                         |
+ +-------------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com>                          |
+ +-------------------------------------------------------------------------+
+
+ $Id$
+
+*/
+
 ini_set('error_reporting', E_ALL&~E_NOTICE);
 ini_set('display_errors', 1);
 
diff --git a/installer/rcube_install.php b/installer/rcube_install.php
index c8c103a..ff3f7a4 100644
--- a/installer/rcube_install.php
+++ b/installer/rcube_install.php
@@ -5,7 +5,7 @@
  | rcube_install.php                                                     |
  |                                                                       |
  | This file is part of the Roundcube Webmail package                    |
- | Copyright (C) 2008-2009, The Roundcube Dev Team                       |
+ | Copyright (C) 2008-2011, The Roundcube Dev Team                       |
  | Licensed under the GNU Public License                                 |
  +-----------------------------------------------------------------------+
 
@@ -95,14 +95,15 @@
    */
   function _load_config($suffix)
   {
-    @include RCMAIL_CONFIG_DIR . '/main.inc' . $suffix;
-    if (is_array($rcmail_config)) {
-      $this->config += $rcmail_config;
+    if (is_readable($main_inc = RCMAIL_CONFIG_DIR . '/main.inc' . $suffix)) {
+      include($main_inc);
+      if (is_array($rcmail_config))
+        $this->config += $rcmail_config;
     }
-      
-    @include RCMAIL_CONFIG_DIR . '/db.inc'. $suffix;
-    if (is_array($rcmail_config)) {
-      $this->config += $rcmail_config;
+    if (is_readable($db_inc = RCMAIL_CONFIG_DIR . '/db.inc'. $suffix)) {
+      include($db_inc);
+      if (is_array($rcmail_config))
+        $this->config += $rcmail_config;
     }
   }
   
diff --git a/installer/utils.php b/installer/utils.php
index b08a118..a7521b9 100644
--- a/installer/utils.php
+++ b/installer/utils.php
@@ -2,9 +2,9 @@
 /*
  +-------------------------------------------------------------------------+
  | Roundcube Webmail IMAP Client                                           |
- | Version 0.3-20090702                                                    |
+ | Version 0.6                                                             |
  |                                                                         |
- | Copyright (C) 2005-2009, The Roundcube Dev Team                         |
+ | Copyright (C) 2005-2011, The Roundcube Dev Team                         |
  |                                                                         |
  | This program is free software; you can redistribute it and/or modify    |
  | it under the terms of the GNU General Public License version 2          |
@@ -64,3 +64,17 @@
     $rci = rcube_install::get_instance();
     $rci->raise_error($p);
 }
+
+/**
+ * Local callback function for PEAR errors
+ */
+function rcube_pear_error($err)
+{
+    raise_error(array(
+        'code' => $err->getCode(),
+        'message' => $err->getMessage(),
+    ));
+}
+
+// set PEAR error handling (will also load the PEAR main class)
+PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'rcube_pear_error');

--
Gitblit v1.9.1