Commit Graph

985 Commits (e5b7bcd20792021a8fe18718fae7de18263fff01)

Author SHA1 Message Date
Aleksander Machniak 9796cd2063 Merge branch 'dev-rfc822-preview'
Conflicts:
	CHANGELOG
	program/steps/mail/show.inc
9 years ago
Aleksander Machniak 9634169647 Bump version number to 1.3-beta 9 years ago
Aleksander Machniak 0eece8222b Fix autoloading of 'html' class and improve autoloader performance 9 years ago
Aleksander Machniak 5e406f7b7e Disable links list when converting html2text for spellchecking 9 years ago
Aleksander Machniak 52106ffd39 Fix bug where rcube_contacts::get_record() could return cached result when requested record wasn't found (#5218) 9 years ago
Aleksander Machniak e2e56261b9 Fix handling of long script/style tags when converting to text 9 years ago
Aleksander Machniak a0f38f5fd8 Small code style improvements 9 years ago
Aleksander Machniak e8ab3d96bd Fix converting mail addresses with @www. into mailto links (#5197) 9 years ago
Aleksander Machniak d01c06eded CS fixes 9 years ago
Bostjan Skufca 70a8236cd5 mailbox/listing: Make server response for large mailbox listing faster when using threaded view
Symptom
=======
When using roundcube with mailboxes with over 60k messages, list
view was way faster than viewing in threaded view.

Mailbox index view timing:    ~360 ms
Mailbox threaded view timing: ~800 ms

Resolution
==========
Use native PHP array manipulation functions instead of rolling custom
string data reversal implementation using strpos() and substr() in a
'while' loop.

This optimization is already present in index view handler, but was missing
from threaded view.

Results after optimization
==========================
Both average out around ~360 ms response time.
9 years ago
Bernardo Silva c72446a8fc Allow pattern attribute in input
"pattern" included in the list of allowed attributes in the input tag
9 years ago
Aleksander Machniak 6f2c007d1b CS fixes: Replace use of "bool ? true : false" with just "bool" 9 years ago
Aleksander Machniak 5c253dd59e Fix so SPECIAL-USE assignments are forced only until user sets special folders (#4782)
The old behaviour where SPECIAL-USE has always a prio can be bringed back
by setting lock_special_folders=false and adding it to dont_override.
9 years ago
Aleksander Machniak 7462095f60 Small code improvements 9 years ago
Aleksander Machniak e8b6e726f6 Add message menu with viewsource and edit actions in message/rfc822 preview 9 years ago
Aleksander Machniak ce3105c58f Reply/Reply-All/Forward/Change-format buttons for message/rfc822 preview 9 years ago
Aleksander Machniak 323fa20bc8 Message/rfc822 attachment preview (#5054) 9 years ago
Aleksander Machniak 05972d7b33 Refer to Github issues instead of Trac 9 years ago
Aleksander Machniak 791ee65d2e Fix so contactlist_fields option can be set via config file 9 years ago
Aleksander Machniak 348ec70f12 Export vCard PHOTO with "ENCODING=b" (instead of "ENCODING=B") as specified in RFC2426 9 years ago
Thomas Bruederli 4a408843b0 Protect download urls against CSRF using unique request tokens (#1490642)
Send X-Frame-Options headers with every HTTP response
9 years ago
Aleksander Machniak d4df3748cf Require Net_Socket >= 1.0.12 (because of timeout=0 bugfix) 9 years ago
Aleksander Machniak ca34ba139e CS fixes 9 years ago
Aleksander Machniak 4c0cb96a48 Enigma: Fix missing html/plain switch on multipart/signed messages (#1490649) 9 years ago
Aleksander Machniak e91c35c534 Fix background color on selected and focused addressbook 9 years ago
Aleksander Machniak 8dc756f319 Fix bug in long recipients list parsing for cases where recipient name contained @-char (#1490653) 9 years ago
Aleksander Machniak 53fa08d8ae Enigma: Code refactoring with better handling of encrypted-inside-encrypted (e.g. forwarded) and signed+ncrypted messages 9 years ago
Aleksander Machniak c9e2ab488e Enigma: Fix handling of encrypted + signed messages (#1490632) 9 years ago
Aleksander Machniak 0e77b6f1b3 Fix regression where xml mode could be used to parse xhtml messages causing empty result 9 years ago
Aleksander Machniak bffca14d96 Exit when imagecreatetruecolor() fails 9 years ago
Aleksander Machniak 22a018d082 Merge branch 'dev-svg' 9 years ago
Aleksander Machniak ed1d212ae2 Improved SVG cleanup code 9 years ago
Aleksander Machniak 023d3eb031 Refactor wash_attribs() - fix regressions 9 years ago
Aleksander Machniak d5f7490b08 Fix PHP Fatal error: Can't use function return value in write context 9 years ago
Thomas B 66d4ef6e31 Merge pull request #316 from namesco/prevent-blank-contactnames
Ensure roundcube doesn't render contact names as blank
9 years ago
Aleksander Machniak a1fdb205f8 Extend rcube_washtml with SVG support 9 years ago
Francis Russell 8f71b164fd Make TLS method for IMAP parameterisable. 9 years ago
Francis Russell 191a6a6805 Enable use of TLSv1.1 and TLSv1.2 for IMAP. 9 years ago
James Buncle fd0244dabf Ensure roundcube doesn't render contact names as blank (when the name is whitespace) 9 years ago
Aleksander Machniak 4e1aa60c16 Make possible to disable authentication via rcube_smtp::connect() arguments (#1490621) 9 years ago
Aleksander Machniak 39137fe292 CS fixes 9 years ago
Aleksander Machniak d72e5afb47 Fix PHP7 warning "session_start(): Session callback expects true/false return value" (#1490624) 9 years ago
Aleksander Machniak 6521c20768 Add INBOX to the list of folders only if no filter and no prefix was specified 9 years ago
Aleksander Machniak cd219a45dd Fix regression where some message attachments could be missing on edit/forward (#1490608) 9 years ago
Aleksander Machniak be346095a0 Fix handling of message/rfc822 attachments on replies and forwards (#1490607) 9 years ago
Aleksander Machniak 3296965f41 Force arg_separator in http_build_query() 9 years ago
Aleksander Machniak 87cb24d873 Don't add redundant URL arguments to logged error messages 9 years ago
Aleksander Machniak cbe701ac4a Fix rcube_utils::words_match() to work with mixed/invalid/binary content (T844) 9 years ago
Aleksander Machniak 7e3298753a Use ternary operator where aplicable 9 years ago
Aleksander Machniak a15d877ba8 Added brute-force attack prevention via login rate limit (#1490566) 9 years ago
Aleksander Machniak 454b0b1ca9 Remove deprecated rcmail and rcube_imap methods 9 years ago
Aleksander Machniak 9234903287 Fix HTML sanitizer to skip <!-- node type X --> in output (#1490583) 9 years ago
Aleksander Machniak eca19d65b5 Optimized some regular expressions 9 years ago
Aleksander Machniak 2ff3385788 Fix warning when enchant_broker_list_dicts() does not return an array 9 years ago
Aleksander Machniak 91dc7fabbc Small improvements in HTML to text conversion.
Better handling of <body> and trailing spaces, and </p><div> or <br><div>.
9 years ago
Aleksander Machniak c8c4cafb1f Add possibility to define date format in write operations for ldap attributes (#1488741) 9 years ago
Aleksander Machniak a03233ceba CS fixes 9 years ago
Aleksander Machniak 354cff8b26 Some more CS fixes 9 years ago
Aleksander Machniak 7fb0aedc9b Fix fetchMIMEHeaders() so it really works with multiple parts, various CS fixes 9 years ago
Aleksander Machniak b813011902 Remove unused property 9 years ago
Aleksander Machniak 85f4209074 Code improvements: CS fixes, improved internal cache cleanup on folder selection, removed redundant cache 9 years ago
Aleksander Machniak aada285660 Simplify change_subscription() code, removed unused vars 9 years ago
Aleksander Machniak 6a94f69bd1 Remove code for Mail_mime<1.9, we already require Mail_mime-1.10 for other reasons 9 years ago
Aleksander Machniak 0ee57208b3 Add possibility to set PDO::ATTR_PREFETCH and PDO::ATTR_TIMEOUT via DSN string 9 years ago
Aleksander Machniak 1b61a48eec Get rid of mb_check_encoding() before mb_convert_encoding() for better performance, CS fixes 9 years ago
Aleksander Machniak 83345af059 Log charset conversion warning only when no function was found, not when the string was invalid 9 years ago
Aleksander Machniak 7d71c48952 s/RCMAIL_VERSION/RCUBE_VERSION/ 9 years ago
Aleksander Machniak 7bbb86f78a Session read handler must return a string in PHP7 9 years ago
Aleksander Machniak b2b9b591ce Fix handling random_bytes() errors in PHP 7.0.0RC3 9 years ago
Aleksander Machniak df0b4f3437 Make sure an email address is valid when replacing it with mailto: link 9 years ago
Thomas Bruederli db390a27fb Do not tokenize search string when querying in strict mode (#1490504) 9 years ago
Aleksander Machniak fef8537adb Improved multi-folder search performance on sort order change or list page change
by proper index serialization and skipped redundant sorting
9 years ago
Thomas Bruederli f7f75ff7d1 Unify detection of pgp/mime message part 9 years ago
Aleksander Machniak e85bbc9e9c random_bytes() can throw an exception in some cases, since PHP 7.0.0rc3 9 years ago
Aleksander Machniak 63e7937d02 Change so rcube_message class does not depend on $_GET parameters 9 years ago
Aleksander Machniak 26086981a2 Improve randomness of security tokens (#1490529) 9 years ago
Aleksander Machniak f75bc5c24b Use random security tokens instead of hashes based on encryption key (#1490404) 9 years ago
Aleksander Machniak e4c66080a8 Improved encrypt/decrypt methods with option to choose the cipher_method (#1489719) 9 years ago
Aleksander Machniak 4c53e78915 Fix printing required ini options values in error message 9 years ago
Aleksander Machniak 427ab2f393 Optimize folder_size() on Cyrus IMAP by using special folder annotation (#1490514) 9 years ago
Aleksander Machniak 5eb9c70b60 Added method to determine IMAP server vendor, for future use 9 years ago
Aleksander Machniak 86b241df63 CS fixes 9 years ago
Aleksander Machniak 4ceff8f353 Make optional hidding of folders with name starting with a dot - imap_skip_hidden_folders (#1490468) 9 years ago
Aleksander Machniak f00e1f5333 CS fixes 9 years ago
Aleksander Machniak 6f249b0e38 Change code so versions of Mail_mime before and after 1.9.0 are supported 9 years ago
Aleksander Machniak 7a42173a16 Simplify rcube_utils::check_ip() 9 years ago
Aleksander Machniak 6b31846c43 Fix IPv6 address validation on PHP with disabled IPv6 support 9 years ago
Aleksander Machniak f4c512336d Fix "washing" of style elements wrapped into many lines 9 years ago
Thomas B. cf69daf896 Merge pull request #288 from ThijsFeryn/fnnonempty
Emptying the display name when the display name is the main e-mail ad…
9 years ago
Aleksander Machniak 559e5d7bd4 Fix unintentional error_reporting change 9 years ago
Aleksander Machniak 36bd93f138 PHP7: Fixed some E_WARNING errors that previously were E_STRICT 9 years ago
Aleksander Machniak a7efdd7c5d Make Mail_mime>=1.9.0 a requirement, fix compat. errors 9 years ago
Aleksander Machniak 1b8ca08e5b Added GSSAPI/Kerberos authentication plugin - krb_authentication 9 years ago
Aleksander Machniak 0868c2e841 Make sure list page is never set to 0 (#1490458)
This should fix the issue where after message move wrong message was
added to the list and the list counter was invalid.
9 years ago
Aleksander Machniak 5ed8ade763 Fix bug where some plugins could be initialized more than one time 9 years ago
Aleksander Machniak 93e64008a6 Small code improvements 9 years ago
Aleksander Machniak c21f95f626 Fix bug where new messages weren't added to the list in search mode 9 years ago
Aleksander Machniak 6c7be218f7 Revert create_folder() behaviour change where the method didn't fail if folder already existed.
This should not be the default behaviour. It could likely
become an optional functionality, however we should keep the method simple.
9 years ago
Aleksander Machniak 9d78c68cbf Fix so imap folder attribute comparisons are case-insensitive (#1490466)
+ make in_array_nocase() much faster for ASCII strings
9 years ago
ThijsFeryn 58f6f19505 Emptying the display name when the display name is the main e-mail address contradicts lines 731 till 734 9 years ago
Aleksander Machniak b71eef6d7d Don't use private properties of Net_SMTP object 9 years ago
Aleksander Machniak 9335f9cede Reset internal cache index in close() 9 years ago
Aleksander Machniak e2bceaefe6 Support more secure hashing algorithms for auth cookie - configurable by PHP's session.hash_function (#1490403) 10 years ago
Aleksander Machniak 843643b1bd Fix multi-folder search result sorting by arrival date (#1490450) 10 years ago
Aleksander Machniak 212e332cef Get rid of array_walk() when simple foreach() can be used 10 years ago
Aleksander Machniak d2890372c1 Fix Fatal error after last commit 10 years ago
Aleksander Machniak 6a8c4fc73b Fix issue when first search() argument is not an array 10 years ago
Aleksander Machniak 8447bae77c Require Mbstring and OpenSSL extensions (#1490415) - remove redundant code 10 years ago
Aleksander Machniak f7427f151e Get rid of Mail_mimeDecode package dependency (#1490416) 10 years ago
Aleksander Machniak 9aae1b7fc3 Fix so microseconds macro (u) in log_date_format works (#1490446) 10 years ago
Aleksander Machniak 25c8fe4eeb Fix handling of non-break spaces in html to text conversion (#1490436) 10 years ago
Aleksander Machniak b92a66b3ee Make has_(html|text)_part and first_(html|text)_part methods consistent in arguments and functionality 10 years ago
Aleksander Machniak 36a7f57345 Modify rcube_smtp::send_mail() so it is possible to send message by
specifying only the message stream no headers, it's for cases when
the stream already contains a complete message.
10 years ago
Aleksander Machniak ff40683404 Fix so links with href == content aren't added to links list on html to text conversion (#1490434) 10 years ago
Aleksander Machniak 26a00e76be Fix race-condition in saving user preferences and loading plugin config (#1490431) 10 years ago
Aleksander Machniak a958748947 CS fixes 10 years ago
Thomas Bruederli d375b20225 Suppress E_DEPRECATED errors after change in [4ab77dd1] 10 years ago
Thomas Bruederli 4ab77dd13e Check for PEAR class before accessing it. With new composer modules this isn't necessary in the include path anymore 10 years ago
Aleksander Machniak a84f0b65dc Fix undefined variable use after recent changes (#1490401) 10 years ago
Aleksander Machniak 3994b3a26c Installer: Use openssl_random_pseudo_bytes() (if available) to generate des_key (#1490402) 10 years ago
Aleksander Machniak 0c08b04778 Fix issues when using moduserprefs.sh without --user argument (#1490399) 10 years ago
Aleksander Machniak 59d11dce33 Small code improvement 10 years ago
Aleksander Machniak c4ad7edd53 Fix font artifacts in text2html conversion (#1490353)
Use white-space:nowrap elements instead of unicode word-joiner character
10 years ago
Aleksander Machniak b120d42f5b Improved cache index changes detection (again) 10 years ago
Aleksander Machniak 044c1a0523 Simplified code + some CS fixes 10 years ago
Aleksander Machniak 652e11f82e Fix missing index update after write() call 10 years ago
Aleksander Machniak b1e35a685c Performance: Improve changes detection, so we update index only if needed 10 years ago
Aleksander Machniak 11d5e7c100 Implemented memcache_debug also for session operations 10 years ago
Aleksander Machniak 9ed8584c3e Count memcache/apc debug lines 10 years ago
Aleksander Machniak fff8e0f2ae Fix possible memcache/apc cache data consistency issues (#1490390)
And removed unused code
10 years ago
Aleksander Machniak 247b845a8e Workaround possible issue where some keys were ignored when deleting cached entries
by key name prefix and keys index is in inconsistent state (does not contain all keys)
10 years ago
Aleksander Machniak 44708ec647 Implemented memcache_debug and apc_debug options for cache operations tracking 10 years ago
Aleksander Machniak bb21913387 Fix mb_substitute_character() use 10 years ago
Aleksander Machniak 966a9086a5 Fix rcube_charset::clean() for case when mbstring and iconv are not installed 10 years ago
Aleksander Machniak 1422b0823e Fix bug where messages count was not updated after message move/delete with skip_deleted=false (#1490372) 10 years ago
Thomas Bruederli 0f63418b7e Use Net_LDAP3::domain_root_dn() to resolve the domain DN for the %dc variable; replaces PR #268 10 years ago
Aleksander Machniak 1d0ffdc2ac Fix decoding array headers 10 years ago
Aleksander Machniak 5b737d9f8d Fix bug where some unrelated attachments in multipart/related message were not listed (#1490355) 10 years ago
Aleksander Machniak d86ff98339 Fix font artifact in Google Chrome on Windows (#1490353) 10 years ago
Aleksander Machniak 53cbebf8ad Fix handling spaces after <br> on html2text conversion 10 years ago
Aleksander Machniak d61d668b64 Remove useless code 10 years ago
Aleksander Machniak 292292df32 Fix so unrecognized TNEF attachments are displayed on the list of attachments (#1490351) 10 years ago
Aleksander Machniak 98e4614b0d Fix so text/calendar parts are listed as attachments even if not marked as such (#1490325) 10 years ago
Aleksander Machniak 48d01837a0 Fix tables listing routine on mysql and postgres so it skips system or other database tables and views (#1490337) 10 years ago
Aleksander Machniak 5a4f3f8266 Remove Kolab's hack for Cyrus Murder bug in SETANNOTATION - it's not needed anymore 10 years ago
Aleksander Machniak 3d6ce95009 Fix PHP warning: Non-static method PEAR::setErrorHandling() should not be called statically (#1490343) 10 years ago
Aleksander Machniak 8eeb721bd6 Fix unintended DB session expiration - lost variable in refactoring (#1490316) 10 years ago
Thomas Bruederli e2fb340289 Remove obsolete mt_srand() calls 10 years ago
Thomas Bruederli a74d023903 Generate random hash for the per-user local storage prefix (#1490279); only unserialize user prefs once 10 years ago
Aleksander Machniak 496972bf95 Fix backtick character handling in sql queries (#1490312) 10 years ago
Thomas Bruederli 5def0d8e9e Ignore plugin loading filter if force parameter is set 10 years ago
Thomas Bruederli 87ff88d550 Fix session garbage collector handler registration after refactoring 10 years ago
Thomas Bruederli aafc050f55 Fix rcube_contacts::search() calls with empty search string but $required argument 10 years ago
Aleksander Machniak 9af8e22b8e Plugin API: added message_part_body hook, fixes around message structure handling by plugins 10 years ago
Thomas B. 2755471f33 Merge pull request #257 from corbosman/session_refactor
Merging session refactor into master
10 years ago
Aleksander Machniak 6cdffbf1b6 Fix "PHP Fatal error: Using $this when not in object context" 10 years ago
corbosman 82058d7af2 minor fixes 10 years ago
Thomas Bruederli 8e333bcb66 Only normalize search term when searching in 'words' column 10 years ago
Thomas Bruederli 3bd0277261 Fix full-text searching in a given list of fields 10 years ago
Thomas Bruederli fd259bed69 Adapt fulltext search in local address book to ignore words order 10 years ago
Thomas Bruederli c32998084d Add untility function to match strings ignoring word order 10 years ago
Thomas Bruederli 36ee2c8427 Improve LDAP search by ignoring words order in fuzzy substring matching mode 10 years ago
Thomas Bruederli 83eeec6c06 Add utility function to compose a full-text-like LDAP search filter 10 years ago
corbosman 6e3d249655 remove commented out code 10 years ago
corbosman b4be89bdac use factory 10 years ago
Aleksander Machniak a4ef49d6cf Fix duplicate entry on timezones list in rcube_config::timezone_name_from_abbr() (#1490293) 10 years ago
Aleksander Machniak 5aa1d2005b Fix parsing ldap URI for cases where hostname is non-empty 10 years ago
Aleksander Machniak 759566fe99 Fix parsing invalid HTML messages with BOM after <!DOCTYPE> (#1490291) 10 years ago
Aleksander Machniak b59b72cc30 Fix "Non-static method PEAR::isError() should not be called statically" errors (#1490281) 10 years ago
Aleksander Machniak 2a31f6dbd7 Reset default db_max_allowed_packet, fix max packet size detection 10 years ago
Aleksander Machniak 83f1f6b12f Improve compose_search_name() to not return "email@address <email@address>" entries
which may happen for contacts without name(s)
10 years ago
Aleksander Machniak 8f485469c7 Add possibility to configure max_allowed_packet value for all database engines (#1490283) 10 years ago
Aleksander Machniak 62b847bea3 Fix "PHP Fatal error: Call to a member function getMessage() on a non-object" 10 years ago
Aleksander Machniak 75e8a7d313 Really make sure plugins aren't initialized twice 10 years ago
Aleksander Machniak 4d90e6596d Use also Organization field as a fallback if contact has no name(s) specified 10 years ago
Aleksander Machniak 6c8cbe3ee5 Fix regression where require_plugin() wasn't initializing the plugin 10 years ago
Aleksander Machniak f070da7c27 Fix fatal errors on systems without mbstring extension or mb_regex_encoding() function (#1490280) 10 years ago
Aleksander Machniak bd82526e41 Fix missing or not up-to-date CATEGORIES entry in vCard export (#1490277) 10 years ago
Aleksander Machniak c7b77b9179 Fix performance of rcube_db_mysql::get_variable()
As currently we're using this to find only max_allowed_packet value,
it is better to use "SHOW VARIABLES LIKE ?" instead of asking for all variables.
10 years ago
Aleksander Machniak 13e0a6556f Fix handling of some improper constructs in format=flowed text as per the RFC3676[4.5] (#1490284) 10 years ago
corbosman 4df4ab5007 session refactor and add redis driver 10 years ago
Aleksander Machniak 50b04366ee Merge branch 'master' of github.com:roundcube/roundcubemail
Conflicts:
	CHANGELOG
10 years ago
Aleksander Machniak 81d4ff214e Fix setting max packet size for DB caches and check packet size also in shared cache 10 years ago
Aleksander Machniak 3665d1e8ec Merge pull request #259 from corbosman/plugin_preload
Plugin preload
10 years ago
Aleksander Machniak 3779b67a9c Set version number to 1.2-git 10 years ago
Thomas B. 38b42e96af Merge pull request #265 from kanarip/master
Allow the timeout and retry interval for memcached to be configured
10 years ago
Jeroen van Meeuwen (Kolab Systems) c3e441044d Allow the timeout and retry interval for memcached servers to be configured 10 years ago
Thomas Bruederli 2f8b1036da Bump version and copyright year 10 years ago
corbosman de89d46be2 Load plugins before sessions have started
Move the plugin loading phase to before sessions have started allowing plugins to add session drivers.  Plugins that want to use this should define an "onload" method in their plugins. This method does not have access to variables like $task as they are not yet initialised at that time.
10 years ago
Aleksander Machniak 09d52dbb67 Fix some typos in comments 10 years ago
Aleksander Machniak 20740a9650 Fix error in exec_hook() in case some hook handler was unregistered before 10 years ago
Aleksander Machniak e17decc4c2 Better handle log/temp directory misconfiguration 10 years ago
Aleksander Machniak e8fc8d303a Fix handling of GETANNOTATION errors - return NULL on error as documented 10 years ago
Aleksander Machniak 0a5841702f Fix exec_hook() so handlers added inside the hook are not omitted 10 years ago
Aleksander Machniak a3fa844aad Make logged SMTP errors more verbose - log also real server response and codes 10 years ago
Aleksander Machniak bf99c50cc1 Fix bug where empty fieldmap config entries caused empty results of ldap search (#1490229) 10 years ago
Thomas Bruederli ef29153a32 Improve display of pgp/mime and s/mime messges. Reverts commit f4154d91 10 years ago
Aleksander Machniak 786aa0725e Fix XSS issue in style attribute handling (#1490227) 10 years ago
Aleksander Machniak 8c2075b9fc Remove hook aliases deprecated long time ago, CS fixes 10 years ago
Aleksander Machniak 7b924535fd CS fixes 10 years ago