This repository has been archived by the owner on Nov 23, 2022. It is now read-only.
forked from libesmtp/libESMTP-old
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
1286 lines (1010 loc) · 46.9 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
* smtp-tls.c
Each component matched by match-domain() is either a single '*' which
matches anything or a case-insensitive comparison with a string of
alphanumeric characters or a '-'. This is more restrictive than
RFC 2818 appears to allow and replaces the previous match which was
supposed to allow multiple wildcards but which just didn't work.
Revised check_acceptable_security() to check subjectAltName falling
back to commonName only if subjectAltName is not available.
1.0.5 never released
--------------------
2006-10-31 Brian Stafford <[email protected]>
* protocol.c
The Gmail server reports enhanced status codes but then fails to
provide them in some cases. The parser is now tolerant of this but
warns the application using a new event flag SMTP_EV_SYNTAXWARNING
that it is progressing despite the syntax error.
* headers.c
Fixed bug where To, Cc, Bcc etc. accepted only single values instead
of a list.
The comparison on the return value of gettimeofday() was reversed.
2005-12-16 Stable Version 1.0.4 released
----------------------------------------
2005-12-16 Brian Stafford <[email protected]>
* headers.c
Replaced static counter used when generating the default Message-Id
header with getpid() to minimise the risk of 2 processes generating
the same Message-Id. If the platform provides gettimeofday() this is
used to further reduce the possibility of collision.
Thanks to Dmitry Maksyoma <[email protected]> for spotting this and
suggesting the fix.
* Makefile.am */Makefile.am
Replace CFLAGS with AM_CFLAGS to silence warning from automake.
* Makefile.am COPYING COPYING.LIB
Fixed the names of the files with the GPL and LGPL. It seems
the LGPL version of COPYING got zapped by autoconf at some time
in the past.
2005-08-29 Brian Stafford <[email protected]>
* acinclude.m4
Fix underquoted definition of ACX_WHICH_GETHOSTBYNAME_R. Thanks
to Matthias Andree <[email protected]>.
2005-07-25 Brian Stafford <[email protected]>
* errors.c
Added #ifdefs for some of the EAI_ constants used by getaddrinfo()
which are not defined by OSX.
Thanks to Thomas Deselaers <[email protected]>
2005-07-21 Brian Stafford <[email protected]>
* acinclude.m4
Fix cross compiling issue when detecting snprintf as suggested by
Chris Richards <[email protected]>
2005-07-02 Brian Stafford <[email protected]>
* smtp-api.c
Plug memory leaks in smtp_destroy_session() and smtp_set_server().
Thanks to Bas ten Berge <[email protected]> for report and patch.
Also reported by Heikki Lindholm <[email protected]>
2005-02-03 Brian Stafford <[email protected]>
* protocol.c
exts was set with the wrong flag (DSN) when checking if CHUNKING
is a required extension.
2004-07-16 Brian Stafford <[email protected]>
* smtp-tls.c
Applied OpenSSL patch from Pawel Salek when checking subjectAltName.
2004-04-20 Stable Version 1.0.3 released
----------------------------------------
2004-04-20 Brian Stafford <[email protected]>
* memrchr.c configure.in
Added memrchr() implementation for systems that don't have one.
* smtp-tls.c
Applied patches from Pawel Salek to check subjectAltName for
wildcarded domain name when validating server certificate.
2004-01-06 Stable Version 1.0.2 released
--------------------------------------
2003-12-01 Brian Stafford <[email protected]>
* smtp-tls.c examples/mail-file.c
Applied patch from Pawel Salek.
* smtp-tls.c
Fixed typo in check_file() which prevented it from doing quite
the right thing.
The domain name check for the server certificate is now implemented
using the wildcard match described in RFC 2818.
Check_file() and check_directory() return different values for
unusable vs absent files.
2003-09-12 Stable Version 1.0.1 released
--------------------------------------
2003-09-11 Brian Stafford <[email protected]>
* protocol.c smtp-auth.c smtp-bdat.c smtp-etrn.c smtp-tls.c
More thoroughly check return value from read_smtp_response().
* libesmtp.h errors.c
Added new "Client error" error code. This is just a cop-out,
used when an API called by libesmtp fails.
* base64.c
Make conversions immune to NULL source data,
* examples/mail-file.c
Cleaned up some compiler warnings
2003-09-02 Brian Stafford <[email protected]>
* siobuf.[hc]
Added a few extra sio_ calls. Not actually used in libESMTP though.
2003-07-29 Brian Stafford <[email protected]>
* concatenate.c errors.c getaddrinfo.c headers.c htable.c
* protocol.c siobuf.c
Don't perform zero length operations using the memxxx() functions.
This may avoid segfaults on some platforms or libraries.
* siobuf.c
Improved handling of flushes in sio_write() particularly in the
case where data would exactly fill remaining space in the buffer.
2003-07-27 Brian Stafford <[email protected]>
* rfc2822date.c
Correct leap year compensation for January and February in
libesmtp_mktime().
2003-07-27 Brian Stafford <[email protected]>
* examples/Makefile
Changed compiler flags from -ansi to -std=c99 and added -W
2003-03-04 Brian Stafford <[email protected]>
* headers.c
Eliminated bug where find_header() could pass -1 to the length
argument of memchr() causing a core dump on some architectures.
2003-02-26 Brian Stafford <[email protected]>
* libesmtp-private.h protocol.c smtp-bdat.c
M$ Exchange does not accept a chunk size of 0 in BDAT 0 LAST as
explicitly permitted by RFC 3030, *sigh*. Hackish workaround
implemented.
2003-01-27 Brian Stafford <[email protected]>
* configure.in Makefile.am
Added DIST_SUBDIRS macro to make sure tarball gets built properly.
This one slipped past 'make distcheck' last time for some reason
but then autoconf & friends are totally inscruitable.
* ntlm/ntlmdes.c
OpenSSL 0.9.7 changes some typedefs. Changed to suit, should
still be compatible with previous OpenSSL versions.
2002-11-09 Stable Version 1.0 released
--------------------------------------
2002-11-09 Brian Stafford <[email protected]>
* configure.in
All version 1.0 features enabled by default.
--enable-isoc now sets -std=c99 instead of -ansi
* headers.c
Added missing check for NULL pointer in destroy_header_table.
Reversed order of freeing header structures and hash table to
avoid referencing freed memory. (Wally Yau)
2002-06-24 Brian Stafford <[email protected]>
* smtp-etrn.c
Compilation fails with `./configure --enable-more-warnings=picky
--disable-etrn'. Added missing __attribute__ ((unused)) markers
to offending function arguments to avoid this.
2002-06-24 Version 1.0rc1 released
----------------------------------
2002-06-24 Brian Stafford <[email protected]>
* configure.in Makefile.am protocol.c protocol-states.h
* smtp-api.c smtp-bdat.c libesmtp.h libesmtp-private.h
Added experimental support for the SMTP CHUNKING extension.
* configure.in
Enable non-standard AUTH= response by default.
2002-05-31 Brian Stafford <[email protected]>
* protocol.c smtp-api.c libesmtp.h libesmtp-private.h
Added API call to permit protocol timeouts to be set.
* ntlm/ntlmstruct.c
Replaced use of byteswap.h and bswap_{16,32} with locally defined
functions.
2002-04-24 Version 0.8.12 released
----------------------------------
2002-03-14 Brian Stafford <[email protected]>
* headers.c
Setting Hdr_PROHIBIT did not work properly. Thanks to Ronald
F. Guilmette for pointing this out.
2002-03-13 Brian Stafford <[email protected]>
* protocol.c smtp-api.c libesmtp.h configure.in
Revoked deprecated status from smtp_option_require_all_recipients
and remove the corresponding --enable-require-all-recipients
parameter to configure.
2002-03-07 Brian Stafford <[email protected]>
* libesmtp.h libesmtp-private.h protocol.c smtp-tls.c
RFC 2487 is obsoleted by RFC 3207. Updated references.
* protocol.c
The check for required STARTTLS was omitted when processing the
HELO command. If a server did not implement EHLO the session
would proceed instead of quitting. Check added and the event
callback added to report the missing extension to the
application.
2002-03-06 Version 0.8.11 released
----------------------------------
2002-03-04 Brian Stafford <[email protected]>
* protocol.c
Fix buffer overflow problem in read_smtp_response. This
overflow could be exploited by a malicious SMTP server to
overwrite the stack and hence a carefully crafted response could
cause arbitrary code to be executed. Also took the opportunity
to add a related check for a potential DoS attack which makes
use of excessively long SMTP responses. Thanks to Colin Phipps
for detecting this.
* concatenate.[ch]
New function cat_shrink to shrink-wrap the allocated buffer.
* libesmtp.h errors.c
New unterminated response error code and description.
* ntlm/ntlmstruct.c configure.in crammd5/md5.h
stdint.h does not yet seem to be widely available causing
compilation to fail on some platforms. Changed uint{16,32}_t to
unsigned{16,32}_t, detect correct sizes with autoconf and added
typedefs in ntlmstruct.c. Changed detection types from int to
unsigned int in configure.in and made corresponding changes in
crammd5/md5.h. Thanks to Ronald F. Guilmette for spotting this.
2002-02-12 Brian Stafford <[email protected]>
* strcasecmp.c strncasecmp.c
These now return the correct sign of result for differing strings.
2002-01-30 Version 0.8.10p1 released
------------------------------------
2002-01-29 Brian Stafford <[email protected]>
* ntlm/Makefile.am
Added ntlm.h to list of sources. This omission stopped 0.8.10
form building.
2002-01-29 Version 0.8.10 released
----------------------------------
2002-01-26 Brian Stafford <[email protected]>
* various files
Copyright messages now show the correct year.
Minor tweaks to kill warnings when compiling with
--enable-more-warnings=picky. In a few cases this meant adding
a few casts which superficially look unnecessary. In other
cases this meant adding a number of #undefs to get a vanilla
ISOC environment.
* missing.h
Added missing.h which has declarations for Posix/SUS functions
which may be missing from system libraries on some platforms.
* snprintf.c configure.in
Detect broken or missing snprintf() implementations and replace
if necessary. N.B. the replacement snprintf.c is taken from the
libmutt distro and it too, is broken. However, it *does*
correctly truncate and \0 terminate output which is too long to
fit in the buffer and that is the behaviour I rely on.
* strdup.c
Added strdup() for systems which don't have it.
* examples/mail-file.c
Check for errors when smtp_start_session returns. Fixed
authinteract so that responses are not accidentally overwritten.
2002-01-24 Brian Stafford <[email protected]>
* htable.c configure.in strndup.c
Altered code to avoid the use of strndup. strndup.c is removed
from the distribution.
2002-01-16 Brian Stafford <[email protected]>
* ntlm/* configure.in
Added NTLM auhentication module.
2002-01-07 Brian Stafford <[email protected]>
* concatenate.c errors.c siobuf.c
Check return value from snprintf.
2002-01-03 Version 0.8.9 released
---------------------------------
2002-01-02 Brian Stafford <[email protected]>
* configure.in
Added -lsocket to list of libraries searched for getaddrinfo().
2001-12-29 Brian Stafford <[email protected]>
* protocol.c configure.in
Added hack for stupid SMTP servers that advertise AUTH using
non-standard syntax from an internet draft that never made it
into RFC 2554. Because this feature is non-standard, it must
be explicitly enabled when configuring.
rsp_{helo,ehlo}() now reset the auth mechanism list before
processing the result. Previously this was done only when AUTH
was advertised.
* smtp-auth.c
set_auth_mechanisms no longer resets the mechanism list
before processing. Added a test to avoid duplicates in the
mechanism list. select_auth_mechanism now guarantees to select
the *first* usable mechanism. The net effect of these changes
is that multiple calls to set_auth_mechanisms accumulate.
* auth-client.c
Rearranged code in auth_set_mechanisms and load_client_plugin
avoiding the need to repeat the test for plugin acceptability.
2001-12-24 Brian Stafford <[email protected]>
* configure.in
Compiling with picky warnings turned on was broken. Also,
recent glibc versions seem to have decided that strcasecmp and
a few other functions are GNU extensions causing compiles to
fail because of missing declarations. Naturally, autoconf does
not detect this. Added a _GNU_SOURCE define to fix this on
potentially affected systems. No, I don't like it either.
* strcasecmp.c strncasecmp.c strndup.c
Added these functions in case some systems don't provide them.
2001-12-21 Brian Stafford <[email protected]>
* htable.[ch]
h_insert now returns a void pointer to the data instead of a
struct h_node eliminating the need for the h_dptr macro and
for code using hash tables to maintain two pointers instead
of one.
* headers.c
Updated to use the simpler hash table interface.
2001-12-10 Brian Stafford <[email protected]>
* auth-client.c
Use dlsym and friends directly on platforms that have it.
* configure.in Makefile.am
Detect dlsym, fall back to using libltdl for other platforms.
libltdl is no longer distributed significantly reducing tarball
size.
2001-12-10 Brian Stafford <[email protected]>
* configure.in
A missing comma caused the test for getipnodebyname to fail on
systems which provide it.
2001-12-06 Version 0.8.8 released
---------------------------------
2001-11-30 Brian Stafford <[email protected]>
* crammd5/md5.h
The len parameter of md5_update differed in type between
prototype and definition, preventing compilation if size_t
is not an unsigned int.
2001-11-29 Brian Stafford <[email protected]>
* crammd5/*.[ch]
Moved include of config.h from hmacmd5.h to hmacmd5.c. Make
sure sys/types.h is included since size_t is used.
* configure.in
Added some extra nonsense for systems which redefine
getaddrinfo to something else in netdb.h
2001-11-27 Brian Stafford <[email protected]>
* configure.in errors.c
Add test for broken strerror_r on OSF-1.
2001-11-12 Brian Stafford <[email protected]>
* configure.in
Updated the tests for pthreads. Should now supply the correct
compiler flags on more systems.
2001-11-07 Version 0.8.7 released
---------------------------------
2001-11-05 Brian Stafford <[email protected]>
* errors.h libesmtp.h
Improve handling of error codes from getaddrinfo. Delay mapping
of codes to make debugging easier. libesmtp.h defines new error
codes for the relevant EAI_XXX codes from getaddrinfo.
smtp_strerror will use gai_strerror if appropriate.
2001-10-31 Brian Stafford <[email protected]>
* configure.in
Added test for sun platforms and define __EXTENSIONS__ so that
sun's netdb.h will declare the getaddrinfo stuff. (James McPherson)
* crammd5/md5.[ch]
Type sanity: change u_intXX_t to uintXX_t. Also changed the
argument for the buffer and length to void * and size_t
respectively in md5_update. Buffer for md5_final is now
unsigned char.
2001-10-17 Brian Stafford <[email protected]>
* headers.c
Fixed a core dump bug which strikes when existing headers in a
message are substituted.
* Makefile.am
Reinstated libesmtp.spec into tarballs.
2001-08-17 Version 0.8.6 released
---------------------------------
2001-10-17 Brian Stafford <[email protected]>
* libesmtp-config.in
Corrected output for --cflags. Added --numeric-version to make it
simpler for configure scripts to compare version numbers.
* configure.in libesmtp-spec.in
Merged changes from Cristophe Lambin. Spec file now creates
libesmtp and libesmtp-devel packages. If OpenSSL is used
spec file will have openssl dependencies added.
* Makefile.am
Make sure libesmtp.spec and config.h do not make their way into
tarballs. These confused the build on some platforms.
2001-10-16 Brian Stafford <[email protected]>
* configure.in
Added --with-openssl[=DIR] option, removed --enable-starttls.
OpenSSL dependent features are now enabled or disabled en masse
using --with-openssl.
* crammd5/md5.[ch] crammd5/Makefile.am
Added public domain MD5 implementation to crammd5 module. This
enables the CRAM-MD5 mechanism to be built, even if OpenSSL is
not available.
* smtp-tls.c
Applied patch from James McPherson correcting __attribute to
__attribute__
2001-08-05 Version 0.8.5 released
---------------------------------
2001-10-05 Brian Stafford <[email protected]>
* libesmtp.spec.in
Make sure libesmtp-config gets installed!
* configure.in
Removed STARTTLS's experimental status. The code works and just
needs debugging. Certificate management is basic but usable.
Set defines for strict iso/posix/xopen in headers only when
--enable-isoc is in force. This helps avoid disabling the
tm_gmtoff member in the BSD struct tm unnecessarily.
* siobuf.[ch]
sio_read/write use void buffers rather than char.
2001-09-28 Brian Stafford <[email protected]>
* smtp-tls.c
Use the event callback to report STARTTLS in use if the security
level was OK.
* rfc2822date.c
Provide a function to portably calculate the timezone offset
when struct tm does not provide tm_gmtoff.
* configure.in
Don't bother to check for gmtime[_r] since it isn't used any more.
2001-09-26 Brian Stafford <[email protected]>
* headers.c
Make sure set_to accepts NULL for the mailbox value. Added set_cc
which is same as set_to except it fails with a NULL mailbox.
* Most files.
Changed references to RFC 821/822 to RFC 2821/2822 respectively.
2001-09-24 Brian Stafford <[email protected]>
* headers.c
RFC 2822 requires only the originator and date headers to
be present in a message. In particular, the presence of the To:
header is no longer required. RFC 2822's restriction that
headers may not appear multiple times in a messge is enforced
respecting certain special exceptions.
* examples/mail-file.c
Added API call to make sure a To: header is generated if not
in the message.
2001-09-14 Brian Stafford <[email protected]>
* configure.in acinclude.m4 acconfig.h
Reverted to configure.in, reinstated acconfig.h and added
some compatibility stuff to acinclude.m4. All this to try
and be compatible with autoconf 2.5 *and* 2.13. I really
hate autoconf.
2001-09-05 Brian Stafford <[email protected]>
* getaddrinfo.c
Check if NO_ADDRESS is defined and different to NO_DATA
2001-08-27 Brian Stafford <[email protected]>
* protocol.c smtp-tls.c
Move some detail of selecting STARTTLS to smtp-tls.c
* smtp-tls.c
Changed STARTTLS policy for Starttls_ENABLED. If a server offers
STARTTLS, then it must be used and all security requirements must
be met. If STARTTLS is not offered the session continues in
cleartext. Previously, Starttls_ENABLED permitted a session to
continue with possibly compromised security.
2001-08-22 Brian Stafford <[email protected]>
* smtp-tls.c libesmtp.h
More certificate management. Added TLS event reporting.
* smtp-auth.c
Fixed behaviour for zero length responses to server challenges.
* base64.c
Zero length passwords caused an assertion failure in
base64_encode. base64_decode did not correctly strip blanks
from strings not terminated by \0. Neither did it correctly
handle zero length strings.
2001-08-21 Brian Stafford <[email protected]>
* smtp-tls.c libesmtp.h
Added preliminary code for client certificate management.
* siobuf.[ch]
Changed sio_set_tlsclient_ctx to sio_set_tlsclient_ssl. This
makes things slightly more flexible for supplying different
client certificates according to the remote host.
2001-08-20 Brian Stafford <[email protected]>
* message-source.c
Fixed memory leak in msg_source_destroy. (Pawel Salek)
2001-08-16 Brian Stafford <[email protected]>
* configure.ac Makefile.am
Change from using LIBOBJS to LTLIBOBJS. This prevents the
wrong objects from being linked by libtool when building
dynamic libraries. Added code to configure.ac to correctly
set LTLIBOBJS and LTALLOCA.
* smtp-api.c protocol.c errors.c libesmtp-private.h configure.ac
Code now exclusively uses getaddrinfo. Removed #ifdef code for
gethostbyname. Added conditionals for using alternative lwres
library distributed with recent versions of bind. Delete
--enable-gethostbyname option. Add --enable-emulate-getaddrinfo.
2001-08-14 Brian Stafford <[email protected]>
* siobuf.c
Remove unnecessary socket include files.
* getaddrinfo.[ch]
Added emulation of the RFC 2553 getaddrinfo resolver interface
for systems that don't have it.
2001-08-13 Version 0.8.4 released
---------------------------------
2001-08-13 Brian Stafford <[email protected]>
* protocol.c
Completely ignore TLS extension if TLS is already in use.
* smtp-tls.c
Fix wrong comparison when initialising OpenSSL mutexes. Record
the fact that TLS is in use. Change a numeric constant to its
symbolic equivalent.
* crammd5/client-crammd5.c
Correct a typo which prevented the hmac computation being
correctly rendered in hexadecimal.
* examples/mail-file.c
Added --tls and --require-tls options and supporting code.
2001-07-31 Brian Stafford <[email protected]>
* configure.ac
Make plugin directory consistent with RPM.
* libesmtp.spec
Applied patch from Pawel Salek to run ldconfig after installing.
2001-07-30 Brian Stafford <[email protected]>
* protocol.c configure.ac
Check for uname and use it in preference to gethostname which
is not Posix.
2001-07-19 Brian Stafford <[email protected]>
* configure.ac
Check for the presence of the OpenSSL headers as well as
the libraries. Remove --enable-callbacks option.
* smtp-api.c libesmtp.h
Added smtp_version API call.
* message-callbacks.c
Removed callbacks which did \n -> CRLF translation.
* examples/mail-file.c
Use libESMTP provided callback unless the --crlf option is
supplied.
2001-07-07 Brian Stafford <[email protected]>
* protocol.c smtp-api.c
Only include netinet/in.h if it is actually needed.
2001-07-06 Version 0.8.3 released
---------------------------------
2001-07-06 Brian Stafford <[email protected]>
* examples/mail-file.c
Made --help more helpful. Undocumented --no-crlf now renamed
to --crlf and documented. When prompting for authentication
now reads /dev/tty instead of stdin.
* configure.ac
Check for -lsocket.
* protocol.c siobuf.c
Zero errno before calling certain functions. Normally the value
of errno is only tested if the preceeding system call or function
wrapping the system call failed. However, in a few cases, the
functions are called in a loop and the value of errno might
be tested after a successful return. This meant that a test
on the value of errno might yield an invalid result, sometimes
causing the connection to the server to be incorrectly dropped.
Unfortunately this effect depended on the amount of data buffering
provided by the server!
2001-06-29 Brian Stafford <[email protected]>
* protocol.c et al.
Added support for sendmail specific XUSR extension. This informs
sendmail the message is a user submission instead of relay,
so it makes sense to issue the command. Whether it actually
does anything ...
* siobuf.c
Fixed return from poll in raw_read and raw_write so that EINTR
is correctly handled.
2001-06-26 Brian Stafford <[email protected]>
* auth-client.c
Fixed a signed/unsigned comparison that stops compilation
when using -Werror.
2001-06-26 Version 0.8.2 released
---------------------------------
2001-06-26 Brian Stafford <[email protected]>
* protocol.c siobuf.c
Resolved a problem related to blocking/non-blocking polling
for server events. This could lead to deadlock with certain
servers.
2001-06-24 Brian Stafford <[email protected]>
* configure.ac most C sources
Added --disable-isoc option. When using gcc, -ansi -pedantic
are now specified by default since the code compiles without
warnings when using both flags.
Added --enable-debug option to control DEBUG and NDEBUG
definitions. Assert macros used to check arguments to
most internal functions.
2001-06-23 Brian Stafford <[email protected]>
* message-source.c
msg_gets now checks for both \r and \n when searching for line
endings.
* errors.c
API function now includes ommitted the arguments check.
2001-06-22 Brian Stafford <[email protected]>
* protocol.c smtp-api.c configure.ac
Now uses RFC 2553 / Posix protocol independent getaddrinfo where
possible instead of gethostbyname family of resolver functions.
* gethostbyname.c configure.ac
Added ability to use getipnodebyname and corresponding test
for configure.
2001-06-18 Brian Stafford <[email protected]>
* auth-client.c
More thorough argument checking on the auth_xxx APIs.
Added some missing malloc return value checking.
When loading a plugin, make sure it provides a response()
function.
* smtp-auth.c
Added some missing malloc return value checking.
* various sources
Changed some 'int' types to 'size_t'
* message-source.c
In msg_gets, an inconsistent pointer could cause a segfault
after a realloc which moved the original memory block.
Increased sizes of malloc/realloc so that RFC 2821 maximium
line length will not cause realloc.
Added missing malloc/realloc return value checking.
* protocol.c
If an error occurs while copying the message to the SMTP
server drop the connection without terminating the message.
2001-06-15 Version 0.8.1 released
---------------------------------
2001-06-13 Brian Stafford <[email protected]>
* configure.in
is now configure.ac to suit autoconf 2.5
Eliminated some redundant stuff concerned with libtool.
Now uses AC_HELP_STRING macro where appropriate.
Now use standard AC_FUNC_STRERROR_R macro.
Improved checking for time.h and sys/time.h.
* libesmtp-config.in
If libltdl was installed, the list of libraries was set to the
wrong thing.
* errors.c
Only use strerror_r if it actually works.
* rfc822date.c
Try sys/time for struct tm just in case!
2001-06-12 Brian Stafford <[email protected]>
* configure.in
Now checks -lnsl when seraching for gethostbyname_r.
Only print a warning if strerror_r is not found.
Chose much more picky compiler warnings when using gcc - this
has knock on effects through many files. Compiles should now
be much cleaner on more platforms.
* siobuf.h
Gcc will now check sio_printf()'s argument types against the
format string.
* headers.c
Eliminated a variable which was set but not used.
The as yet unimplemented smtp_set_resent_headers API will
succeed if `onoff' is zero.
* protocol.c
Eliminated variables which were set but not used.
Fixed an uninitialised variable bug which might strike if the
EHLO command received a 5xx status code. This is likely with
older servers and may result in libESMTP dropping the connection
instead of trying HELO.
Fixed an uninitialised variable bug which could cause the protocol
to QUIT inadvertently after processing the response to EHLO.
* errors.c
Rewrote handling of the thread specific data.
2001-06-12 Version 0.8.0 released
---------------------------------
2001-06-11 Brian Stafford <[email protected]>
* protocol.c smtp-api.c
DELIVERBY extension done - still to test.
2001-06-09 Brian Stafford <[email protected]>
* message-callbacks.c libesmtp.h
Added standard callback functions for reading messages. libesmtp.h
provides macros to simplify using them.
2001-06-07 Brian Stafford <[email protected]>
* message-source.c
Changed the declaration of the message callback to make it clearer
that the first argument in fact points to internal state allocated
by the callback. Strings returned to code reading the message
are now const char *.
2001-05-31 Brian Stafford <[email protected]>
* smtp-api.c protocol.c configure,in
Had another go at the smtp_require_all_recipients() API hack.
The original implementation hoped the SMTP server would report
failure on receiving a zero length message but this isn't
reliable. This API must be explicitly enabled by ./configure.
2001-05-28 Brian Stafford <[email protected]>
* smtp-auth.c
Make sure the client won't attempt to authenticate when already
authenticated. This could happen if having authenticated and
enables a security layer, the server offers AUTH again.
* smtp-tls.c
Make sure the client won't attempt to negotiate TLS when already
using TLS. Also don't use TLS if already authenticated.
* siobuf.c
Make the code for non-blocking sockets + OpenSSL more robust.
* errors.c
Added default case for set_herrno().
2001-05-25 Brian Stafford <[email protected]>
* smtp-auth.c
On authentication failure the same mechanism was selected again
instead of moving on to the next one. This caused an infinite
loop of failing AUTH exchanges.
2001-05-24 Brian Stafford <[email protected]>
* libesmtp.spec.in
Changed "-a 0" option in %setup macro to "-T -b 0"
* configure.in
Removed -Werror from --enable-more-warnings=yes as this can be
bothersome for punters. Added --enable-more-warnings=picky to
stop gcc from using internal prototypes for builtin functions;
also turns on -Werror.
* protocol.c
free_ghbnctx() was called twice if connect() failed, potentially
causing a SIGSEGV. This bug was introduced with support for
gethostbyname_r.
2001-05-23 Brian Stafford <[email protected]>
* configure.in
Incremented library version and reset the age. This is important
because the event callback semantics have changed.
Detect IPv6 sockaddr structure in <netinet/in.h>.
* protocol.c
Added 8BITMIME support. New API call smtp_8bitmime_set_body().
Report extensions after final set is known. STARTTLS or AUTH
can change the set of extensions advertised by the server.
Typo meant the RET=FULL/HDRS parameter was printed as
SIZE=FULL/HDRS in MAIL FROM: (D'oh!)
* errors.c
Changed prototype for smtp_strerror() to allow use of strerror_r.
2001-05-22 Brian Stafford <[email protected]>
* siobuf.c
Fixed calls to encode/decode callbacks and added explanation of
their semantics. This eliminates potential for a buffer
overflow bug when decoding expands data read from the socket.
* libesmtp.spec.in
Fixed inconsistency between package name and tarball.
Use the bz2 version of the tarball as the source.
* Makefile.am
Added libesmtp.spec to extra distribution files.
* gethostbyname.c
Added missing #include <string.h> (gcc builtin prototypes
again - grumble....)
2001-05-21 Brian Stafford <[email protected]>
* siobuf.c
Restructuring of reading/writing and polling to permit use
of non-blocking IO.
* protocol.c
Revised protocol outer loop makes sure the protocol engine reads
data as soon as it becomes available and defers buffer flushes
until after pending data from the SMTP server has been read. In
conjunction with non-blocking output this avoids a potential
deadlock described in RFC 2920 when PIPELINING is in use.
2001-05-20 Brian Stafford <[email protected]>
* smtp-etrn.c
Added experimental support for the ETRN extension.
* protocol.c smtp-api.c
Check for failure to create a message source and added code
to actually destroy it thus plugging a memory leak.
More thorough checking of some API function arguments.
* siobuf.c
Added sio_mark(). When the write buffer is flushed data written
beyond the mark is retained and the mark is deleted.
* protocol.c
Added new event types for flagging required extensions not
available or reporting extensions that provide information to
the application.
Command boundaries are marked in the write buffer. This
prevents partial commands being sent to the SMTP server.
2001-05-18 Version 0.7.1 released
---------------------------------
2001-05-18 Brian Stafford <[email protected]>
* protocol.c
Added AF_INET6 support.
2001-05-17 Brian Stafford <[email protected]>
* protocol.c gethostbyname.[ch] configure.in acinclude.m4
gethostbyname_r() now in its own file which provides a consistent
interface. configure selects which version of the function to
compile for when building threaded code.
* configure.in auth-client.h libesmtp-config.in libesmtp.spec.in
Directory for installing authentication plugins is now
configurable.
2001-05-15 Brian Stafford <[email protected]>
* libesmtp.spec.in
Added to simplify building RPM packages.
2001-05-14 Brian Stafford <[email protected]>
* smtp-api.c
Check that all messages have a callback to read the message
headers and body.
* tokens.c
Check buffer length in read_atom().
Use of <ctype.h> eliminated.
* headers.c
init_header_table() checks for NULL pointers to avoid potential
SIGSEGVs.
2001-05-13 Brian Stafford <[email protected]>
* rfc822date.c configure.in
Use localtime_r() or gmtime_r() when building a thread safe
library.
* concatenate.[ch]
Fixed incorrect shortfall caclulation in concatenate()
potentially leading to buffer overrun.
Generally tidied up code.
* auth-client.c
auth_response() fails if (*context->client->init)() fails.
* base64.c
b64_encode() now checks the destination buffer length.
2001-05-11 Brian Stafford <[email protected]>
* libesmtp-config.in Makefile.am
Added config script to simplify compiling and linking.
* protocol.c configure.in
Use gethostbyname_r() when building a thread safe library.
2001-05-09 Brian Stafford <[email protected]>
* Makefile.am configure.in
libltdl is now part of the tarball and is installed if not
already present.
* protocol.c
do_session() will now make use of all the addresses returned
by gethostbyname(). This allows the DNS admin for the domain
to specify a number of MTAs which handle mail submission.
Failures trying to connect or when processing the greeting or
a response to the EHLO/HELO commands will cause a fallback server
to be tried. The name server will round robin the responses
balancing the load among the servers.
When reading the server greeting accept only 220 otherwise the
connection may have been made to a non-SMTP service.
2001-05-06 Version 0.7.0 released
---------------------------------
2001-05-06 Brian Stafford <[email protected]>
* protocol.c
session->auth_mechanisms was incorrectly freed in do_session().
This should have been done using destroy_auth_mechanisms().
Moved initialisation of the session variables to the start
of do_session(). This allows checks for some error conditions
to be done before attempting to connect to the SMTP server.
Updated code to select messages and recipients. This is to
permit calling smtp_start_session() more than once on a given
session. Second and subsequent calls should only deliver to
recipients not successful in a previous SMTP session. Removed
a few FIXME comments that no longer apply.
* smtp-api.c
smtp_recipient_reset_status() clears the 'complete' flag so that
the recipient will be retried on a subsequent smtp_start_session().
Added a new API smtp_recipient_check_complete(). This is true if
a subsequent call to smtp_start_session() would *not* attempt to
post the message to this recipient.
smtp_destroy_session() now frees memory allocated for remote
server hostname.
* protocol.c libesmtp-private.h smtp-api.c
Renamed 'sent' in smtp_recipient_t structure to 'complete'.
Not all completed recipients might have been sent.