-
Notifications
You must be signed in to change notification settings - Fork 4
/
ChangeLog
4943 lines (3367 loc) · 170 KB
/
ChangeLog
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
2007-02-05 Ludovic Marcotte <ludovic@Sophos.ca>
* Small cleanups.
* Tagged the source tree with revision
c04a7f3e69aa5aa286dd3443c98c11ef42467c85 and
tag name v1.2.0pre3.
2007-02-03 Ludovic Marcotte <ludovic@Sophos.ca>
* We now re-thread correctly our threaded local
mailbox after an expunge.
2007-02-01 Ludovic Marcotte <ludovic@Sophos.ca>
* Added a patch from Christian Niles to improve
parsing of malformated internet addresses.
2007-01-31 Ludovic Marcotte <ludovic@Sophos.ca>
* Added a patch from Christian Niles <christian.niles@gmail.com>
that adds support of internal date while appending messages
to an IMAP mailbox.
2007-01-29 Ludovic Marcotte <ludovic@Sophos.ca>
* We now correctly return an error in case
of a SSL handshake error.
2007-01-28 Ludovic Marcotte <ludovic@Sophos.ca>
* We no longer abort if we can't create the local
cache file. This can happen when reading from
a mail spool file.
* Added delegate / notification in CWIMAPStore
(testing for now) in order to know when
a command was sent and when it has completed.
* Modified CWLocalFolder: -parse: so that we
consider messages in /new and /tmp when opening
a maildir-based mailbox using a cache.
* Fixes to the Pantomime Xcode project files.
* Modified the short/integer reading routines
(from memory) to correct endianness.
2007-01-23 Ludovic Marcotte <ludovic@Sophos.ca>
* We now correctly expunge the IMAP cache when we
either receive an untagged EXPUNGE response or
when we sync our cache with our IMAP folder when
opening the mailbox.
* Performed some cleanups.
2007-01-21 Ludovic Marcotte <ludovic@Sophos.ca>
* Removed Documentation/LICENSE.ELM
* Added the PantomimeContentDisposition enum and
refactored the CWPart class to use it.
* We now post notifications on success / error
when opening a local mailbox.
2007-01-20 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWIMAPStore to not break when
parsing only the initial set of headers.
* Removed all the ELM code and rewrote the
parts that were using it. Removed the following
files: atonum.c date_util.c getword.c len_next.c
parsarpdat.c parsarpmbox.c rfc822tlen.c strfcpy.c
strincmp.c striparens.c elm_defs.h elm_lib.h
and parseaddrs.h
* Don't cache the array of IP addresses from
a DNS name if it's empty.
* Don't send the FETCH BODY.PEEK[HEADER.FIELDS.NOT
... IMAP command if we already sent it once. This
prevents from adding headers continously to a
message if it gets expired.
* We now correctly inform our delegate and we post
a notification if we can't expunge an IMAP mailbox.
* Improved the randomness of the maildir filenames.
* We now correctly empty the IMAP queue after handling
a BAD response.
* Removed the CWCacheManager (and subclasses)
+cacheWithPath: method.
* Dropped Framework/Pantomime/English.lproj and
its content.
* Implemented a brand new mailbox caching code
for POP3, IMAP and local (mbox/maildir) type
of mailboxes. Previously POP3 cache files
are converted correctly, while IMAP and local
ones are ignored.
2006-10-13 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWContainer: -setParent to avoid
a loop.
2006-10-12 Ludovic Marcotte <ludovic@Sophos.ca>
* We now call NSAssert2() if the stream isn't
closed properly if if the file descriptor
hasn't been closed in CWLocalFolder: -dealloc.
Patch from Aaron Burghardt <aburgh@mac.com>.
* Prevent a potential crash in NSData+Extensions
-decodeBase64: for incorrectly formatted
base64 content.
* Rewrote CWPart: -dataValue so it's much
simpler and faster. That is now part of the
new Pantomime message encoder.
* Cleaned up the CWMessage/CWPart interfaces
and removed ivars.
2006-10-06 Ludovic Marcotte <ludovic@Sophos.ca>
* Documentation fixes. Many thanks goes
to Christian Niles.
* We can now forward messages as inline or
as an attachment.
* Implemented a consumer of RFC2231 output.
* Added a boolean parameter to CWLocalFolder: -parse
so we can now partially parse local mailboxes
or fully parse them (at the headers level).
* Modified NSData+Extensions: -dataByTrimmingWhiteSpaces
to also trim tab characters.
* Modified CWIMAPStore to break when we parsed the
appropriate message part.
* New Pantomime message decoding engine. Much more
simpler than before, faster and more robust.
Everything is now dedoced to a NSData, CWMessage
or CWMIMEMultipart instance.
* Patches from Annard Brouwer
<abrouwer@devon-technologies.com> that fixes:
- Fixed a bug where an instance from the wrong
class was allocated in CWMIMEUtility.
- Now use -UTF8String instead of -cString for
all UNIX filenames.
- Corrected CWContainer: -count to return the
real children count.
- Add comparison support to CWInternetAddress.
- "unknown" charset support (buggy Outlook output)
- added support for localized response and
reference prefixes that are used in
NSString+Extensions: -hasREPrefix.
2006-09-28 Ludovic Marcotte <ludovic@Sophos.ca>
* Tagged the source tree with revision
81da7b5c5004326fc2476cb3f7c7637eff152aff and
tag name v1.2.0pre2.
* Fixed a memory leak in CWMessage.
2006-09-25 Ludovic Marcotte <ludovic@Sophos.ca>
* RELEASE v1.2.0pre2.
2006-09-24 Ludovic Marcotte <ludovic@Sophos.ca>
* Updated the documentation.
2006-09-19 Ludovic Marcotte <ludovic@Sophos.ca>
* Updated the documentation.
* Modified CWPOP3Message: -setFlags:
to call [super setFlags: ...] and make
sure that we have tasks in the queue
before trying to empty it in CWPOP3Store.
Suggestions from Matt Bendiksen.
2006-09-16 Ludovic Marcotte <ludovic@Sophos.ca>
* We now properly call delegate (and post
notifications) if the TLS code failed
in CWSMTP.
* Modified CWMessage: -dataValue so that
we also include the User-Agent header in
our list of additional headers that are
being sent.
* Cleaned up the POP3 code. Replaced
CWPOP3Folder: -deleteMessageAtIndex: with
CWPOP3Message: -setFlags: and CWPOP3Folder:
-prefetchMessageAtIndex: with CWPOP3Message:
-rawSource and -setInitialized: Also updated
SimplePOP3 to reflect those changes.
2006-09-08 Ludovic Marcotte <ludovic@Sophos.ca>
* Improved the documentation with regard to the
SMTP RSET call.
* Improved examples
* We now initialize the message with its content
after a RETR over POP3 instead of just setting
the raw source of the message.
* We now correctly destroy the connection timer
when we cancel the actual request when we
are connecting to a service.
2006-09-05 Ludovic Marcotte <ludovic@Sophos.ca>
* Commented out unused define in elm_defs.h to
avoid compilation error with OpenSSL. Bug
reported by Marcelo Bezerra <mosca@inova.net>.
2006-09-04 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixed CWPOP3Folder: _deleteOldMessages. It
was incorrectly using a 0-based index.
* Modified CWMIMEUtility: unique_id() so we
make sure we don't go out of bounds in
the hexDigit array. Also improved the
randomness of the ID. Patches from
Matt Bendiksen <matt@perceptiveautomation.com>.
* Modified CWSMTP to correctly destroy recipients,
message and message data when we are
setting again those values.
* Applied patches from Matt Bendiksen so that
we correctly determine the byte border in
CWMD5 and we now build Pantomime as
the Universal Binary framework.
2006-09-02 Ludovic Marcotte <ludovic@Sophos.ca>
* We now handle correctly EXPUNGE responses
over IMAP when we haven't yet had the time
to FETCH expunged messages.
2006-06-11 Ludovic Marcotte <ludovic@Sophos.ca>
* Applied a patch from Lorenz Mösenlechner
<moesenle@in.tum.de> to set the maximum
number of bytes to write when using SSL
to 1024 in order to prevent a strange
bug in SSL_write() under Mac OS X.
2006-06-06 Ludovic Marcotte <ludovic@Sophos.ca>
* Cleaned a bit the IMAP code.
2006-05-28 Ludovic Marcotte <ludovic@Sophos.ca>
* Improved the message reply code to consider
all text parts.
2006-05-15 Ludovic Marcotte <ludovic@Sophos.ca>
* Cleaned all the notification / perform
selector code.
* Removed the old Xcode project file and added
the new one.
2006-05-10 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWMessage: -headerValueForName to perform
the search in a case-insensitive way.
2006-05-07 Ludovic Marcotte <ludovic@Sophos.ca>
* We now handle correctly "fast IMAP folder switching".
* We now handly correctly messages with the broken
iso8859_1 charset specification.
* Fixed any potential memleaks in NSString+Extensions:
+stringWithData: charset: and if we can't use
iconv_open(), we fall back to US-ASCII.
* Moved CWIMAPStore -capabilities to CWService and
implemented it in CWPOP3Store and CWSMTP.
* Documented CWFolder.
* Modified CWService: -updateRead to replace the
malloc/free call with a static buffer.
2006-04-30 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixes some issues on MingW with local mailboxes.
2006-04-29 Ludovic Marcotte <ludovic@Sophos.ca>
* More cleanups.
* Fixed a bug in CWIMAPMessage: -setInitialized where
we really set the message as an initialized one
when it's finished loading. Also modified CWIMAPStore
to handle this.
2006-04-25 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixed a potential crashing bug in CWLocalStore:
-folderForName: (if we are passing nil values).
2006-04-24 Ludovic Marcotte <ludovic@Sophos.ca>
* Some cleanups.
* We now use recv()/send() instead of read()/write()
in CWTCPConnection (on sockets) so that the same
code can be used on both UNIX and win32.
* Fixed a bug CWLocalFolder+mbox:
-numberOfMessagesFromData.
* Fully ported Pantomime to MingW. This is an initial
port that seems to work rather well so far. It likely
contains some bugs and it needs a lot of testing
and love, of course.
2006-04-09 Ludovic Marcotte <ludovic@Sophos.ca>
* Corrected the notification names posted in
the CWSMTP and CWSendmail classes. We were
using PantomimeTransportMessageSent and
PantomimeTransportMessageNotSent instead
of PantomimeMessageSent and PantomimeMessageNotSent.
* Modified CWFolder: -expunge - removed the parameter
to return deleted messages. This logic should
be done in the callee.
* Defined all notification names as constants. Improved
the documentation.
* Fixed some compiler warnings with gcc 4.x
2006-04-08 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixed the IMAP code so that we if send an empty
password and the server doesn't accept it, we
inform our delegate that the authentication failed.
* Fixes when informing the delegate on search
completion and more.
* Added notification/delegate methods to handle
a SMTP transaction reset.
* Improved the SimpleSMTP example to show how to
send the same message over the same connection
more than once.
2006-03-31 Ludovic Marcotte <ludovic@Sophos.ca>
* It's now possible to obtain the last command
sent by any CWService subclasses.
2006-03-25 Ludovic Marcotte <ludovic@Sophos.ca>
* Added initial TLS support for IMAP, POP3
and SMTP services.
2005-12-23 Ludovic Marcotte <ludovic@Sophos.ca>
* We now correctly strip Lotus Notes' and
Novell GroupWise "re" prefix in the Subject
when replying to a mail.
2005-12-22 Ludovic Marcotte <ludovic@Sophos.ca>
* We correctly set the SONAME to 1.2. Bug reported
by Hubert Chan <hubert@uhoreg.ca>.
2005-12-19 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixed the CWSMTP class in order to not remove
the original recipients list when sending
the message.
* Rewrote the CWInternetAddress class to not
use the old ELM address parsing code. More
refactorings are to come with regard to this
old ELM code, which doesn't support non-ASCII
characters too well.
* Fixed the non-blocking connect code in TCPConnection.m
2005-08-14 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixed a missing include in CWDNSManager for OS X.
* Added a new version of striphtml(). Patch from
Richard Frith-Macdonald <richard@brainstorm.co.uk>.
2005-03-20 Ludovic Marcotte <ludovic@Sophos.ca>
* Lots of small cleanups (wrt warnings) and
documentation improvements.
* Modified CWSMTP to post notifications before
invoking the delegate methods.
* Modified CWService: -writeData: so that we
don't try to enable the write callback if
we are not connected to the remote host.
2005-03-13 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWService: -cancelRequest to flush the command
queue and CWIMAPStore: -reconnect to flush the read/write
buffers before attempting to reconnect.
2005-03-02 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWFolder: -dealloc to set the CWMessage's
instances folder to nil in case something was
retaining those instances and try to access the
_folder ivar.
2005-02-27 Ludovic Marcotte <ludovic@Sophos.ca>
* Moved the timeout definition code from CWConnection
to CWService.
2005-02-25 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWService: -_removeWatchers so we
immediately return if we are not connected.
2005-02-23 Francis Lachapelle <francis@Sophos.ca>
* Updated the XCode project file; added
NSScanner+Extensions.{h,m}
2005-02-23 Ludovic Marcotte <ludovic@Sophos.ca>
* Implemented service's disconnection support
and IMAP reconnection support. Documented everything.
2005-02-06 Ludovic Marcotte <ludovic@Sophos.ca>
* Improved CWLocalStore: -createFolderWithName:
type: contents:
2005-01-24 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWSMTP: -authenticate:... so that if
an unknown / unsupported mechanism is provided,
we call -authenticationFailed: (and post
the notification)
* Modified CWService to post the notifcation
before calling the delegate method. Same
in CWConstants.h.
* Added a note in CWService.h to clear up the
deallocation process of CWService instances.
* Modified CWService: _tick so that we honor
the connection timeout of the CWTCPConnection
instance (default to 60 seconds).
2005-01-22 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWIMAPStore: _folderNameFromString:
to handle better literal responses.
2005-01-16 Ludovic Marcotte <ludovic@Sophos.ca>
* Added NSScaner+Extensions in order to define the
-scanUnsignedInt: method, which we implement.
Those files need to be added to the PB and Xcode
project files.
* Added a patch from "Konstantin B. Bukharov" <bkb@sw.ru>
that replaces all occurences of int by unsigned
int wrt the UID IMAP code in order to support
very large UID:s.
* Fixed the code that renamed maildir mailboxes.
* Updated the PB project file. The Xcode project
file NEEDS to be also updated.
* Added a small fix to the NSScanner extension
to not generate exceptions when -scanUnsignedInt:
reaches the very end of the string.
2005-01-15 Ludovic Marcotte <ludovic@Sophos.ca>
* We now post a PantomimeFolderCloseCompleted (and
call -folderCloseCompleted: on the delegate) when
we close a local or IMAP folder.
2005-01-10 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWSMTP to improve the data transparency
code (in speed) and also to remove the Bcc: header
before sending the DATA to the server. Some
servers (like qmail) don't automatically remove it.
2005-01-09 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWService: -cancelRequest to unconditionally
close the connection and remove the watchers even
if we are not yet connected.
2005-01-08 Ludovic Marcotte <ludovic@Sophos.ca>
* Added fixes to parse 8-bit mailbox names
in CWIMAPStore: -_parseLIST and -_parseLSUB.
2005-01-02 Ludovic Marcotte <ludovic@Sophos.ca>
* Set the tag to v1_2_0pre1
* Released 1.2.0pre1.
2005-01-01 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWIMAPStore: -sendCommand: ... so that
we do NOT skip the command if it's an IMAP APPEND
command which has the same parameters as an existing
command in the command queue.
2004-12-26 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified the macros so they all accept the
delegate.
* Modified CWServer: -updateRead so that if we
are connected and we read 0 byte, we call
-connectionLost: and post the associated notification.
* Modified CWService: -_removeWatchers to remove
all ALL watchers, for all modes.
2004-12-24 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixed the message appending code in CWLocalFolder
so it accepts messages composed of only headers.
2004-12-23 Ludovic Marcotte <ludovic@Sophos.ca>
* Added code to obtain messages from a mail
spool file.
* Reviewed the mbox locking code so it is
more robust and don't rely (unless we
are on Linux) on flock().
* Small fixes so things compile on Solaris
2004-12-22 Ludovic Marcotte <ludovic@Sophos.ca>
* We now use gethostname() instead of
[[NSHost currentHost] name] since this causes
problems on Cocoa when DNS resolutions can't
be done properly.
* Added some notes wrt using Pantomime in your
application, especially on OS X with the
-DMACOSX compiler flag.
2004-12-19 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWMessage: -setRecipients: to always
remove the previous recipients.
2004-12-13 Ludovic Marcotte <ludovic@Sophos.ca>
* Cleaned up some more the maildir code. Moved
the generation of the "info" string into CWFlags
(added the method -maildirString).
* Modified the maildir and mbox code to return
deleted messages in the notification. Updated
the documentation.
* Moved the code that parses the maildir's info
string from CWLocalFolder+mbox (shared with
the mbox code) to CWFlags's addFlagsFromData:
for which the "format:" parameter was added.
Updated the documentation.
2004-12-07 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWPart: -dataValue so we don't add
an empty filename for no good reason when we
deal with application/*, audio/*... parts.
2004-12-08 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified NSString+Extensions so we correctly
cast the returned value of iconv_open() to
a signed type. Patch from
Robert L. Masterson <rlm@sss.com>
2004-12-06 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified CWLocalStore so we include the number
of messages in the mbox we import (if any) when
creating a mailbox.
Added CWLocalFolder+mbox: +numberOfMessagesFromData:
to help doing this.
2004-11-28 Ludovic Marcotte <ludovic@Sophos.ca>
* Updated the documentation.
* Renamed CWMessagew: -mimeVersion to -MIMEVersion
and -setMimeVersion: to -setMIMEVersion:
* Renamed CWPart: -isMimeType: subType: to
-isMIMEType: subType:
* Renamed Parser: +parseMimeVersion: inMessage:
to +parseMIMEVersion: inMessage:
* CWStore: -initWithURL: now accepts a CWURLName
instead of a NSString instance.
* Updated the XCode project file. Thanks goes
to Julian Mayer.
2004-11-27 Ludovic Marcotte <ludovic@Sophos.ca>
* Reoganized and reimported the sources.
* Converted to a Framework under GNUstep.
* Bumped the official version number (for
the underlying libs) to 1.2.0.
* Optimized the maildir code. It's now fully
usable with large mailboxes.
* Added the "CW" prefix to all classes.
* Updated the OS X port and the PB file.
* Fixed a bug in CWCacheManager. We now decode
CacheManager as CWCacheManager. This issue was
only occurring on OS X.
2004-11-22 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified the GNUmakefile files for the
Examples so they work on OS X.
* Improved the async I/O code by listening in
all modes for write availability. This change
affects only GNUstep users as it was already
working well and this way on OS X.
2004-11-21 Ludovic Marcotte <ludovic@Sophos.ca>
* Protected InternetAddress: -initWithString:
against nil values.
* Cleaned up the code related to the mbox
message separator generation.
2004-11-09 Ludovic Marcotte <ludovic@Sophos.ca>
* Cleaned quite a bit the documentation and added
informal protocols (TransportClient, SMTPClient
and ServiceClient).
* Added examples! See the Examples directory.
2004-11-07 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified IMAPFolder: -close to set the folder
to 'nil' for all messages.
2004-10-31 Ludovic Marcotte <ludovic@Sophos.ca>
* We now assume that an empty charset is like
iso-8859-1 when decoding messages. This is useful
to prevent lame Ximian Evolution bugs.
2004-10-30 Ludovic Marcotte <ludovic@Sophos.ca>
* We now cache correctly the Message-ID when
generating a new message.
2004-10-10 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixed a small bug in LocalFolder: _findPart:...
in which we were inverting the behavior of
the PantomimeCaseInsensitiveSearch constraint.
2004-09-26 Ludovic Marcotte <ludovic@Sophos.ca>
* We now space-stuff the "\nFrom " lines
instead of inserting a > in LocalFolder:
-appendMessageFromRawSource:.
* Renamed -stringByReplacingOccurrencesOfString: withString:
to stringByReplacingOccurrencesOfCharacter: withCharacter:
in the NSString extension.
* We now return a char instead of a NSString when calling
-folderSeparator on a Store instance.
2004-09-25 Ludovic Marcotte <ludovic@Sophos.ca>
* We now listen in all common modes (instead of just
the default mode) for socket activity.
2004-09-18 Ludovic Marcotte <ludovic@Sophos.ca>
* We correctly post the notification that the list
of folders (or subscribed folders) is loaded
in both IMAPStore and LocalStore.
2004-09-12 Ludovic Marcotte <ludovic@Sophos.ca>
* We now correctly close the socket in case a name
resolution (or an other error) occurs in
TCPConnection: -initWithName: port: ...
2004-09-11 Ludovic Marcotte <ludovic@Sophos.ca>
* Added a missing "break" in IMAPStore: -_parseNO
* We correctly remove the folder from the list of
open folders if we weren't able to open it.
2004-08-22 Ludovic Marcotte <ludovic@Sophos.ca>
* Optimized the IMAP message expunge code when the
folder is threaded.
2004-08-15 Ludovic Marcotte <ludovic@Sophos.ca>
* Updated the OS X project file (PB).
2004-08-12 Ludovic Marcotte <ludovic@Sophos.ca>
* Added code to set back the flags to messages
after a STORE operation. We also now post
a notification when the STORE operation has
completed.
2004-07-25 Ludovic Marcotte <ludovic@Sophos.ca>
* Enhanced the fetch and search IMAP code.
2004-07-23 Ujwal S. Setlur <ujwal@setlur.org>
* Fixed a freeze problem by correcting CFSocket
release method from free() from CFRelease()
in Service.
2004-07-20 Ujwal S. Setlur <ujwal@setlur.org>
* Fixed bug in NSRunLoop:-removeEvent.
2004-07-13 Ludovic Marcotte <ludovic@Sophos.ca>
* We include Constants.h in DNSManager.m so the
compilation won't fail on OS X.
2004-07-12 Ludovic Marcotte <ludovic@Sophos.ca>
* Added a small DNS cache manager to Pantomime.
It will eventually also offer async DNS resolutions.
For now, it only cache DNS values returned by
gethostbyname().
* Improved the code in IMAPStore that deals with
creating, deleting and renaming mailboxes.
2004-07-05 Ludovic Marcotte <ludovic@Sophos.ca>
* Added two new notifications/delegate methods:
- PantomimeFolderOpenCompleted/-folderOpenCompleted:
- PantomimeFolderOpenFailed/-folderOpenFailed:
in order to correctly and asynchronously handle
folder open operations.
* Added some range checks in Message:
(Private) -_computeBaseSubject.
* Enabled partial writes support in SSL for well
supporting progress indication.
2004-06-29 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified Service.m to support adding more
runloop modes for network events.
2004-06-25 Ludovic Marcotte <ludovic@Sophos.ca>
* We now handle untagged responses after a folder
has been closed. Fixes a crash issue.
2004-06-15 Ludovic Marcotte <ludovic@Sophos.ca>
* Some documentation fixes.
2004-06-09 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified the GNUmakefile and the README
wrt RedHat 9 / Fedore / RHEL and their
kerberos'ised OpenSSL packages.
* Rewrote the code in POP3Store: -updateRead
in order to handly errors properly and
be a little bit faster than before.
* Replaced the [_queue removeObject: [_queue lastObject]]
calls to [_queue removeLastObject].
2004-06-06 Ludovic Marcotte <ludovic@Sophos.ca>
* Removed some NSLog() calls.
2004-06-04 Ludovic Marcotte <ludovic@Sophos.ca>
* Documented Constants.h and improved the code
wrt those changes.
2004-06-03 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified IMAPStore so that we now set a default
empty body to messages for which we have read
no literals.
2004-06-02 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixed a bug in the handling of untagged responses
AFTER tagged responses. We were assuming that for
a FETCH untagged responses occuring after a tagged
FETCH response, a _currentQueueObject was present.
This occurs with the NetMail server.
* Updated the OS X project file wrt previous changes.
* Renamed LocalFolderCacheManager to LocalCacheManager
to match other CacheManager subclasses's name.
* Updated again the OS X project file.
* Removed Pantomime's SSL bundle. This code is no longer
used as the SSL code is directly integrated into
the framework (ie., no longer requires a bundle).
2004-05-31 Ludovic Marcotte <ludovic@Sophos.ca>
* Added CacheManager and refactored LocalFolderCacheManager,
POP3CacheManager and IMAPCacheManager to use the new
superclass which does most of the work.
* Documented io.h, URLName, CacheManager, LocalFolderCacheManager,
IMAPCacheManager and POP3CacheManager.
* Refactored a lot of code wrt the introduction of
the CacheManager class.
2004-05-29 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified Service.m (the NSRunLoop's OS X extension)
so that we don't deal with callbacks methods if
the connection hasn't yet been established. This
can happen on OS X and lead to a crash.
* Modified Container: -childAtIndex: to be sure we
don't get past the end of the child list.
2004-05-25 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified Service: _removeWatchers to correctly
invalidate the _socket ivar on OS X and also
remove the key/value from the fd_to_cfsocket
map table. This should fix quite a lot of bugs
in the new async I/O code on OS X. We also
free the _socket ivar.
2004-05-24 Ludovic Marcotte <ludovic@Sophos.ca>
* More documentation: MimeUtility, Part, Message,
MimeMultipart, IMAPFolder, POP3Folder, LocalFolder,
Store, LocalStore, LocalMessage, Container
and Charset
* Some refactorings, cleanups and optimizations.
* Removed Charset: -characterForCode: since it
was unused.
2004-05-23 Ludovic Marcotte <ludovic@Sophos.ca>
* More documentation: FolderInformation, MacOSXGlue,
UUFile, InternetAddress, MD5, NSFileManager+Extensions,
Connection, TCPConnection, Transport, SMTP, Service,
Sendmail, POP3Store, IMAPStore, IMAPMessage, POP3Message.
* Changed MD5: -initWithString: encoding: to simply
-initWithData: and modified the callers.
* Refactored the Sendmail class.
2004-05-18 Ludovic Marcotte <ludovic@Sophos.ca>
* Added TCPConnection: -isSSL so we can later know
if we are using or not a SSL connection.
2004-05-17 Ludovic Marcotte <ludovic@Sophos.ca>
* Fixed a small mem leak in Message: -dataValue.
The code to obtain "aCalendarDate" was incorrect.
Also did some tidyups.
* Documented more classes/categories in Pantomime. In particular,
NSString+Extensions, NSData+Extensions, CWRegEx, Parser and Flags.
* Fixed a potential bug in CWRegEx: -initWithPattern: flags:
in case an error was occuring.
2004-05-15 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified MimeUtility: +encodeWordUsingQuotedPrintable:
prefixLength: to correctly fold line using quoted printable
by always adding a leading space, ignoring the fact if
one was there or not since it's actually part of the string,
so it must NOT be considered as a folded line indicator
(space or tab character).
2004-05-11 Ludovic Marcotte <ludovic@Sophos.ca>
* Added a missing #import in Folder.h so things
compile on OS X.
2004-05-10 Ludovic Marcotte <ludovic@Sophos.ca>
* Added a two range checks in NSString+Extensions:
-unwrapWithQuoteWrappingLimit:
* Modified the IMAP code to fetch the Content-Type
(and cache it) instead of the Mime-Version. This
should fix strange issues when the Content-Type
is folded on > 1 lines. This is still experimental
and could change back over time.
2004-05-08 Ludovic Marcotte <ludovic@Sophos.ca>
* Added more documentation to Folder.h
2004-05-03 Ludovic Marcotte <ludovic@Sophos.ca>
* Lots of cleanups and refactorings.
* Added support for non-ASCII passwords
in IMAP.
* Modified IMAPStore: -sendCommand::: so we
never send a command that is already in queue.
* Added a _selectedFolder ivar to IMAPStore and we
now make use of it. Also, the folders that are open
but not selected still get into the _openFolders ivar.
* Added Folder: -propertyForKey: and -setProperty: forKey:
so a developer can not set extra properties on Folder
objects, much like it's possible on Message objects.
* Modified LocalStore and IMAPStore to no longer return
nil when a folder is already open and we ask to open
it again. We rather send a reference to the open folder.
* Added more documentation to Folder.h
2004-04-23 Ludovic Marcotte <ludovic@Sophos.ca>
* Modified IMAPStore: -_parseOK to handle weird
SEARCH untagged responses from UW IMAPd.
2004-04-20 Ludovic Marcotte <ludovic@Sophos.ca>
* Improved the reading of the rest of FETCH
responses for funky responses Microsoft