ph10 2005/06/28 09:49:39 BST
Modified files:
exim-doc/doc-txt ChangeLog
exim-src ACKNOWLEDGMENTS
exim-src/src tls-gnu.c
exim-test-orig/AutoTest/scripts 194 606
Log:
Fixed GnuTLS bug that stopped it generating its parameters cache file if
the file did not previously exist.
Revision Changes Path
1.176 +6 -1 exim/exim-doc/doc-txt/ChangeLog
1.28 +2 -1 exim/exim-src/ACKNOWLEDGMENTS
1.10 +11 -3 exim/exim-src/src/tls-gnu.c
1.3 +4 -0 exim/exim-test-orig/AutoTest/scripts/194
1.3 +1 -0 exim/exim-test-orig/AutoTest/scripts/606
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.175
retrieving revision 1.176
diff -u -r1.175 -r1.176
--- ChangeLog 27 Jun 2005 18:34:35 -0000 1.175
+++ ChangeLog 28 Jun 2005 08:49:38 -0000 1.176
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.175 2005/06/27 18:34:35 tom Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.176 2005/06/28 08:49:38 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -210,6 +210,12 @@
ones like T_AAAA, and defining it itself. I've added checks for all the
record types that Exim uses.
+PH/31 When using GnuTLS, if the parameters cache file did not exist, Exim was
+ not automatically generating a new one, as it is supposed to. This
+ prevented TLS from working. If the file did exist, but contained invalid
+ data, a new version was generated, as expected. It was only the case of a
+ non-existent file that was broken.
+
TK/10 Domainkeys: Fix a bug in verification that caused a crash in conjunction
with a change in libdomainkeys > 0.64.
@@ -218,7 +224,6 @@
precedence over the domain-wide flag.
TK/12 Cleared some compiler warnings related to SPF, SRS and DK code.
-
Exim version 4.51
Index: ACKNOWLEDGMENTS
===================================================================
RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- ACKNOWLEDGMENTS 16 Jun 2005 15:48:58 -0000 1.27
+++ ACKNOWLEDGMENTS 28 Jun 2005 08:49:38 -0000 1.28
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.27 2005/06/16 15:48:58 ph10 Exp $
+$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.28 2005/06/28 08:49:38 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -20,7 +20,7 @@
Philip Hazel
Lists created: 20 November 2002
-Last updated: 16 June 2005
+Last updated: 28 June 2005
THE OLD LIST
@@ -185,6 +185,7 @@
SMTP error message features
Andreas Metzler Patch for message_id_header_domain
Suggested patch for multi-config files in scripts bug
+ GnuTLS non-existent parameter file bug fix
Alex Miller Suggested readline() patch
Patch for LDAP_RES_SEARCH_REFERENCE handling
Support for the DrWeb content scanner
Index: tls-gnu.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/tls-gnu.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- tls-gnu.c 27 Jun 2005 14:29:44 -0000 1.9
+++ tls-gnu.c 28 Jun 2005 08:49:38 -0000 1.10
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/tls-gnu.c,v 1.9 2005/06/27 14:29:44 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/tls-gnu.c,v 1.10 2005/06/28 08:49:38 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -256,7 +256,7 @@
init_rsa_dh(host_item *host)
{
int fd;
-int ret = -1;
+int ret;
gnutls_datum m;
uschar filename[200];
@@ -299,6 +299,7 @@
(void)close(fd);
ret = gnutls_rsa_params_import_pkcs1(rsa_params, &m, GNUTLS_X509_FMT_PEM);
+
if (ret < 0)
{
DEBUG(D_tls)
@@ -318,7 +319,13 @@
/* If the file does not exist, fall through to compute new data and cache it.
If there was any other opening error, it is serious. */
-else if (errno != ENOENT)
+else if (errno == ENOENT)
+ {
+ ret = -1;
+ DEBUG(D_tls)
+ debug_printf("parameter cache file %s does not exist\n", filename);
+ }
+else
return tls_error(string_open_failed(errno, "%s for reading", filename),
host, 0);
@@ -391,7 +398,8 @@
return tls_error(string_sprintf("failed to rename %s as %s: %s",
tempfilename, filename, strerror(errno)), host, 0);
- DEBUG(D_tls) debug_printf("wrote RSA and D-H parameters to file\n");
+ DEBUG(D_tls) debug_printf("wrote RSA and D-H parameters to file %s\n",
+ filename);
}
DEBUG(D_tls) debug_printf("initialized RSA and D-H parameters\n");
Index: 194
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/scripts/194,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- 194 22 Jun 2005 14:18:12 -0000 1.2
+++ 194 28 Jun 2005 08:49:39 -0000 1.3
@@ -1,4 +1,8 @@
0 TLS (client: TLS setup fails - retry in clear)
+really rm DIR/spool/gnutls-params
+****
+# This call should recreate the parameters that are removed above
+0
exim -DSERVER=server -bd -oX 1225
****
0
Index: 606
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/scripts/606,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- 606 22 Jun 2005 14:18:12 -0000 1.2
+++ 606 28 Jun 2005 08:49:39 -0000 1.3
@@ -11,3 +11,4 @@
0
killdaemon
****
+tls_test