summaryrefslogtreecommitdiffstats
path: root/tls.c
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2013-02-04 02:32:40 +0100
committermanuel <manuel@mausz.at>2013-02-04 02:32:40 +0100
commit8514473287c9594137c6fbc39f5619672ebc2430 (patch)
treea5b965d8c7b60dee396bf8ebe25dd3eddfaa6753 /tls.c
parent35ddb916045abafaa4ae2c778b9383059fa06726 (diff)
downloadqmail-8514473287c9594137c6fbc39f5619672ebc2430.tar.gz
qmail-8514473287c9594137c6fbc39f5619672ebc2430.tar.bz2
qmail-8514473287c9594137c6fbc39f5619672ebc2430.zip
[PATCH] qregex-starttls-2way-auth-20060423-mm
Diffstat (limited to 'tls.c')
-rw-r--r--tls.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/tls.c b/tls.c
new file mode 100644
index 0000000..aed5d57
--- /dev/null
+++ b/tls.c
@@ -0,0 +1,25 @@
1#include "exit.h"
2#include "error.h"
3#include <openssl/ssl.h>
4#include <openssl/err.h>
5
6int smtps = 0;
7SSL *ssl = NULL;
8
9void ssl_free(SSL *myssl) { SSL_shutdown(myssl); SSL_free(myssl); }
10void ssl_exit(int status) { if (ssl) ssl_free(ssl); _exit(status); }
11
12const char *ssl_error()
13{
14 int r = ERR_get_error();
15 if (!r) return NULL;
16 SSL_load_error_strings();
17 return ERR_error_string(r, NULL);
18}
19const char *ssl_error_str()
20{
21 const char *err = ssl_error();
22 if (err) return err;
23 if (!errno) return 0;
24 return (errno == error_timeout) ? "timed out" : error_str(errno);
25}