-
Notifications
You must be signed in to change notification settings - Fork 127
/
Copy pathCHANGES
8376 lines (7447 loc) · 357 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
------
v5.1.5
------
[jan] Update Korean translation (Deokgon Kim <dgkim@dgkim.net>).
Horde Changes
-------------
[jan] Detect REPORT queries as DAV requests in RPC server (Bug #13124).
[jan] Fix fatal error in LDAP account portal block (Bug #12910).
Mail Changes
------------
[mms] SECURITY: Fix XSS in displaying user-defined flags in basic mailbox and
message view.
[mms] SECURITY: Fix XSS in displaying user-defined flags in dynamic mailbox
view (João Machado <geral@jpaulo.eu>).
[mms] SECURITY: Fix XSS in displaying mailbox name in dynamic mailbox view
(João Machado <geral@jpaulo.eu>).
[mms] Fix scrolling through large search mailboxes in dynamic view (Bug
#13138).
[mms] Better handling of malformed message dates in mailbox listing (Bug
#13114).
Filters Changes
---------------
[mms] Fix blacklist/whitelist matching with IMAP backend (Bug #13031).
[mms] Fix procmail reject recipe (admin@dei.unipd.it, Bug #13060).
Address Book Changes
--------------------
[mjr] Fix pagination of search results (Bug #13047).
[mjr] Don't output empty properties for CardDAV requests (Bug #12782).
[jan] Fix portal serach block response when no contacts have been found
(dulinux <lfbm.andamentos@gmail.com>, Bug #13044).
Calendar Changes
----------------
[jan] Fix history not always returning the last modification time of an event
(Bug #13113).
[jan] Support timezone aliases when importing events (Bug #13100).
[mjr] Honor the no_sharing configuration option in dynamic view (Bug #13002).
[mjr] Fix issue that could remove all events from shared calendars if a user
with Horde_Perms::EDIT on that calendar is removed via the removeUserData
API (Bug #12524).
[jan] Fix TRIGGER generation if alarm value is negative (Bug #13064).
Tasks Changes
-------------
[jan] Fix link to task in alarm emails.
Tagging Changes
---------------
[jan] Fix date format for 'created' column.
Timeobject Changes
------------------
[jan] Update to changed Facebook events API.
[jan] Add Danish translation (Erling Preben Hansen <erling@eph.dk>).
[jan] Fix returning Facebook event URLs.
[mjr] Cache Facebook queries.
Library Changes
---------------
[jan] Update Spanish translations (Manuel Perez Ayala
<mperaya@alcazaba.unex.es>).
[jan] Update Japanese translations (Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>).
[jan] Update Hungarian translations (Andras Galos <galosa@netinform.hu>).
[jan] Update Danish translations (Erling Preben Hansen <erling@eph.dk>).
ActiveSync
[mjr] Force multiplex contact collections for Outlook 2013.
[mjr] Fix issue sending email when the imap client throws an error when
synchronizing the maillog (Bug #13276).
[mjr] Fix issue related to clients with enabled SMS sync causing broken email
deletion behavior.
[mjr] Fix ignoring incoming SMS CHANGE commands.
[mjr] Fix removing orphaned device entries (Bug #13277).
[mjr] Prevent sending non-UTF8 data due to meeting response emails.
[mjr] Remove Horde::debug output.
[mjr] Fix requesting remote wipe when using the MongoDB state driver.
[mjr] Truly fix duplicate email in Outlook 2013 when moving/deleting messages.
[mjr] Fix detecting forced multiplex values for Android 4.4.0 and greater (Bug
#13199).
[mjr] Fix issue with renaming folders (Bug #13196).
[mjr] Fix duplicate items in mailboxes after handling MOVEITEMS requests.
[mjr] Allow saving just dirty deviceProperties, and not deviceInfo.
[mjr] Fix return status for SETTINGS_DEVICEINFORMATION requests (Bug #13191).
[mjr] Fix regression that could cause some clients to no longer sync.
[mjr] Fix issue with clients that support EAS 12.1+ but still use PING commands
that would cause the cached heartbeat interval to be cleared.
[mjr] Fix issue where the device managed heartbeat interval would be ignored
during PING requests.
[mjr] Fix issue that would cause a SYNC loop when changing FILTERTYPE in
certain clients (Bug #13182).
[mjr] Fix regression with renaming email folders.
[mjr] Improve workarounds for certain clients that send broken authentication
information (Bug #13184).
[jan] Make SQL state backend compatible with Oracle.
[mjr] Improve detection of Android devices for the purposes of determining
support for non-multiplexed collections.
[mjr] Prevent possible PING loop due to PING requests incorrectly containing
collections that haven't had a SYNC issued yet.
[mjr] Add Horde_ActiveSync_Rfc822::addStandardHeaders().
[mjr] Support sending PRIMARYSMTPADDRESS in EAS 14.1 (Request #13062).
[mjr] Change the order of WBXML tags for Horde_ActiveSync_Message_Exception to
make some older clients happy.
[mjr] Fix some cases where removing a device's state could cause a PING and/or
SYNC loop on some older clients.
[mjr] Fix regression that broke synchronization in clients that don't support
EAS 14.1 (Bug #13038).
[jan] Optimize SQL query for garbage collection (hannes.brunssen@ewetel.de, Bug
#13043).
[mjr] Fix regression that could prevent stale sync requests to persist (Bug
#13032).
[mjr] Fix regression in sending non Mime encoded messages (Bug #13029).
Alarm
[jan] Test all available SQL backends.
[jan] Make tests work with PEAR-installed package.
[jan] Use correct schema table name when running tests.
[mjr] Add support for multiple instances of the same alarm, such as for a
recurring event.
Argv
[jan] Update Ukrainian translation.
Auth
[jan] Add Polish translation (Maciej Uhlig <maciej.uhlig@us.edu.pl>).
Autoloader_Cache
[mms] Abstract caching logic into Horde_Autoloader_Cache_Bootstrap class.
Browser
[mms] Correctly identify MSIE 11.
[mms] Fix checking for upload errors if an array of files was uploaded.
[mms] Catch newer PHP upload errors when checking for upload data.
Cache
[mms] Add Memory driver.
[mms] Deprecate Memoryoverlay and Mock drivers.
[mms] Hashtable driver now respects lifetime parameter in the get() and
exists() methods (Bug #13085).
Cli
[jan] Fix printing of structured fatal error details.
Core
[jan] SECURITY: Fix broken encryption of session data if regenerating session
IDs.
Crypt
[mms] Fix reference to constant outside of the package.
CssMinify
[mms] Initial release.
Data
[jan] Add importing of IMC (iCalendar/vCard) data from a URL.
[mms] Store CSV and TSV data in storage object, instead of temporary file, to
ensure import can work across a PHP cluster.
Date
[jan] Update Brazilian Portuguese translation (Luis Felipe Marzagao
<duli@easylifeproject.org>).
[mjr] Fix setting timezone parameter when parsing certain string
representations.
Dav
[jan] Allow the same external object UID in multiple resources to fix moving
objects (Bug #13102).
[jan] Fix synchronization with Mac Calendar application after adding events.
[jan] Update to SabreDAV 1.8.10.
[jan] Update to VObject 2.1.4.
Db
[mms] SECURITY: Don't leak PDO DSN authentication/connection information in
exception messages.
[jan] Fix changing columns to NULL/NOT NULL on Oracle and SQLite.
[jan] Fix migrating large values to BLOB on Oracle.
[jan] Fix certain migrations with Oracle.
[mms] Fix regression preventing caching of any internal DB information.
[jan] Fix columnCount() result of PDO result objects.
Feed
[jan] Fix loading of local files with basedir restrictions or libxml entity
loading disabled.
Group
[jan] Check for read-only LDAP configurations in removeUser()
(skhorde@smail.inf.fh-bonn-rhein-sieg.de, Bug #13247).
HashTable
[mms] In the Predis driver, ramp up to the maximum unlock wait interval
(Request #13231).
[mms] Implement logging.
[mms] Fix inconsistent usage of 'expire' and 'timeout' options (standardize on
'expire', which is more semantically correct).
History
[jan] Fix migrating from systems older than Horde 4.
[mms] Add composite driver.
[mms] Add Null driver.
[mms] Add MongoDB driver.
Http
[jan] Fix HTTP authentication with PECL HTTP drivers.
[jan] Always cast reponse body to string with pecl_http 2.0 (Michael Cramer
<michael@bigmichi1.de>).
[jan] Add support for PECL http 2.0 extension (Michael Cramer
<michael@bigmichi1.de>).
Icalendar
[jan] Fix detecting the current DST rule from certain VTIMEZONE components (Bug
#13223).
[jan] Export VTIMEZONE components only once per TZID (Bug #12988).
Image
[mjr] Add Horde_Image_Exif::getDescriptionFields() and
Horde_Image_Exif::getTitleFields().
[mjr] Add "Title" and "Description" XMP fields.
[mjr] Update maximum allowed version for the PECL Imagick extension.
[jan] Fix converting to grayscale with imagick driver.
[jan] Add optional dependency on imagick PECL extension.
Imap_Client
[mms] Fix regression in handling invalid DateTime data due to a BC-incompatible
change in PHP.
[mms] Fix regression where INBOX subscription status was based on server
status, instead of always being treated as subscribed (Bug #13261).
[mms] Delimiter information is now always returned from
Horde_Imap_Client_Base#listMailboxes().
[mms] Fix broken MBOX_UNSUBSCRIBED behavior on IMAP servers that support
LIST-EXTENDED.
[mms] Added the MBOX_ALL_SUBSCRIBED mode to
Horde_Imap_Client_Base#listMailboxes().
[mms] Workaround PHP DateTime regression in 5.4.29 & 5.5.13.
[mms] Fix translating error messages if they contain printf placeholders.
[mms] Fix working with mailboxes containing entirely integers (Bug #13157).
[mms] Horde_Imap_Client_Base#getNamespaces() can now return a
Horde_Imap_Client_Namespace_List object instead of an array.
[mms] Use the new command length limitations defined in RFC 7162.
[mms] A noop() call before authentication will now correctly throw an exception
on a connection issue (Bug #13205).
[mms] Fix instantiating base object with an empty password.
[mms] Better error checking when writing data to the server (Bug #13187; Thomas
Jarosch <thomas.jarosch@intra2net.com>).
[mms] Support partial search limitation even if the PARTIAL search return
option is not available on the server (Request #13153).
[mms] Added the 'max' and 'min' properties to Horde_Imap_Client_Ids.
[mms] Workaround broken MIME parts that cannot be binary decoded on the server.
[mms] Correctly handle partial search limiting for a single ID (Bug #13153).
[mms] Workaround bug in Dovecot where improperly encoded body part returns NIL
data when using the BINARY extension.
[mms] Handle IN-USE, LOGIN-DELAY, and SYS/TEMP error codes when authenticating
to POP3 servers.
[mms] Fix TLS negotiation with POP3 servers.
[mms] Fix throwing authentication exception when using Digest-MD5.
[mms] Fix parsing a reply/forward subject with no blob content.
[mms] Ensure integer value returns from Horde_Imap_Client_Base#status() are
truly integers.
[mms] Prevent unnecessary cache writes when list of UIDs passed to deleteMsgs()
is empty.
[mms] Fix stripping non-ASCII characters in
Horde_Imap_Client_Data_Format_Atom#stripNonAtomCharacters().
[mms] Don't allow PREAUTH on unencrypted connection if a secure connection
(e.g. STARTTLS) is requested.
[mms] Password is no longer a necessary parameter.
[mms] Fix regression in parsing empty string values in IMAP tokenizer.
JavascriptMinify
[mms] Add commented list of original source URLs in minified output, in order
to comply with any license terms contained in original files.
JavascriptMinify_Jsmin
[mms] Add commented list of original source URLs in minified output, in order
to comply with any license terms contained in original files.
Kolab_Storage
[jan] Consistently return a stream from the getBodypart() methods.
[jan] Add Horde_Kolab_Storage_Object#getBackendId().
[jan] Implement saving and loading of attachments to Kolab objects (backward
compatibility break in Horde_Kolab_Storage_Data#getAttachment()!).
[mms] Fix grabbing annotation list from IMAP server.
Ldap
[jan] SECURITY: Stricter parameter check in bind() to detect empty passwords.
[jan] Fix compatibility with PHP 5.3 (Bug #11888).
[jan] Allow to specify base DN for searching user DNs.
[jan] Support multi-value RDNs in Horde_Ldap::quoteDN() (Request #11888).
[jan] Fix creating filters with the less (<) operator (Bug #13154).
[jan] Fix approximate search operator (Leandro Damascena
<leandro.damascena@gmail.com>, Bug #9094).
ListHeaders
[jan] Add German translation.
[mms] Better translations of the list header fields.
Lock
[jan] Fix and improve tests.
Mail
[mms] Add Horde_Mail_Transport_Lmtphorde driver.
[mms] Be more lenient in parsing RFC 5322 identification field values.
[mms] Add Horde_Mail_Rfc822_Identification class.
[mms] Optimizations to address parsing.
Mapi
[mjr] Make bcmath an optional, not required, extension (Bug #13285).
Memcache
[mms] Ramp up to the maximum unlock wait interval (Request #13231).
Mime
[mjr] Fix returning raw data of sent email.
[mjr] Fix returning stream containing raw email data.
[mjr] Add Horde_Mime_Mail#getRaw() for returning the raw email email data.
[mms] Ensure return from Horde_Mime_Part#getBytes() is an integer.
[mms] Fix regression in part size calculation for parts that contain the raw
contents.
[mms] Add Importance to list of headers that expects a single value.
[mms] Correctly set size of part when using Horde_Mime_Part::parseMessage() and
the 'no_body' option.
[mms] Fix Horde_Mime_Part#buildMimeIds() when called on the base embedded
object of a parent part (Bug #13117).
Mime_Viewer
[mms] Fix fatal error if using TNEF viewer and bcmath extension is not
installed on the system.
Pack
[mms] Don't use JSON driver to pack if input contains non-UTF8 data (Bug
#13275).
[mms] Due to issues with igbinary 1.1.1, disable the igbinary driver.
Prefs
[mms] Add Horde_Prefs#getCache().
[mms] Add Horde_Cache based cache driver.
[mms] Pref scopes are now loaded on-demand.
[mms] Add Horde_Prefs#changeScope().
Secret
[mms] Only store keys in cookie if cookies are in use
(thomas.jarosch@intra2net.com, Bug #13284).
[mms] Correctly clear secret key from cookie data
(thomas.jarosch@intra2net.com, Bug #13283).
Service_Weather
[jan] Fix broken translations of wind forecasts.
[mjr] Adjust to changes in Wunderground API (Bug #13299,
arjen+horde@de-korte.org).
[mjr] Add cardinal direction abbreviations (Bug #13186).
[mjr] Fix fetching local observation time from Wwo (Bug #13083,
maciej.uhlig@us.edu.pl).
Smtp
[mms] Fix harmless undefined error when accessing certain configuration
parameters.
[mms] Horde_Smtp#send() now returns recipient status information if at least
one recipient was successfully accepted.
[mms] Added an LMTP (RFC 2033) driver.
[mms] The mail submission port (587) should be default of this library.
[mms] Better exception message for a 550 error, since it is common and may be
displayed to an end user (Request #12990).
Socket_Client
[mms] Fix BC-breaking regression with self-signed TLS certificates introduced
by PHP 5.6.
Test
[jan] Update to PHPUnit 4.1.3.
[jan] Fix running tests from PEAR-installed version.
[jan] Bundle PHPUnit and dependencies.
[mms] Fix loading PHPUnit from PHAR file.
Text_Diff
[jan] Fixed inline renderer breaking line breaks. (Petr Kalivoda
<petr.kalivoda@gmail.com>).
[jan] Assume Unicode input when splitting on character level (Petr Kalivoda
<petr.kalivoda@gmail.com>).
[jan] Fix signature of Horde_Text_Diff_Mapped constructor (BC break!) (Bug
#13253).
Text_Filter
[mms] Javascript minification has been deprecated and moved to the
Horde_JavascriptMinify package.
Text_Filter_Jsmin
[mms] Javascript minification has been deprecated and moved to the
Horde_JavascriptMinify package.
Timezone
[jan] Use passive FTP for downloading the timezone database
(arjen+horde@de-korte.org, Request #13024).
Url
[mms] Catch/ignore invalid RFC 2397 data strings.
Util
[mms] Add Horde_String_Transliterate class.
[mms] Support deeply nested HTML documents (requires PHP 5.4.0+ and libxml
2.7.0+) (Bug #13086).
View
[jan] Change Horde_View_Helper_Date#distanceOfTimeInWords() to not round up the
distance.
[jan] Make Horde_View_Helper_Text#truncate() and truncateMiddle()
multibyte-safe (Bug #13163).
Extensions
----------
horde_lz4
[jan] Update lz4 source to r119 (CVE-2014-4715).
[mms] Fix compilation on ancient versions of PHP 5.3 (Bug #13310).
[jan] Update lz4 source to r118 (CVE-2014-4611).
------
v5.1.4
------
[jan] Update Danish translation (Erling Preben Hansen <erling@eph.dk>).
Horde Changes
-------------
[mms] Fix regression where AJAX actions were not correctly checking permissions
and potential authentication expiration actions.
Mail Changes
------------
[mms] Add Save All link to the popup message page in dynamic view.
[mms] Cleaner handling of broken S/MIME signed messages.
[mms] Fix displaying user-defined message headers when multiple-headers exist
in a single message.
[mjr] Honor recurrence-id range values when deleting recurring events (Bug
#12746).
[mms] Don't provide links to view attachments in compose screen unless the
attachment can be displayed (Bug #12841).
[mms] Fix regression where auto-saved drafts were not being deleted when
cancelling compose message in dynamic view.
[mms] Fix regression in parsing permission values (Bug #12812).
[mms] Fix regression in showing non-available actions in dynamic mailbox view
when ACL rules prevent them (Bug #12808).
Filters Changes
---------------
[jan] Make spam level a required form field (Bug #12964).
[jan] Fix behavior of 'utf' parameter (Bug #12937).
[mms] Fix sieve driver correctly identifying mailing lists when determining
whether to send vacation messages
(skhorde@smail.inf.fg-bonn-rhein-sieg.de, Bug #12938).
Address Book Changes
--------------------
[jan] Fix importing vCard fields with lowercase TYPE attributes (Bug #13006).
[jan] Store full name in Kolab contacts.
[jan] Fix distribution list support in Kolab driver (Bug #12450).
Calendar Changes
----------------
[mjr] Fix triggering alarms for cancelled events (Bug #12928).
[mjr] Fix exporting recurring events with no recur_end value to CSV.
[mjr] No longer include AIRSYNCBASEBODY when exporting for ActiveSync if there
is no description.
[mjr] Properly set event status to Cancelled on Resource calendars when the
original event status is set to Cancelled.
[mjr] Fix updating free/busy display when updating event times (Bug #12676).
[mjr] Fix issue that could cause calendar sync to break when creating an
exception on EAS versions < 14.0
[jan] Fix rounding of start time when dragging events (Bug #11904).
[mjr] Fix fatal error when searching if Holiday driver is disabled (Bug
#12870).
[jan] Ignore iCalendar alarms without action, and use first, not last alarm
(Bug #12865).
[mjr] Fix incorrect case comparison when synchronizing tags with Kolab (Bug
#12770).
[mjr] Honor recurrence-id range values when deleting recurring events (Bug
#12746).
[mjr] Fix deleting and sending iTip notifications for recurring events (Bug
#12746).
[jan] Fix calculation of work week start if on a weekend.
[jan] Fix deleting calendars with exceptions to recurring events.
[jan] Fix fatal error if recurrence exceptions have timezones set (Bug #12801).
Tasks Changes
-------------
[jan] Don't return future tasks from cost objects API.
Notes Changes
-------------
[jan] Add Korean translation (Deokgon Kim <dgkim@dgkim.net>).
[mjr] Fix unencrypting and saving a previously encrypted note (Bug #12890).
[mjr] Fix fatal error when exporting encrypted notes via ActiveSync.
[mjr] Fix saving note after saving failed due to mismatched passwords (Bug
#12855).
Library Changes
---------------
ActiveSync
[mjr] More workarounds for PHP 65776, preventing segfaults for text attachments
that contain inconsistent line endings.
[mjr] Rely on the IMAP adapter for returning accurate UID values after a
message move (Bug #13010).
[mjr] Expose public Horde_ActiveSync_Utils::ensureUtf8() method.
[mjr] Fix some issues caused by attempting to process iTip responses when
saving to sent mail folder (Bug #12956).
[mjr] Work around issues with clients that crash when receiving an empty body
element (Bug #12956).
[mjr] Improve device property management and forced-multiplex detecection.
[mjr] Attempt a fix for clients that duplicate calendar entries when tags are
received in a certain order (Bug #12741).
[mjr] Transparently handle moving from a non-MODSEQ IMAP server to a MODSEQ
server (Thomas Jarosch <thomas.jarosch@intra2net.com>, Bug #12941).
[mjr] Fix handling of empty OPTIONS tags.
[mjr] More fixes for handling meeting responses sent by Outlook (Bug #12934).
[mjr] Fix some edge case issues that could cause issues in sending changes to
the client.
[mjr] Fix handling MEETING_RESPONSE requests for certain broken clients (Bug
#12934).
[mjr] Add support for Recipient Information Cache collection.
[mjr] Fix issue with synchronizing recurring event series exceptions due to
missing properties in the exception object.
[mjr] Fixes to S/MIME support for issues that prevent the decrypting of S/MIME
encrypted email on certain clients.
[mjr] Improve error handling when state is lost and device continues to request
the same state despite being sent the proper status code.
[mjr] Fix returning device information from Mongo driver when multiple user
accounts exist on the same device.
[mjr] Improve detection of devices that cannot support non-multiplexed
collections.
[mjr] Add support for DocumentLibrary.
[mjr] Fix mailbox searching when number of results exceeds the requested RANGE
value.
[mjr] Fix issue where attachments are not downloaded in certain situations on
EAS version 14+.
[mjr] Some fixes for EAS 14.0/14.1 ITEMOPERATIONS request parsing. Fixes issues
on some clients with broken email sync on Android 4.3 and 4.4.
[mjr] Fix issue that causes sync to break when SMS messages are deleted on the
client (Bug #12887).
[mjr] Add support for parsing TNEF data when possible (Bug #12882).
[mjr] Fix typo that was causing server side searching of mailboxes to fail (Bug
#12882).
[mjr] Add workaround for inconsistent handling of POOMCONTACTS date fields that
causes fields like birthdays to become offset.
[mjr] Add ability to flag a specific device as blocked.
[mjr] Add ability to filter the list of devices on more than username.
[mjr] Attempt to recover old serialized data before forcing a repairing of
Email collections.
[mjr] Fix generating EAS folder uids for devices that can't tell the difference
between a string and an integer.
[mjr] Changes to support multiple non-email collections of the same type.
[mjr] Improvements to memory and database usage.
[mjr] Add MongoDB state driver.
Alarm
[jan] Add getErrors() to return errors from alarm notifications.
[jan] Catch errors from alarm notifications (Bug #12951).
[jan] Fix compatibility with Oracle.
Auth
[jan] Add MySQL password hashing (Request #12962).
[rla] Add joomla encrypted password format (Request #12889).
[mms] Fix parsing salted SHA256 entries (Adam James
<adam.james@transitiv.co.uk>).
Autoloader
[mms] Remove duplicate paths when initializing the default Autoloader.
[mms] Add Horde_Autoloader_ClassPathMapper_PrefixString mapper implementation.
Autoloader_Cache
[mms] Use more efficient hashing algorithm, if available.
[mms] Saving cache data should be handled in a shutdown function, not a
destructor.
[mms] Add Horde-specific prefix to filesystem cache name to allow for easy
identification.
[mms] Support msgpack for serializing the map lookup.
Browser
[mms] Detect Internet Explorer 11.
Cache
[mms] Cache prefix should be handled by Hashtable driver, not underlying
backend object.
[mms] Fix lifetime usage in the file driver.
[mms] Add 'no_gc' parameter to the Horde_Cache_Storage_File driver.
Compress
[mjr] Fix parsing TNEF data that does not contain a meeting request (Bug
#12931).
[mjr] Fix tests when Horde_Mapi is not available.
[mjr] Add initial support for decoding TNEF meeting requests.
Core
[jan] Don't try authentication to SMTP server if explicitly disabled (Bug
#12830).
[mms] Fix hiding preferences if they are contained within a prefs container.
[mms] Added standardized/normalized mousewheelY javascript event handling to
HordeCore.
[mms] Add nonce generation/checking to Horde_Session.
[mms] Application hook methods moved from Horde:: to Horde_Core_Hooks::.
[mms] Add 'fallback' option for the Horde_Registry#appInit() 'authentication'
parameter.
[mms] Fix deauthenticating when a system-level logout event occurs.
Crypt
[mms] Ensure that all text parts are Q-P encoded when signing a MIME part.
[mms] More efficient parsing in Horde_Crypt_Pgp_Parse.
[mms] Remove Horde_Crypt_Pgp#generateRevocation() (Bug #7375).
[mms] Fix submitting PGP keys to a public keyserver (Bug #10931).
[mms] PGP keyserver code now uses Horde_Http_Client to connect to the
keyserver.
[mms] Move PGP keyserver code to a separate Horde_Crypt_Pgp_Keyserver class.
[mms] Add Horde_Crypt_Pgp_Parse#parseToPart().
[mms] Move Horde_Crypt_Pgp#parsePGPData() to separate class
(Horde_Crypt_Pgp_Parse), since it can be used even if GnuPG binary is not
available.
[mms] Horde_Crypt_Pgp#parsePGPData() now accepts a Horde_Stream object as an
argument.
Css_Parser
[mms] Fixed comments parsing.
Date
[jan] Fix date calculation if providing both a timestamp and a timezone (Bug
#12843).
[mjr] Add ability to return human readable description of recurrence rules.
[mjr] Fix issue that could cause incorrect month values when populating an
empty date object.
[mjr] Fix handling of RRULE with full datetime UNTIL values (Bug # 12869).
[rla] Add aliases for Windows and Lotus timezone identifiers (Bug #11688).
Dav
[jan] Update to SabreDAV 1.8.9.
[jan] Fix synchronization with SOGo connector.
[jan] Update to SabreDAV 1.8.7/VObject 2.1.3.
Db
[jan] Return generated (or manipulated) index name from addIndex().
[jan] Avoid cache collisions when changing adapters or configurations.
[jan] Add Horde_Db_Adapter_Base#writeCache() and readCache().
[jan] Add Horde_Db_Adapter#insertBlob().
[jan] Make value of Horde_Db_Value_Binary publically accessible.
[jan] Add Oracle driver (Request #11974).
[jan] Add Horde_Db_Adapter_Base_Schema#column() method.
[jan] Always re-throw PDOExceptions as Horde_Db_Exceptions.
[jan] Fix issues with active Turkish locale.
[jan] Always return a Horde_Db_Adapter_Base_Result sub-class from the select()
method.
[jan] Don't ping server before each query in PDO drivers (Bug #12656).
[jan] Re-organize unit tests.
[jan] Make several methods abstract in Horde_Db_Adapter_Base.
[jan] Deprecate external usage of execute() method.
Form
[jan] Don't submit disabled fields.
Group
[jan] Make SQL backend compatible with Oracle.
HashTable
[mms] Fix getting data from Redis clusters.
Http
[mms] Fopen driver needs to handle URIs without a protocol scheme - default to
http (Bug #12991).
Imap_Client
[mms] Fix updating cached flags list on a CONDSTORE-only server.
[mjr] Fix regression in obtaining bodypart size when BINARY extension is
available.
[mms] Improved/more concise debug output.
[mms] Optimize sorting in Horde_Imap_Client_Ids object.
[mms] Workaround broken SASL capability responses from POP3 servers.
[mms] Prevent PHP error when a FETCH call is unsuccessful.
[mms] Relax type checking on cache driver object.
[mms] Fix obtaining bodypart size (Bug #12992; martin@matuska.org).
[mms] More correct fix for Exception construction.
[mms] Fix regression where Horde_Imap_Client_Exception was inheriting from a
different class than before.
[mms] Use more efficient FNV1-32 hashing algorithm for internal hashtable
storage, if available.
[jan] Make SQL cache backend compatible with Oracle.
[mms] Optimizations to IMAP tokenizer.
[mms] Add raw error message text (in English) to Exceptions.
[mms] Add debug timing information for connection/commands.
[mms] Fix resetting capability list when internally cached authentication
information becomes invalid.
[mms] Fix updating message list in the hashtable cache driver when deleting.
[mms] When determining a sequence -> UID mapping, do sanity checking to make
ensure data is valid (Bug #12911).
[mms] Add a Horde_Hashtable specific cache driver.
[mms] Add remove() method to Horde_Imap_Client_Ids.
[mms] Don't login to IMAP server if namespace information is already cached.
[mms] Fix intermittent error when purging messages using a Horde_Cache caching
backend (Bug #12827).
[mms] Workaround broken IMAP servers that don't support the required AUTH=PLAIN
authentication method (Bug #12817).
[mms] Added direct TLS v1.x connection option when connecting to remote server.
[mms] Use SHA-1 instead of MD5 for internal hashing.
[mms] Correctly handle untagged BAD IMAP responses.
[mms] Added Horde_Imap_Client_Password_Xoauth2 class.
[mms] Fix harmless PHP undefined error when using with an IMAP server that
supports XOAUTH2.
Injector
[mms] Cache creation of Reflection objects when binding.
JavascriptMinify
[mms] Initial release.
JavascriptMinify_Jsmin
[mms] Initial release.
Kolab_Format
[jan] Correctly translate display-name attribute of distribution lists.
LoginTasks
[mms] Only run shutdown task if the tasklist is currently incomplete.
Mail
[mms] More thorough job trying to parse addresses that contain an @ but no
domain information.
[mms] Correctly identify e-mail addresses without domain information when
validating.
Mapi
[mjr] Clarify license is LGPL and fix package.xml/composer.json files.
[mjr] Initial release.
Mime
[mms] Fixed access to a non-visible internal method when performing actions on
parts.
[mms] Fix parsing MIME message that contains mixed EOLs (Bug #12842).
Pack
[mms] Initial release.
Perms
[mms] Need to expire SQL cache for all sub-permissions when deleting a parent
permission.
Prefs
[mms] Correct fix for iteration of Horde_Prefs_Scope object.
SessionHandler
[mms] More efficient reading of session data from filesystem in file driver.
Share
[jan] Make SQL backend compatible with Oracle.
Smtp
[mms] Add raw error message text (in English) to Exceptions.
[mms] Fix handling servers that don't support ESMTP (Bug #12853).
[mms] Fix returning reply code in Exceptions.
[mms] Added direct TLS v1.x connection option when connecting to remote server.
[mms] Added Horde_Smtp_Password_Xoauth2 class.
Socket_Client
[mms] Handle transient socket connection issues.
[mms] Add 'tlsv1' as a secure parameter option in the Client constructor.
Stream
[mms] Fix packaging error.
[mms] Add the Horde_Stream_TempString class.
[mms] Add the Horde_Stream_String class.
[mms] Add 'all' parameter to Horde_Stream#getToChar().
Stream_Wrapper
[mms] Add unit tests.
[mms] Add Horde_Stream_Wrapper_Combine::getStream().
[mms] Add Horde_Stream_Wrapper_String::getStream().
[mms] Fix documentation regarding proper license for this package (BSD).
Test
[jan] Add stubs for Horde_Registry_Loadconfig and
Horde_Registry::loadConfigFile().
[mms] Add factory for a HashTable instance.
[jan] Correctly set up include paths on installed packages.
[mms] Restore error reporting level after running tests via
Horde_Test_AllTests#run().
Text_Filter
[mms] Move JSMin code to a separate package.
Text_Filter_Jsmin
[mms] Initial release.
Translation
[mms] Add Horde_Translation#r() (raw gettext strings).
Url
[mms] Optimize Horde_Url#toString().
Vfs
[jan] Remove broken Kolab driver.
[mms] Add null VFS driver.
[jan] Support Oracle with SQL driver.
Extensions
----------
horde_lz4
[mms] Update lz4 source to r108.
------
v5.1.3
------
Horde Changes
-------------
[jan] SECURITY: Protect against CSRF attacks on share permissions form (Bug
#12804).
[jan] SECURITY: Fix XSS vulnerabilities in top and left menu (Bug #12803).
[jan] Don't show admin alarm form if alarms are disabled.
[mms] Add horde-remove-user-data command-line script.
[mms] Add additional syntax checking for the configuration files in the test
script.
[mms] Only update topbar if the underlying tree data has changed.
Mail Changes
------------
[mms] SECURITY: Fix XSS in message and search screens resulting from a
user-defined flag label (João Machado <geral@jpaulo.eu>).
[mms] Send linked attachment download notification message in language of the
sending user (Bug #12783).
[mms] Fix populating search fields when editing an advanced search query.
[mms] Trigger auto save draft in dynamic view if attachments have changed.
[mms] Improved UI for dropping attachments on dynamic compose screen.
[mms] Fix manually loading all addresses in a header.
[mms] Fix regression where reloading dynamic view would not load the previously
selected message.
[mms] Fixed regression in enforcing max_recipients and max_timelimit
permissions (Bug #12674).
[mms] Correctly enforce file size attachment limits on the first attachment
(Bug #12663).
[mms] Don't attempt to get quota information from non-IMAP mailboxes (Bug
#12608).
[jan] Don't attach address book behavior if contacts API is unavailable.
[mms] Fix regression where MIME headers were being displayed for PGP decrypted
messages (Bug #12648).
[mms] Improved error handling when creating a new flag in dynamic view.
[mms] Make addresses in smartmobile full message header display clickable to
open a compose window.
[mms] Don't display empty containers in dynamic folder list (Request #11425).
Filters Changes
---------------
[mms] SECURITY: Protect against CSRF attacks by using tokens on destructive
actions (Bug #12796; CVE-2013-6275; found by Marcela Benetrix
<m.benetrix@e-secure.com.au>).
Address Book Changes
--------------------
[jan] SECURITY: Fix XSS vulnerabilities when deleting address books.
[jan] Fix exporting selected contacts (Bug #12759).
[mms] Improved UI when viewing search results from Advanced Search.
[mms] Remove features from UI when VFS is not available or disabled.
[mjr] Fix filtering Facebook driver results (Bug #12739).
[jan] Gracefully deal with columns removed from the backend.
Calendar Changes
----------------
[jan] SECURITY: Protect against CSRF attacks on share permissions form (Bug
#12804).
[jan] SECURITY: Fix XSS vulnerabilities when deleting calendars and resources.
[jan] Fix edge case that allowed to enter start time after end time (Bug
#12752).
[mjr] Expire fb cache when fb_cals preference changes (Bug #12714).
[jan] Fix setting DTEND in iCalendar data if event has a timezone (Bug #12693).
[mjr] Fix importing new ActiveSync events created on the client with
recurrence.
[mjr] Fix some issues with recurring event exceptions due to improper timezone
handling (Bug #12630).
Tasks Changes
-------------
[jan] SECURITY: Fix XSS vulnerabilities when deleting task lists.
[jan] Fix updating alarm if completing a task recurrence.
[jan] Fix editing tasks via CalDAV (Bug #12745).
Notes Changes
-------------
[jan] SECURITY: Fix XSS vulnerabilities when deleting notepads.
[mjr] Fix removing a list of UIDs via the API (Bug #12790,
thomas.jarosch@intra2net.com)
[mjr] Fix exporting memos as v-note (horde@albasoft.com, Bug #12622).
Library Changes
---------------
ActiveSync
[mjr] Improve performance related to conflict detection and change mirroring
protection.
[mjr] Return proper status codes when OOF is unavailable (Bug #12757).
[mjr] Fix fatal crash when conflict is detected (Thomas Jarosch
<thomas.jarosch@intra2net.com>, Bug #12755)
[mjr] Fix returning contact image in GAL search for those clients that support
it.
[mjr] Fix GAL searching for clients that depend on SEARCH_RANGE values.
[mjr] Fix some authentication issues when certain clients issue broken
AutoDiscover requests.
[mjr] Fix some minor issues with Autodiscover requests caught by unit testing.
[mjr] Remove dependency on unreleased Horde_Stream code.
[mjr] Work around for PHP bug 65776, preventing segfaults with certain emails.
[mjr] Remove loop counter code that was incorrectly growing sync_cache data
(Bug #12707).
[mjr] Ignore incoming SMS delete command. Prevents breaking sync on clients
that send SMS data, even though we do not return it as an available
collection.
[mjr] Prevent sending invalid UTF-8 data in the Subject header, which could
break sync in some clients.
[mjr] Support for SOFTDELETE.
[mjr] Fix possible infinite loop when a requested message is not found on the
serer during a SYNC request.
Alarm
[mjr] Fix initializing Alarms when using PDO_Oci or PDO_PostgreSQL.
Auth
[mms] Password strength testing is now case-insensitive
(delrio@mie.utoronto.ca, Request #12708).
Cache
[mms] Fix key expiration for APC, Eaccelerator, and Xcache (Bug #12735).
[mms] Add Horde_Cache_Storage_Memoryoverlay driver.
Core
[mms] Fix prototype.js issue in IE 9 regarding array iteration in a parent
window.
[mjr] Ensure Bcc is removed from headers when sent via ActiveSync (Bug #12771).
[mjr] Fix calculating calendars to use for SOFTDELETE commands in certain
configurations (Bug #12765).
[mms] Upgrade jQuery Mobile to v1.3.2/jQuery Core to v1.9.1.
[mms] Add Horde_Core_Ui_FlagImage#getFlagImageObByHost.
[mms] Add base64img property to Horde_Themes_Image.
[mjr] Do not assume that the filter API is available (Bug #12757).
[mms] Add ability to load javascript via a HordeCore AJAX response (Request
#10971).
[mms] Add ability to expire CSS cache based on file modification time.
[mms] Allow disabling VFS via the configuration interface.
[mjr] Send back dummy mail folders when the Mail API is not available (Bug
#12738).
[mms] Upgrade prototype.js to most recent git version
(e3d5200cef3236b257ddcfb1eb3eabc5c586bedd).
[mms] Cache permission results within a PHP access.
[mms] Don't initialize unnecessary prefs object when creating the topbar.
[mjr] Support ActiveSync SOFTDELETE.
[mms] Respect 'nobase64_img' configuration when generating image tags (João
Machado <geral@jpaulo.eu>).
[mjr] Support for X509 certificate authentication in ActiveSync requests.
[mjr] Fix calculating policy value for SD card encryption and device encryption
policies.
Css_Parser
[mms] Merge from upstream - handle keywords/dimensions case-insensitively.
[mms] Performance optimizations in the parser.
Date
[jan] Correct dates with very large days-of-month more efficiently (Bug #12615).
[jan] Don't limit the argument to Horde_Date_Utils::isLeapYear() to 4 digits.
Form
[mms] Remove duplicate constructor.
History
[mjr] Only query History when we have a range of modSeq values to query
(arjen+horde@de-korte.org, Bug #12660).
Imap_Client
[mms] Explicitly reject XOAUTH2 as a authentication mechanism if it is not
configured in the client (Bug #12756).
[mms] Sort UID list before sending in QRESYNC parameter.
[mms] Ensure that INBOX always appears in subscribed mailbox list when using a
server that supports LIST-EXTENDED.
[mms] Fix regression where INBOX may not be recognized as subscribed, if the
server doesn't list it in the subscribed list.
[mms] Handle case-insensitive INBOX return from the server.
[mms] Use strict RFC-compliant workaround for servers that don't support the
UNSELECT IMAP extension.
[mms] Ensure Horde_Imap_Client_Base#search() always returns the 'count' value
(Bug #12682).
[jan] Fix incorrect usage of Horde_Db API in cache backend.
[mms] Workaround servers that don't advertise UIDL until after authentication.
[mms] Fix parsing continuation requests sent in SASL AUTH command (RFC 5034).
[mms] By default, use TLS if available and necessary to login to server.
[mms] Fix adding status information to listMailboxes() return when LIST-STATUS
is not available.
Ldap
[jan] Fix modifying entries with modify().
[jan] Try starting TLS without querying the rootDSE (Bug #12157).
ListHeaders
[mms] Add Horde_ListHeaders#headers().
Log
[jan] Add a CLI formatter and handler.
Mail
[mms] Discard personal information when it is identical to e-mail address.