Projects
Kolab:3.4
kolab-syncroton
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 51
View file
kolab-syncroton.spec
Changed
@@ -27,8 +27,8 @@ %global _ap_sysconfdir %{_sysconfdir}/%{httpd_name} Name: kolab-syncroton -Version: 2.2.4 -Release: 5%{?dist} +Version: 2.2.5 +Release: 1%{?dist} Summary: ActiveSync for Kolab Groupware Group: Applications/Internet @@ -39,10 +39,6 @@ Source1: kolab-syncroton.logrotate -Patch1: kolab-syncroton-2.2.4-fix-from-header-displayname.patch -Patch2: kolab-syncroton-2.2.4-dont-omit-junk-folder.patch -Patch3: kolab-syncroton-2.2.4-fix-recode-message-boundary-handling.patch - BuildArch: noarch # Use this build requirement to make sure we are using @@ -76,10 +72,6 @@ %prep %setup -q -n %{name}-%{version} -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 - rm -rf \ lib/ext/Auth/ \ lib/ext/MDB2/ \ @@ -207,6 +199,13 @@ %attr(0770,%{httpd_user},%{httpd_group}) %{_var}/log/%{name} %changelog +* Sun Apr 6 2014 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 2.2.5-1 +- New upstream version +- #2664 - Fix for devices that do not support empty Sync responses +- Fix synchronization of task importance +- #2845 - Fix invalid email message identifier in Move response +- Fix issues in recode_message() - wrong boundaries handling + * Tue Feb 11 2014 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 2.2.4-5 - Rebuild against up-to-date roundcubemail-plugins-kolab - Fix memory consumption issues on very large result sets (#2828)
View file
kolab-syncroton-2.2.4-dont-omit-junk-folder.patch
Deleted
@@ -1,37 +0,0 @@ -diff -ur kolab-syncroton-2.2.4.orig/lib/kolab_sync_backend.php kolab-syncroton-2.2.4/lib/kolab_sync_backend.php ---- kolab-syncroton-2.2.4.orig/lib/kolab_sync_backend.php 2014-01-24 12:23:35.000000000 +0100 -+++ kolab-syncroton-2.2.4/lib/kolab_sync_backend.php 2014-02-06 10:20:58.351064191 +0100 -@@ -566,13 +566,13 @@ - - // below we support additionally all mail folders - $supported_types[] = 'mail'; -- $supported_types[] = 'mail.junkemails'; -+ $supported_types[] = 'mail.junkemail'; - - // get configured special folders - $special_folders = array(); - $map = array( - 'drafts' => 'mail.drafts', -- 'junk' => 'mail.junkemails', -+ 'junk' => 'mail.junkemail', - 'sent' => 'mail.sentitems', - 'trash' => 'mail.wastebasket', - ); -@@ -585,7 +585,7 @@ - - // get folders list(s) - if (($mode & $modes['ALL_PERSONAL']) || ($mode & $modes['ALL_OTHER']) || ($mode & $modes['ALL_SHARED'])) { -- $all_folders = $this->storage->list_folders(); -+ $all_folders = $this->storage->list_folders(); - if (($mode & $modes['SUB_PERSONAL']) || ($mode & $modes['SUB_OTHER']) || ($mode & $modes['SUB_SHARED'])) { - $subscribed_folders = $this->storage->list_folders_subscribed(); - } -@@ -602,7 +602,7 @@ - - $type = $foldertypes[$folder] ?: 'mail'; - if ($type == 'mail' && isset($special_folders[$folder])) { -- $type == $special_folders[$folder]; -+ $type = $special_folders[$folder]; - } - - if (!in_array($type, $supported_types)) {
View file
kolab-syncroton-2.2.4-fix-from-and-recode-collated.patch
Deleted
@@ -1,88 +0,0 @@ -diff -ur kolab-syncroton-2.2.4.orig/lib/kolab_sync_message.php kolab-syncroton-2.2.4/lib/kolab_sync_message.php ---- kolab-syncroton-2.2.4.orig/lib/kolab_sync_message.php 2014-01-24 12:23:35.000000000 +0100 -+++ kolab-syncroton-2.2.4/lib/kolab_sync_message.php 2014-02-06 17:58:49.433769832 +0100 -@@ -169,6 +169,22 @@ - if (empty($headers['From'])) { - $headers['From'] = $this->get_identity(); - } -+ // make sure there's sender name in From: -+ else if ($rcube->config->get('activesync_fix_from') -+ && preg_match('/^<?((\S+|("[^"]+"))@\S+)>?$/', trim($headers['From']), $m) -+ ) { -+ $identities = kolab_sync::get_instance()->user->list_identities(); -+ $email = $m[1]; -+ -+ foreach ((array) $identities as $ident) { -+ if ($ident['email'] == $email) { -+ if ($ident['name']) { -+ $headers['From'] = format_email_recipient($email, $ident['name']); -+ } -+ break; -+ } -+ } -+ } - - if (empty($headers['Message-ID'])) { - $headers['Message-ID'] = $rcube->gen_message_id(); -@@ -297,15 +313,15 @@ - $hdrs = self::parse_headers($headers); - - // multipart message -- if (preg_match('/boundary="?([a-z0-9-_]+)"?/i', $hdrs['Content-Type'], $matches)) { -+ if (preg_match('/boundary="?([a-z0-9-\'\(\)+_\,\.\/:=\? ]+)"?/i', $hdrs['Content-Type'], $matches)) { - $boundary = '--' . $matches[1]; - $message = explode($boundary, $message); - - for ($x=1, $parts = count($message) - 1; $x<$parts; $x++) { -- $message[$x] = "\r\n" . self::recode_message($message[$x]); -+ $message[$x] = "\r\n" . self::recode_message(ltrim($message[$x])); - } - -- return $headers . "\r\n\r\n" . implode($boundary, $message); -+ return $headers . "\r\n\r\n" . implode($boundary , $message); - } - - // single part -Only in kolab-syncroton-2.2.4/lib: kolab_sync_message.php.orig -diff -ur kolab-syncroton-2.2.4.orig/tests/message.php kolab-syncroton-2.2.4/tests/message.php ---- kolab-syncroton-2.2.4.orig/tests/message.php 2014-01-24 12:23:35.000000000 +0100 -+++ kolab-syncroton-2.2.4/tests/message.php 2014-02-06 17:58:49.433769832 +0100 -@@ -135,4 +135,17 @@ - - $this->assertEquals($result, $message); - } -+ -+ /** -+ * Test recoding the message -+ */ -+ function test_recode_message_4() -+ { -+ $source = file_get_contents(TESTS_DIR . '/src/mail.recode4'); -+ $result = file_get_contents(TESTS_DIR . '/src/mail.recode4.out'); -+ -+ $message = kolab_sync_message::recode_message($source); -+ -+ $this->assertEquals($result, $message); -+ } - } -diff -ur kolab-syncroton-2.2.4.orig/tests/src/mail.recode2.out kolab-syncroton-2.2.4/tests/src/mail.recode2.out ---- kolab-syncroton-2.2.4.orig/tests/src/mail.recode2.out 2014-01-24 12:23:35.000000000 +0100 -+++ kolab-syncroton-2.2.4/tests/src/mail.recode2.out 2014-02-06 17:58:49.433769832 +0100 -@@ -9,7 +9,6 @@ - - This is a multi-part message in MIME format. - --------------000801030509090203070207 -- - Content-Type: multipart/alternative; - boundary="------------060305070900000101080707" - -@@ -31,7 +30,6 @@ - --------------060305070900000101080707-- - - --------------000801030509090203070207 -- - Content-Type: application/pdf; - name="Weihnachtsbrief13.pdf" - Content-Transfer-Encoding: base64 -Only in kolab-syncroton-2.2.4/tests/src: mail.recode4 -Only in kolab-syncroton-2.2.4/tests/src: mail.recode4.out
View file
kolab-syncroton-2.2.4-fix-from-header-displayname.patch
Deleted
@@ -1,28 +0,0 @@ -diff --git a/lib/kolab_sync_message.php b/lib/kolab_sync_message.php -index 79ac8d9..77892ee 100644 ---- a/lib/kolab_sync_message.php -+++ b/lib/kolab_sync_message.php -@@ -169,6 +169,22 @@ class kolab_sync_message - if (empty($headers['From'])) { - $headers['From'] = $this->get_identity(); - } -+ // make sure there's sender name in From: -+ else if ($rcube->config->get('activesync_fix_from') -+ && preg_match('/^<?((\S+|("[^"]+"))@\S+)>?$/', trim($headers['From']), $m) -+ ) { -+ $identities = kolab_sync::get_instance()->user->list_identities(); -+ $email = $m[1]; -+ -+ foreach ((array) $identities as $ident) { -+ if ($ident['email'] == $email) { -+ if ($ident['name']) { -+ $headers['From'] = format_email_recipient($email, $ident['name']); -+ } -+ break; -+ } -+ } -+ } - - if (empty($headers['Message-ID'])) { - $headers['Message-ID'] = $rcube->gen_message_id(); -
View file
kolab-syncroton-2.2.4-fix-recode-message-boundary-handling.patch
Deleted
@@ -1,173 +0,0 @@ -commit 80ebec3f4600f99d1ac693cc15b03f20d8d4a75a -Author: Aleksander Machniak <alec@alec.pl> -Date: Thu Feb 6 15:55:57 2014 +0100 - - Fix issues in recode_message() - wrong boundaries handling - -diff --git a/lib/kolab_sync_message.php b/lib/kolab_sync_message.php -index 79ac8d9..026d557 100644 ---- a/lib/kolab_sync_message.php -+++ b/lib/kolab_sync_message.php -@@ -297,15 +297,15 @@ class kolab_sync_message - $hdrs = self::parse_headers($headers); - - // multipart message -- if (preg_match('/boundary="?([a-z0-9-_]+)"?/i', $hdrs['Content-Type'], $matches)) { -+ if (preg_match('/boundary="?([a-z0-9-\'\(\)+_\,\.\/:=\? ]+)"?/i', $hdrs['Content-Type'], $matches)) { - $boundary = '--' . $matches[1]; - $message = explode($boundary, $message); - - for ($x=1, $parts = count($message) - 1; $x<$parts; $x++) { -- $message[$x] = "\r\n" . self::recode_message($message[$x]); -+ $message[$x] = "\r\n" . self::recode_message(ltrim($message[$x])); - } - -- return $headers . "\r\n\r\n" . implode($boundary, $message); -+ return $headers . "\r\n\r\n" . implode($boundary , $message); - } - - // single part -diff --git a/tests/message.php b/tests/message.php -index 19e1901..a49c5d1 100644 ---- a/tests/message.php -+++ b/tests/message.php -@@ -135,4 +135,17 @@ class message extends PHPUnit_Framework_TestCase - - $this->assertEquals($result, $message); - } -+ -+ /** -+ * Test recoding the message -+ */ -+ function test_recode_message_4() -+ { -+ $source = file_get_contents(TESTS_DIR . '/src/mail.recode4'); -+ $result = file_get_contents(TESTS_DIR . '/src/mail.recode4.out'); -+ -+ $message = kolab_sync_message::recode_message($source); -+ -+ $this->assertEquals($result, $message); -+ } - } -diff --git a/tests/src/mail.recode2.out b/tests/src/mail.recode2.out -index ff4c323..be03aae 100644 ---- a/tests/src/mail.recode2.out -+++ b/tests/src/mail.recode2.out -@@ -9,7 +9,6 @@ Content-Type: multipart/mixed; - - This is a multi-part message in MIME format. - --------------000801030509090203070207 -- - Content-Type: multipart/alternative; - boundary="------------060305070900000101080707" - -@@ -31,7 +30,6 @@ ZSBBZHZlbnRzZ3L832U8YnI+DQogIDwvYm9keT4NCjwvaHRtbD4= - --------------060305070900000101080707-- - - --------------000801030509090203070207 -- - Content-Type: application/pdf; - name="Weihnachtsbrief13.pdf" - Content-Transfer-Encoding: base64 -diff --git a/tests/src/mail.recode4 b/tests/src/mail.recode4 -new file mode 100644 -index 0000000..624766e ---- /dev/null -+++ b/tests/src/mail.recode4 -@@ -0,0 +1,47 @@ -+MIME-Version: 1.0 -+Content-Type: multipart/alternative; -+ boundary="=_421c567043d5df058671910ddb659fc5" -+Date: Thu, 06 Feb 2014 13:59:33 +0000 -+From: alec <test@test.cc> -+To: <test2@test.cc> -+Subject: test html + image -+Message-ID: <6c821c802bc5293e179f9bcb5d4d8279@klab.cc> -+User-Agent: Roundcube Webmail/1.0-git -+ -+--=_421c567043d5df058671910ddb659fc5 -+Content-Transfer-Encoding: 8bit -+Content-Type: text/plain; charset=UTF-8 -+ -+ -+ -+test message with inline image żąść -+ -+ -+--=_421c567043d5df058671910ddb659fc5 -+Content-Type: multipart/related; -+ boundary="=_61b68141aaee8dc5b321e6059b43bb78" -+ -+--=_61b68141aaee8dc5b321e6059b43bb78 -+Content-Transfer-Encoding: quoted-printable -+Content-Type: text/html; charset=UTF-8 -+ -+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> -+<html><body style=3D'font-size: 10pt; font-family: Verdana,Geneva,sans-seri= -+f'> -+<p>test message with inline image =C5=BC=C4=85=C5=9B=C4=87</p> -+<p><img src=3D"cid:139169517352f395455c016176663627@test.cc" alt=3D"logo.gif" /></p> -+</body></html> -+ -+--=_61b68141aaee8dc5b321e6059b43bb78 -+Content-Transfer-Encoding: base64 -+Content-ID: <139169517352f395455c016176663627@test.cc> -+Content-Type: image/jpeg; -+ name=logo.gif -+Content-Disposition: inline; -+ filename=logo.gif; -+ size=25745 -+ -+/9j/4AAQSkZJRgABAgEASABIAAD/4QqARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA -+--=_61b68141aaee8dc5b321e6059b43bb78-- -+ -+--=_421c567043d5df058671910ddb659fc5-- -diff --git a/tests/src/mail.recode4.out b/tests/src/mail.recode4.out -new file mode 100644 -index 0000000..e86db3f ---- /dev/null -+++ b/tests/src/mail.recode4.out -@@ -0,0 +1,43 @@ -+MIME-Version: 1.0 -+Content-Type: multipart/alternative; -+ boundary="=_421c567043d5df058671910ddb659fc5" -+Date: Thu, 06 Feb 2014 13:59:33 +0000 -+From: alec <test@test.cc> -+To: <test2@test.cc> -+Subject: test html + image -+Message-ID: <6c821c802bc5293e179f9bcb5d4d8279@klab.cc> -+User-Agent: Roundcube Webmail/1.0-git -+ -+--=_421c567043d5df058671910ddb659fc5 -+Content-Transfer-Encoding: base64 -+Content-Type: text/plain; charset=UTF-8 -+ -+IA0KDQp0ZXN0IG1lc3NhZ2Ugd2l0aCBpbmxpbmUgaW1hZ2UgxbzEhcWbxIc= -+--=_421c567043d5df058671910ddb659fc5 -+Content-Type: multipart/related; -+ boundary="=_61b68141aaee8dc5b321e6059b43bb78" -+ -+--=_61b68141aaee8dc5b321e6059b43bb78 -+Content-Transfer-Encoding: quoted-printable -+Content-Type: text/html; charset=UTF-8 -+ -+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> -+<html><body style=3D'font-size: 10pt; font-family: Verdana,Geneva,sans-seri= -+f'> -+<p>test message with inline image =C5=BC=C4=85=C5=9B=C4=87</p> -+<p><img src=3D"cid:139169517352f395455c016176663627@test.cc" alt=3D"logo.gif" /></p> -+</body></html> -+ -+--=_61b68141aaee8dc5b321e6059b43bb78 -+Content-Transfer-Encoding: base64 -+Content-ID: <139169517352f395455c016176663627@test.cc> -+Content-Type: image/jpeg; -+ name=logo.gif -+Content-Disposition: inline; -+ filename=logo.gif; -+ size=25745 -+ -+/9j/4AAQSkZJRgABAgEASABIAAD/4QqARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA -+--=_61b68141aaee8dc5b321e6059b43bb78-- -+ -+--=_421c567043d5df058671910ddb659fc5--
View file
debian.changelog
Changed
@@ -1,3 +1,13 @@ +kolab-syncroton (2.2.5-0~kolab1) unstable; urgency=low + + * New upstream version + * #2664 - Fix for devices that do not support empty Sync responses + * Fix synchronization of task importance + * #2845 - Fix invalid email message identifier in Move response + * Fix issues in recode_message() - wrong boundaries handling + + -- Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Sun, 6 Apr 2014 15:13:40 +0200 + kolab-syncroton (2.2.4-0~kolab5) unstable; urgency=low * Rebuild for memory consumption fix on very large result sets
View file
debian.series
Changed
@@ -1,2 +0,0 @@ -kolab-syncroton-2.2.4-fix-from-and-recode-collated.patch -p1 -kolab-syncroton-2.2.4-dont-omit-junk-folder.patch -p1
View file
kolab-syncroton-2.2.4.tar.gz/lib/ext/Syncroton/Command/Sync.php -> kolab-syncroton-2.2.5.tar.gz/lib/ext/Syncroton/Command/Sync.php
Changed
@@ -415,6 +415,9 @@ $collections = $this->_outputDom->createElementNS('uri:AirSync', 'Collections'); $totalChanges = 0; + + // Detect devices that do not support empty Sync reponse + $emptySyncSupported = !preg_match('/(meego|nokian800)/i', $this->_device->useragent); // continue only if there are changes or no time is left if ($this->_heartbeatInterval > 0) { @@ -888,7 +891,7 @@ if ($this->_logger instanceof Zend_Log) $this->_logger->info(__METHOD__ . '::' . __LINE__ . " current synckey is ". $collectionData->syncState->counter); - if ($collection->childNodes->length > 4 || $collectionData->syncState->counter != $collectionData->syncKey) { + if (!$emptySyncSupported || $collection->childNodes->length > 4 || $collectionData->syncState->counter != $collectionData->syncKey) { $collections->appendChild($collection); } }
View file
kolab-syncroton-2.2.4.tar.gz/lib/kolab_sync.php -> kolab-syncroton-2.2.5.tar.gz/lib/kolab_sync.php
Changed
@@ -43,7 +43,7 @@ public $user; const CHARSET = 'UTF-8'; - const VERSION = "2.2.4"; + const VERSION = "2.2.5"; /** @@ -173,22 +173,21 @@ public function authenticate($username, $password) { // use shared cache for kolab_auth plugin result (username canonification) - $cache = $this->get_cache_shared('activesync_auth'); - $cache_key = md5($username . '::' . $password); + $cache = $this->get_cache_shared('activesync_auth'); + $host = $this->select_host($username); + $cache_key = sha1($username . '::' . $host); if (!$cache || !($auth = $cache->get($cache_key))) { $auth = $this->plugins->exec_hook('authenticate', array( - 'host' => $this->select_host($username), + 'host' => $host, 'user' => $username, 'pass' => $password, - 'valid' => true, )); - if ($auth['valid'] && $cache) { + if (!$auth['abort'] && $cache) { $cache->set($cache_key, array( 'user' => $auth['user'], 'host' => $auth['host'], - 'valid' => $auth['valid'], )); } @@ -202,9 +201,7 @@ } // Authenticate - get Roundcube user ID - if ($auth['valid'] && !$auth['abort'] - && ($userid = $this->login($auth['user'], $auth['pass'], $auth['host'], $err)) - ) { + if (!$auth['abort'] && ($userid = $this->login($auth['user'], $auth['pass'], $auth['host'], $err))) { // set real username $this->username = $auth['user']; return $userid;
View file
kolab-syncroton-2.2.4.tar.gz/lib/kolab_sync_backend.php -> kolab-syncroton-2.2.5.tar.gz/lib/kolab_sync_backend.php
Changed
@@ -566,13 +566,13 @@ // below we support additionally all mail folders $supported_types[] = 'mail'; - $supported_types[] = 'mail.junkemails'; + $supported_types[] = 'mail.junkemail'; // get configured special folders $special_folders = array(); $map = array( 'drafts' => 'mail.drafts', - 'junk' => 'mail.junkemails', + 'junk' => 'mail.junkemail', 'sent' => 'mail.sentitems', 'trash' => 'mail.wastebasket', ); @@ -585,7 +585,7 @@ // get folders list(s) if (($mode & $modes['ALL_PERSONAL']) || ($mode & $modes['ALL_OTHER']) || ($mode & $modes['ALL_SHARED'])) { - $all_folders = $this->storage->list_folders(); + $all_folders = $this->storage->list_folders(); if (($mode & $modes['SUB_PERSONAL']) || ($mode & $modes['SUB_OTHER']) || ($mode & $modes['SUB_SHARED'])) { $subscribed_folders = $this->storage->list_folders_subscribed(); } @@ -602,7 +602,7 @@ $type = $foldertypes[$folder] ?: 'mail'; if ($type == 'mail' && isset($special_folders[$folder])) { - $type == $special_folders[$folder]; + $type = $special_folders[$folder]; } if (!in_array($type, $supported_types)) {
View file
kolab-syncroton-2.2.4.tar.gz/lib/kolab_sync_data.php -> kolab-syncroton-2.2.5.tar.gz/lib/kolab_sync_data.php
Changed
@@ -1199,7 +1199,18 @@ // convert to UTC if needed if ($tz_name != 'UTC') { - $date->setTimezone(new DateTimeZone('UTC')); + $utc = new DateTimeZone('UTC'); + // safe dateonly object conversion to UTC + // note: _dateonly flag is set by libkolab e.g. for birthdays + if ($date->_dateonly) { + // avoid time change + $date = new DateTime($date->format('Y-m-d'), $utc); + // set time to noon to avoid timezone troubles + $date->setTime(12, 0, 0); + } + else { + $date->setTimezone($utc); + } } } else { @@ -1410,6 +1421,7 @@ $minute = $data['_start']->format('i'); $second = $data['_start']->format('s'); $exception->setTime($hour, $minute, $second); + $exception->_dateonly = false; $ex = array( 'deleted' => 1,
View file
kolab-syncroton-2.2.4.tar.gz/lib/kolab_sync_data_calendar.php -> kolab-syncroton-2.2.5.tar.gz/lib/kolab_sync_data_calendar.php
Changed
@@ -211,6 +211,9 @@ if ($value && is_a($value, 'DateTime')) { $date = clone $value; if ($event['allday']) { + // need this for self::date_from_kolab() + $date->_dateonly = false; + if ($name == 'start') { $date->setTime(0, 0, 0); } @@ -220,7 +223,7 @@ } } - // set this date for use in exceptions handling + // set this date for use in recurrence exceptions handling if ($name == 'start') { $event['_start'] = $date; }
View file
kolab-syncroton-2.2.4.tar.gz/lib/kolab_sync_data_email.php -> kolab-syncroton-2.2.5.tar.gz/lib/kolab_sync_data_email.php
Changed
@@ -511,19 +511,20 @@ */ public function moveItem($srcFolderId, $serverId, $dstFolderId) { - $msg = $this->parseMessageId($serverId); - $dest = $this->extractFolders($dstFolderId); - $dstname = $this->backend->folder_id2name(array_shift($dest), $this->device->deviceid); + $msg = $this->parseMessageId($serverId); + $dest = $this->extractFolders($dstFolderId); + $dest_id = array_shift($dest); + $dest_name = $this->backend->folder_id2name($dest_id, $this->device->deviceid); if (empty($msg)) { throw new Syncroton_Exception_Status_MoveItems(Syncroton_Exception_Status_MoveItems::INVALID_SOURCE); } - if ($dstname === null) { + if ($dest_name === null) { throw new Syncroton_Exception_Status_MoveItems(Syncroton_Exception_Status_MoveItems::INVALID_DESTINATION); } - if (!$this->storage->move_message($msg['uid'], $dstname, $msg['foldername'])) { + if (!$this->storage->move_message($msg['uid'], $dest_name, $msg['foldername'])) { throw new Syncroton_Exception_Status_MoveItems(Syncroton_Exception_Status_MoveItems::INVALID_SOURCE); } @@ -531,7 +532,7 @@ $copyuid = $this->storage->conn->data['COPYUID']; if (is_array($copyuid) && ($uid = $copyuid[1])) { - return $this->createMessageId($dstFolderId, $uid); + return $this->createMessageId($dest_id, $uid); } }
View file
kolab-syncroton-2.2.4.tar.gz/lib/kolab_sync_data_tasks.php -> kolab-syncroton-2.2.5.tar.gz/lib/kolab_sync_data_tasks.php
Changed
@@ -140,7 +140,7 @@ break; case 'priority': - $result['importance'] = $this->prio_to_importance($value); + $value = $this->prio_to_importance($value); break; }
View file
kolab-syncroton-2.2.4.tar.gz/lib/kolab_sync_message.php -> kolab-syncroton-2.2.5.tar.gz/lib/kolab_sync_message.php
Changed
@@ -297,15 +297,15 @@ $hdrs = self::parse_headers($headers); // multipart message - if (preg_match('/boundary="?([a-z0-9-_]+)"?/i', $hdrs['Content-Type'], $matches)) { + if (preg_match('/boundary="?([a-z0-9-\'\(\)+_\,\.\/:=\? ]+)"?/i', $hdrs['Content-Type'], $matches)) { $boundary = '--' . $matches[1]; $message = explode($boundary, $message); for ($x=1, $parts = count($message) - 1; $x<$parts; $x++) { - $message[$x] = "\r\n" . self::recode_message($message[$x]); + $message[$x] = "\r\n" . self::recode_message(ltrim($message[$x])); } - return $headers . "\r\n\r\n" . implode($boundary, $message); + return $headers . "\r\n\r\n" . implode($boundary , $message); } // single part
View file
kolab-syncroton-2.2.4.tar.gz/tests/message.php -> kolab-syncroton-2.2.5.tar.gz/tests/message.php
Changed
@@ -135,4 +135,17 @@ $this->assertEquals($result, $message); } + + /** + * Test recoding the message + */ + function test_recode_message_4() + { + $source = file_get_contents(TESTS_DIR . '/src/mail.recode4'); + $result = file_get_contents(TESTS_DIR . '/src/mail.recode4.out'); + + $message = kolab_sync_message::recode_message($source); + + $this->assertEquals($result, $message); + } }
View file
kolab-syncroton-2.2.4.tar.gz/tests/src/mail.recode2.out -> kolab-syncroton-2.2.5.tar.gz/tests/src/mail.recode2.out
Changed
@@ -9,7 +9,6 @@ This is a multi-part message in MIME format. --------------000801030509090203070207 - Content-Type: multipart/alternative; boundary="------------060305070900000101080707" @@ -31,7 +30,6 @@ --------------060305070900000101080707-- --------------000801030509090203070207 - Content-Type: application/pdf; name="Weihnachtsbrief13.pdf" Content-Transfer-Encoding: base64
View file
kolab-syncroton-2.2.5.tar.gz/tests/src/mail.recode4
Added
@@ -0,0 +1,47 @@ +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="=_421c567043d5df058671910ddb659fc5" +Date: Thu, 06 Feb 2014 13:59:33 +0000 +From: alec <test@test.cc> +To: <test2@test.cc> +Subject: test html + image +Message-ID: <6c821c802bc5293e179f9bcb5d4d8279@klab.cc> +User-Agent: Roundcube Webmail/1.0-git + +--=_421c567043d5df058671910ddb659fc5 +Content-Transfer-Encoding: 8bit +Content-Type: text/plain; charset=UTF-8 + + + +test message with inline image żąść + + +--=_421c567043d5df058671910ddb659fc5 +Content-Type: multipart/related; + boundary="=_61b68141aaee8dc5b321e6059b43bb78" + +--=_61b68141aaee8dc5b321e6059b43bb78 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/html; charset=UTF-8 + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> +<html><body style=3D'font-size: 10pt; font-family: Verdana,Geneva,sans-seri= +f'> +<p>test message with inline image =C5=BC=C4=85=C5=9B=C4=87</p> +<p><img src=3D"cid:139169517352f395455c016176663627@test.cc" alt=3D"logo.gif" /></p> +</body></html> + +--=_61b68141aaee8dc5b321e6059b43bb78 +Content-Transfer-Encoding: base64 +Content-ID: <139169517352f395455c016176663627@test.cc> +Content-Type: image/jpeg; + name=logo.gif +Content-Disposition: inline; + filename=logo.gif; + size=25745 + +/9j/4AAQSkZJRgABAgEASABIAAD/4QqARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA +--=_61b68141aaee8dc5b321e6059b43bb78-- + +--=_421c567043d5df058671910ddb659fc5--
View file
kolab-syncroton-2.2.5.tar.gz/tests/src/mail.recode4.out
Added
@@ -0,0 +1,43 @@ +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="=_421c567043d5df058671910ddb659fc5" +Date: Thu, 06 Feb 2014 13:59:33 +0000 +From: alec <test@test.cc> +To: <test2@test.cc> +Subject: test html + image +Message-ID: <6c821c802bc5293e179f9bcb5d4d8279@klab.cc> +User-Agent: Roundcube Webmail/1.0-git + +--=_421c567043d5df058671910ddb659fc5 +Content-Transfer-Encoding: base64 +Content-Type: text/plain; charset=UTF-8 + +IA0KDQp0ZXN0IG1lc3NhZ2Ugd2l0aCBpbmxpbmUgaW1hZ2UgxbzEhcWbxIc= +--=_421c567043d5df058671910ddb659fc5 +Content-Type: multipart/related; + boundary="=_61b68141aaee8dc5b321e6059b43bb78" + +--=_61b68141aaee8dc5b321e6059b43bb78 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/html; charset=UTF-8 + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> +<html><body style=3D'font-size: 10pt; font-family: Verdana,Geneva,sans-seri= +f'> +<p>test message with inline image =C5=BC=C4=85=C5=9B=C4=87</p> +<p><img src=3D"cid:139169517352f395455c016176663627@test.cc" alt=3D"logo.gif" /></p> +</body></html> + +--=_61b68141aaee8dc5b321e6059b43bb78 +Content-Transfer-Encoding: base64 +Content-ID: <139169517352f395455c016176663627@test.cc> +Content-Type: image/jpeg; + name=logo.gif +Content-Disposition: inline; + filename=logo.gif; + size=25745 + +/9j/4AAQSkZJRgABAgEASABIAAD/4QqARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA +--=_61b68141aaee8dc5b321e6059b43bb78-- + +--=_421c567043d5df058671910ddb659fc5--
View file
kolab-syncroton.dsc
Changed
@@ -2,7 +2,7 @@ Source: kolab-syncroton Binary: kolab-syncroton Architecture: all -Version: 2.2.4-0~kolab5 +Version: 2.2.5-0~kolab1 Maintainer: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Uploaders: Paul Klos <kolab@klos2day.nl> Homepage: http://www.kolab.org/ @@ -12,5 +12,5 @@ Package-List: kolab-syncroton deb utils extra Files: - 00000000000000000000000000000000 0 kolab-syncroton-2.2.4.tar.gz + 00000000000000000000000000000000 0 kolab-syncroton-2.2.5.tar.gz 00000000000000000000000000000000 0 debian.tar.gz
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.