From 2965a981b7ec22866fbdf2d567d87e2d068d3617 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Fri, 31 Jul 2015 16:04:08 -0400
Subject: [PATCH] Allow to search and import missing PGP pubkeys from keyservers using Publickey.js
---
program/lib/Roundcube/rcube.php | 55 +++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 39 insertions(+), 16 deletions(-)
diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php
index 3aca888..ae5957e 100644
--- a/program/lib/Roundcube/rcube.php
+++ b/program/lib/Roundcube/rcube.php
@@ -37,6 +37,8 @@
const REQUEST_ERROR_URL = 1;
const REQUEST_ERROR_TOKEN = 2;
+ const DEBUG_LINE_LENGTH = 4096;
+
/**
* Singleton instace of rcube
*
@@ -521,23 +523,15 @@
ini_set('session.use_only_cookies', 1);
ini_set('session.cookie_httponly', 1);
- // use database for storing session data
- $this->session = new rcube_session($this->get_dbh(), $this->config);
-
+ // get session driver instance
+ $this->session = rcube_session::factory($this->config);
$this->session->register_gc_handler(array($this, 'gc'));
- $this->session->set_secret($this->config->get('des_key') . dirname($_SERVER['SCRIPT_NAME']));
- $this->session->set_ip_check($this->config->get('ip_check'));
-
- if ($this->config->get('session_auth_name')) {
- $this->session->set_cookiename($this->config->get('session_auth_name'));
- }
// start PHP session (if not in CLI mode)
if ($_SERVER['REMOTE_ADDR']) {
$this->session->start();
}
}
-
/**
* Garbage collector - cache/temp cleaner
@@ -1461,6 +1455,32 @@
/**
+ * Write debug info to the log
+ *
+ * @param string Engine type - file name (memcache, apc)
+ * @param string Data string to log
+ * @param bool Operation result
+ */
+ public static function debug($engine, $data, $result = null)
+ {
+ static $debug_counter;
+
+ $line = '[' . (++$debug_counter[$engine]) . '] ' . $data;
+
+ if (($len = strlen($line)) > self::DEBUG_LINE_LENGTH) {
+ $diff = $len - self::DEBUG_LINE_LENGTH;
+ $line = substr($line, 0, self::DEBUG_LINE_LENGTH) . "... [truncated $diff bytes]";
+ }
+
+ if ($result !== null) {
+ $line .= ' [' . ($result ? 'TRUE' : 'FALSE') . ']';
+ }
+
+ self::write_log($engine, $line);
+ }
+
+
+ /**
* Returns current time (with microseconds).
*
* @return float Current time in seconds since the Unix
@@ -1681,15 +1701,18 @@
if ($message->getParam('delay_file_io')) {
// use common temp dir
- $temp_dir = $this->config->get('temp_dir');
- $body_file = tempnam($temp_dir, 'rcmMsg');
- if (PEAR::isError($mime_result = $message->saveMessageBody($body_file))) {
+ $temp_dir = $this->config->get('temp_dir');
+ $body_file = tempnam($temp_dir, 'rcmMsg');
+ $mime_result = $message->saveMessageBody($body_file);
+
+ if (is_a($mime_result, 'PEAR_Error')) {
self::raise_error(array('code' => 650, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Could not create message: ".$mime_result->getMessage()),
- TRUE, FALSE);
+ true, false);
return false;
}
+
$msg_body = fopen($body_file, 'r');
}
else {
@@ -1732,11 +1755,11 @@
$msg_body = $message->get();
- if (PEAR::isError($msg_body)) {
+ if (is_a($msg_body, 'PEAR_Error')) {
self::raise_error(array('code' => 650, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Could not create message: ".$msg_body->getMessage()),
- TRUE, FALSE);
+ true, false);
}
else {
$delim = $this->config->header_delimiter();
--
Gitblit v1.9.1