I've seen this problem to be open quite long time, and I believe it occurs
because exim tries to generate Diffie Hellman parameters on the fly when they
don't exist. This situation may occur when the gnutls-params file is missing.
I propose some solutions.
1. Return an error if the gnutls-params file does not exist. (sol1.patch)
2. Generate the parameters in a non-blocking way using /dev/urandom.
(sol2.patch)
3. Read static parameters if the file does not exist.
I believe the third solution is the most elegant. Generating these parameters
on the fly (sol2) even if /dev/urandom is used is time consuming and not
really appropriate for a server. The idea is to have them pregenerated.
Using static parameters (sol3) does not harm in any way.
If somebody wants different ones he can generate them.
I've seen this problem to be open quite long time, and I believe it occurs
because exim tries to generate Diffie Hellman parameters on the fly when they
don't exist. This situation may occur when the gnutls-params file is missing.
I propose some solutions.
1. Return an error if the gnutls-params file does not exist. (sol1.patch)
2. Generate the parameters in a non-blocking way using /dev/urandom.
(sol2.patch)
3. Read static parameters if the file does not exist.
I believe the third solution is the most elegant. Generating these parameters
on the fly (sol2) even if /dev/urandom is used is time consuming and not
really appropriate for a server. The idea is to have them pregenerated.
Using static parameters (sol3) does not harm in any way.
If somebody wants different ones he can generate them.
So the