changeset 4298:2e4639fd3c7c HEAD

Give a nicer error message if i2d_DHparams() returns 0, which apparently it does in some cases.
author Timo Sirainen <tss@iki.fi>
date Wed, 31 May 2006 16:54:21 +0300
parents 339ca5b4a3f2
children dacf4dc615ec
files src/master/ssl-init-openssl.c
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/master/ssl-init-openssl.c	Wed May 31 16:20:48 2006 +0300
+++ b/src/master/ssl-init-openssl.c	Wed May 31 16:54:21 2006 +0300
@@ -6,6 +6,7 @@
 
 #ifdef HAVE_OPENSSL
 
+#include <openssl/err.h>
 #include <openssl/ssl.h>
 
 /* 2 or 5. Haven't seen their difference explained anywhere, but 2 is the
@@ -24,7 +25,13 @@
 
 	len = i2d_DHparams(dh, NULL);
 	if (len < 0)
-		i_fatal("i2d_DHparams() failed");
+		i_fatal("i2d_DHparams() failed: %lu", ERR_get_error());
+
+	if (len == 0) {
+		i_fatal("i2d_DHparams() returned 0 for data from "
+			"DH_generate_parameters(bits=%d, generator=%d)",
+			bitsize, DH_GENERATOR);
+	}
 
 	buf = p = i_malloc(len);
 	len = i2d_DHparams(dh, &p);