GnuTLS pretty much passes test suite. exim-4_80_RC1
authorPhil Pennock <pdp@exim.org>
Fri, 18 May 2012 03:04:36 +0000 (23:04 -0400)
committerPhil Pennock <pdp@exim.org>
Fri, 18 May 2012 03:04:36 +0000 (23:04 -0400)
commit619b2b25bb4e66b2b2a27d3cc84d6ba00ede0ba4
treec99a0fde2a303a71338a54f2df0ea0f43356d18c
parent1ec3f27dbd09d889f2839d3c24a095dc4efa49ac
GnuTLS pretty much passes test suite.

Fixed assumption that tls_certificate non-NULL in server when TLS
advertised.
Weakened an !S_ISREG() to an S_ISDIR() to keep the test-suite happy.

Using:
  do { rc = gnutls_handshake(state->session);
  } while ((rc == GNUTLS_E_AGAIN) || (rc == GNUTLS_E_INTERRUPTED));
is contra-indicated when you expect SIGALRM to be able to break you out
of the loop.  A little _too_ robust there.  Switching last part to:
  (rc == GNUTLS_E_INTERRUPTED && !sigalrm_seen)
is rather more productive.

Only test not passing is 2025, which makes major assumptions about
cipher suites and needs to be revisited to see what it's trying to
achieve.  We fail the test because we successfully deliver the message
without expected errors, because other ciphersuites are available, since
we're no longer limited to a *very* short list embedded in the Exim
code.  That sort of failure I can live with.
src/src/tls-gnu.c