Linux sagir-us1.hostever.us 5.14.0-570.51.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 8 09:41:34 EDT 2025 x86_64
LiteSpeed
Server IP : 104.247.108.91 & Your IP : 216.73.216.26
Domains : 74 Domain
User : georgeto
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
webuzo-data /
roundcube /
program /
lib /
Roundcube /
Delete
Unzip
Name
Size
Permission
Date
Action
cache
[ DIR ]
drwxr-xr-x
2026-02-08 09:33
db
[ DIR ]
drwxr-xr-x
2026-02-08 09:33
session
[ DIR ]
drwxr-xr-x
2026-02-08 09:33
spellchecker
[ DIR ]
drwxr-xr-x
2026-02-08 09:33
README.md
3.72
KB
-rw-r--r--
2026-02-08 09:33
bootstrap.php
11.94
KB
-rw-r--r--
2026-02-08 09:33
html.php
28.33
KB
-rw-r--r--
2026-02-08 09:33
rcube.php
56.49
KB
-rw-r--r--
2026-02-08 09:33
rcube_addressbook.php
30.71
KB
-rw-r--r--
2026-02-08 09:33
rcube_addresses.php
13.24
KB
-rw-r--r--
2026-02-08 09:33
rcube_base_replacer.php
3.63
KB
-rw-r--r--
2026-02-08 09:33
rcube_browser.php
4.09
KB
-rw-r--r--
2026-02-08 09:33
rcube_cache.php
19
KB
-rw-r--r--
2026-02-08 09:33
rcube_charset.php
24.98
KB
-rw-r--r--
2026-02-08 09:33
rcube_config.php
31.87
KB
-rw-r--r--
2026-02-08 09:33
rcube_contacts.php
35.47
KB
-rw-r--r--
2026-02-08 09:33
rcube_content_filter.php
2.05
KB
-rw-r--r--
2026-02-08 09:33
rcube_csv2vcard.php
24.52
KB
-rw-r--r--
2026-02-08 09:33
rcube_db.php
44.35
KB
-rw-r--r--
2026-02-08 09:33
rcube_enriched.php
5.31
KB
-rw-r--r--
2026-02-08 09:33
rcube_html2text.php
26.82
KB
-rw-r--r--
2026-02-08 09:33
rcube_image.php
18.24
KB
-rw-r--r--
2026-02-08 09:33
rcube_imap.php
152.15
KB
-rw-r--r--
2026-02-08 09:33
rcube_imap_cache.php
39.08
KB
-rw-r--r--
2026-02-08 09:33
rcube_imap_generic.php
138.47
KB
-rw-r--r--
2026-02-08 09:33
rcube_imap_search.php
8.92
KB
-rw-r--r--
2026-02-08 09:33
rcube_ldap.php
81.01
KB
-rw-r--r--
2026-02-08 09:33
rcube_ldap_generic.php
9.64
KB
-rw-r--r--
2026-02-08 09:33
rcube_message.php
46.62
KB
-rw-r--r--
2026-02-08 09:33
rcube_message_header.php
8.73
KB
-rw-r--r--
2026-02-08 09:33
rcube_message_part.php
3.04
KB
-rw-r--r--
2026-02-08 09:33
rcube_mime.php
33.51
KB
-rw-r--r--
2026-02-08 09:33
rcube_mime_decode.php
14.47
KB
-rw-r--r--
2026-02-08 09:33
rcube_output.php
13
KB
-rw-r--r--
2026-02-08 09:33
rcube_plugin.php
13.27
KB
-rw-r--r--
2026-02-08 09:33
rcube_plugin_api.php
28.06
KB
-rw-r--r--
2026-02-08 09:33
rcube_result_index.php
12.93
KB
-rw-r--r--
2026-02-08 09:33
rcube_result_multifolder.php
9.89
KB
-rw-r--r--
2026-02-08 09:33
rcube_result_set.php
3.88
KB
-rw-r--r--
2026-02-08 09:33
rcube_result_thread.php
20.92
KB
-rw-r--r--
2026-02-08 09:33
rcube_session.php
21.11
KB
-rw-r--r--
2026-02-08 09:33
rcube_smtp.php
20.41
KB
-rw-r--r--
2026-02-08 09:33
rcube_spellchecker.php
12.89
KB
-rw-r--r--
2026-02-08 09:33
rcube_spoofchecker.php
2.69
KB
-rw-r--r--
2026-02-08 09:33
rcube_storage.php
30.1
KB
-rw-r--r--
2026-02-08 09:33
rcube_string_replacer.php
11.07
KB
-rw-r--r--
2026-02-08 09:33
rcube_text2html.php
10.88
KB
-rw-r--r--
2026-02-08 09:33
rcube_tnef_decoder.php
27.38
KB
-rw-r--r--
2026-02-08 09:33
rcube_user.php
31.67
KB
-rw-r--r--
2026-02-08 09:33
rcube_utils.php
58.74
KB
-rw-r--r--
2026-02-08 09:33
rcube_vcard.php
36.16
KB
-rw-r--r--
2026-02-08 09:33
rcube_washtml.php
38.15
KB
-rw-r--r--
2026-02-08 09:33
Save
Rename
<?php /** +-----------------------------------------------------------------------+ | This file is part of the Roundcube Webmail client | | | | Copyright (C) The Roundcube Dev Team | | Copyright (C) Kolab Systems AG | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | | See the README file for a full license statement. | | | | PURPOSE: | | Execute (multi-threaded) searches in multiple IMAP folders | +-----------------------------------------------------------------------+ | Author: Thomas Bruederli <roundcube@gmail.com> | +-----------------------------------------------------------------------+ */ /** * Class to control search jobs on multiple IMAP folders. * * @package Framework * @subpackage Storage */ class rcube_imap_search { /** @var array IMAP connection options */ public $options = []; /** @var rcube_imap_search_job[] Search jobs */ protected $jobs = []; /** @var int Time limit in seconds */ protected $timelimit = 0; /** @var array Search results */ protected $results; /** @var rcube_imap_generic IMAP connection object */ protected $conn; /** * Default constructor * * @param array $options IMAP connection options * @param rcube_imap_generic $conn IMAP connection object */ public function __construct($options, $conn) { $this->options = $options; $this->conn = $conn; } /** * Invoke search request to IMAP server * * @param array $folders List of IMAP folders to search in * @param string $str Search criteria * @param string $charset Search charset * @param string $sort_field Header field to sort by * @param bool $threading True if threaded listing is active */ public function exec($folders, $str, $charset = null, $sort_field = null, $threading = null) { $start = floor(microtime(true)); $results = new rcube_result_multifolder($folders); // start a search job for every folder to search in foreach ($folders as $folder) { // a complete result for this folder already exists $result = $this->results ? $this->results->get_set($folder) : false; if ($result && !$result->incomplete) { $results->add($result); } else { $search = is_array($str) && $str[$folder] ? $str[$folder] : $str; $job = new rcube_imap_search_job($folder, $search, $charset, $sort_field, $threading); $job->worker = $this; $this->jobs[] = $job; } } // execute jobs and gather results foreach ($this->jobs as $job) { // only run search if within the configured time limit // TODO: try to estimate the required time based on folder size and previous search performance if (!$this->timelimit || floor(microtime(true)) - $start < $this->timelimit) { $job->run(); } // add result (may have ->incomplete flag set) $results->add($job->get_result()); } return $results; } /** * Setter for timelimit property * * @param int $seconds Limit in seconds */ public function set_timelimit($seconds) { $this->timelimit = $seconds; } /** * Setter for previous (potentially incomplete) search results * * @param array $res Search result */ public function set_results($res) { $this->results = $res; } /** * Get connection to the IMAP server (used for single-thread mode) * * @return rcube_imap_generic IMAP connection object */ public function get_imap() { return $this->conn; } } /** * Stackable item to run the search on a specific IMAP folder */ class rcube_imap_search_job /* extends Stackable */ { /** @var rcube_imap_search The job worker */ public $worker; /** @var string IMAP folder to search in */ private $folder; /** @var string Search criteria */ private $search; /** @var string Search charset */ private $charset; /** @var string Header field to sort by */ private $sort_field; /** @var bool True if threaded listing is active */ private $threading; /** @var rcube_result_index|rcube_result_thread Search result */ private $result; /** * Class constructor * * @param string $folder IMAP folder to search in * @param string $str Search criteria * @param string $charset Search charset * @param string $sort_field Header field to sort by * @param bool $threading True if threaded listing is active */ public function __construct($folder, $str, $charset = null, $sort_field = null, $threading = false) { $this->folder = $folder; $this->search = $str; $this->charset = $charset; $this->sort_field = $sort_field; $this->threading = $threading; $this->result = new rcube_result_index($folder); $this->result->incomplete = true; } /** * Executes the IMAP search */ public function run() { $this->result = $this->search_index(); } /** * Copy of rcube_imap::search_index() * * @return rcube_result_index|rcube_result_thread Search result */ protected function search_index() { $criteria = $this->search; $charset = $this->charset; $imap = $this->worker->get_imap(); if (!$imap->connected()) { trigger_error("No IMAP connection for $this->folder", E_USER_WARNING); if ($this->threading) { return new rcube_result_thread($this->folder); } else { return new rcube_result_index($this->folder); } } if ($this->worker->options['skip_deleted'] && !preg_match('/UNDELETED/', $criteria)) { $criteria = 'UNDELETED '.$criteria; } // unset CHARSET if criteria string is ASCII, this way // SEARCH won't be re-sent after "unsupported charset" response if ($charset && $charset != 'US-ASCII' && is_ascii($criteria)) { $charset = 'US-ASCII'; } if ($this->threading) { $threads = $imap->thread($this->folder, $this->threading, $criteria, true, $charset); // Error, try with US-ASCII (RFC5256: SORT/THREAD must support US-ASCII and UTF-8, // but I've seen that Courier doesn't support UTF-8) if ($threads->is_error() && $charset && $charset != 'US-ASCII') { $threads = $imap->thread($this->folder, $this->threading, rcube_imap::convert_criteria($criteria, $charset), true, 'US-ASCII'); } return $threads; } if ($this->sort_field) { $messages = $imap->sort($this->folder, $this->sort_field, $criteria, true, $charset); // Error, try with US-ASCII (RFC5256: SORT/THREAD must support US-ASCII and UTF-8, // but I've seen Courier with disabled UTF-8 support) if ($messages->is_error() && $charset && $charset != 'US-ASCII') { $messages = $imap->sort($this->folder, $this->sort_field, rcube_imap::convert_criteria($criteria, $charset), true, 'US-ASCII'); } } if (empty($messages) || $messages->is_error()) { $messages = $imap->search($this->folder, ($charset && $charset != 'US-ASCII' ? "CHARSET $charset " : '') . $criteria, true); // Error, try with US-ASCII (some servers may support only US-ASCII) if ($messages->is_error() && $charset && $charset != 'US-ASCII') { $messages = $imap->search($this->folder, rcube_imap::convert_criteria($criteria, $charset), true); } } return $messages; } /** * Return the saved search set as a array * * @return array Search set */ public function get_search_set() { return [ $this->search, $this->result, $this->charset, $this->sort_field, $this->threading, ]; } /** * Returns the search result. * * @return rcube_result_index|rcube_result_thread Search result */ public function get_result() { return $this->result; } }