From fc67251839ae210a138cafc68fdb7f5aae95a151 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Wed, 17 Oct 2007 16:44:10 -0400 Subject: [PATCH] Show appropriate warning on connection error --- index.php | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-) diff --git a/index.php b/index.php index f62e9eb..ce66d2c 100644 --- a/index.php +++ b/index.php @@ -2,7 +2,7 @@ /* +-----------------------------------------------------------------------+ | RoundCube Webmail IMAP Client | - | Version 0.1-20070428 | + | Version 0.1-20071017 | | | | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | @@ -41,7 +41,7 @@ */ // application constants -define('RCMAIL_VERSION', '0.1-20070428'); +define('RCMAIL_VERSION', '0.1-20071017'); define('RCMAIL_CHARSET', 'UTF-8'); define('JS_OBJECT_NAME', 'rcmail'); @@ -66,11 +66,12 @@ // instead the ones provided by RC ini_set('include_path', $INSTALL_PATH.PATH_SEPARATOR.$INSTALL_PATH.'program'.PATH_SEPARATOR.$INSTALL_PATH.'program/lib'.PATH_SEPARATOR.ini_get('include_path')); -ini_set('session.name', 'sessid'); +ini_set('session.name', 'roundcube_sessid'); ini_set('session.use_cookies', 1); ini_set('session.gc_maxlifetime', 21600); ini_set('session.gc_divisor', 500); ini_set('error_reporting', E_ALL&~E_NOTICE); +set_magic_quotes_runtime(0); // increase maximum execution time for php scripts // (does not work in safe mode) @@ -81,7 +82,6 @@ require_once('include/rcube_imap.inc'); require_once('include/bugs.inc'); require_once('include/main.inc'); -require_once('include/cache.inc'); require_once('PEAR.php'); @@ -172,8 +172,8 @@ } else { - $OUTPUT->show_message("loginfailed", 'warning'); - $_SESSION['user_id'] = ''; + $OUTPUT->show_message($IMAP->error_code == -1 ? 'imaperror' : 'loginfailed', 'warning'); + rcmail_kill_session(); } } @@ -201,8 +201,8 @@ $conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl']); if (!$conn) { - $OUTPUT->show_message('imaperror', 'error'); - $_SESSION['user_id'] = ''; + $OUTPUT->show_message($IMAP->error_code == -1 ? 'imaperror' : 'sessionerror', 'error'); + rcmail_kill_session(); } else rcmail_set_imap_prop(); @@ -218,6 +218,16 @@ $_task = 'login'; } + +// check client X-header to verify request origin +if ($OUTPUT->ajax_call) +{ + if (empty($CONFIG['devel_mode']) && !rc_request_header('X-RoundCube-Referer')) + { + header('HTTP/1.1 404 Not Found'); + die("Invalid Request"); + } +} // set task and action to client @@ -285,7 +295,7 @@ if ($_action=='getunread') include('program/steps/mail/getunread.inc'); - if ($_action=='list' && isset($_GET['_remote'])) + if ($_action=='list' && isset($_REQUEST['_remote'])) include('program/steps/mail/list.inc'); if ($_action=='search') @@ -323,7 +333,7 @@ if ($_action=='show') include('program/steps/addressbook/show.inc'); - if ($_action=='list' && $_GET['_remote']) + if ($_action=='list' && $_REQUEST['_remote']) include('program/steps/addressbook/list.inc'); if ($_action=='search') -- Gitblit v1.9.1