#include "server.h"
#include "serv_crypto.h"
#include "sysdep_decls.h"
-#include "serv_extensions.h"
#include "citadel.h"
#include "config.h"
+#include "ctdl_module.h"
+/* TODO: should we use the standard module init stuff to start this? */
+/* TODO: should we register an event handler to call destruct_ssl? */
+
#ifdef HAVE_OPENSSL
SSL_CTX *ssl_ctx; /* SSL context */
pthread_mutex_t **SSLCritters; /* Things needing locking */
return (unsigned long) pthread_self();
}
+void destruct_ssl(void)
+{
+ int a;
+ CtdlUnregisterProtoHook(cmd_stls, "STLS");
+ CtdlUnregisterProtoHook(cmd_gtls, "GTLS");
+ for (a = 0; a < CRYPTO_num_locks(); a++)
+ free(SSLCritters[a]);
+ free (SSLCritters);
+}
+
void init_ssl(void)
{
SSL_METHOD *ssl_method;