Error the build if DANE included but DNSSEC not available
[exim.git] / src / src / dane.c
CommitLineData
e682570f
TL
1/*************************************************
2* Exim - an Internet mail transport agent *
3*************************************************/
4
043b1248 5/* Copyright (c) University of Cambridge 1995 - 2012, 2014 */
e682570f
TL
6/* See the file NOTICE for conditions of use and distribution. */
7
043b1248
JH
8/* This module provides DANE (RFC6659) support for Exim. See also
9the draft RFC for DANE-over-SMTP, "SMTP security via opportunistic DANE TLS"
10(V. Dukhovni, W. Hardaker) - version 10, dated May 25, 2014.
11
12The code for DANE support with Openssl was provided by V.Dukhovni.
e682570f
TL
13
14No cryptographic code is included in Exim. All this module does is to call
15functions from the OpenSSL or GNU TLS libraries. */
16
17
18#include "exim.h"
19
20/* This module is compiled only when it is specifically requested in the
21build-time configuration. However, some compilers don't like compiling empty
22modules, so keep them happy with a dummy when skipping the rest. Make it
23reference itself to stop picky compilers complaining that it is unused, and put
24in a dummy argument to stop even pickier compilers complaining about infinite
25loops. */
26
27#ifndef EXPERIMENTAL_DANE
28static void dummy(int x) { dummy(x-1); }
29#else
30
31/* Enabling DANE without enabling TLS cannot work. Abort the compilation. */
043b1248
JH
32# ifndef SUPPORT_TLS
33# error DANE support requires that TLS support must be enabled. Abort build.
34# endif
35
fc6b96fa
JH
36/* DNSSEC support is also required */
37# ifndef RES_USE_DNSSEC
38# error DANE support requires that the DNS reolver library supports DNSSEC
39# endif
40
043b1248
JH
41# ifdef USE_GNUTLS
42# include "dane-gnu.c"
43# else
44# include "dane-openssl.c"
45# endif
e682570f
TL
46
47
48#endif /* EXPERIMENTAL_DANE */
49
50/* End of dane.c */