76 #define STR vstring_str
80 void tls_session_stop(TLS_APPL_STATE *unused_ctx,
VSTREAM *stream,
int timeout,
81 int failure, TLS_SESS_STATE *TLScontext)
83 const char *myname =
"tls_session_stop";
90 msg_panic(
"%s: stream has no active TLS context", myname);
101 retval = tls_bio_shutdown(
vstream_fileno(stream), timeout, TLScontext);
105 tls_free_context(TLScontext);
106 tls_stream_stop(stream);
111 VSTRING *tls_session_passivate(SSL_SESSION *session)
113 const char *myname =
"tls_session_passivate";
123 estimate = i2d_SSL_SESSION(session, (
unsigned char **) 0);
125 msg_warn(
"%s: i2d_SSL_SESSION failed: unable to cache session", myname);
134 ptr = (
unsigned char *)
STR(session_data);
135 actual_size = i2d_SSL_SESSION(session, &ptr);
136 if (actual_size != estimate) {
137 msg_warn(
"%s: i2d_SSL_SESSION failed: unable to cache session", myname);
143 return (session_data);
148 SSL_SESSION *tls_session_activate(
const char *session_data,
int session_data_len)
150 #if (OPENSSL_VERSION_NUMBER < 0x0090707fL)
153 #define BOGUS_CONST const
155 SSL_SESSION *session;
156 BOGUS_CONST
unsigned char *ptr;
161 ptr = (BOGUS_CONST
unsigned char *) session_data;
162 session = d2i_SSL_SESSION((SSL_SESSION **) 0, &ptr, session_data_len);
NORETURN msg_panic(const char *fmt,...)
void msg_warn(const char *fmt,...)
VSTRING * vstring_alloc(ssize_t len)
VSTRING * vstring_free(VSTRING *vp)
#define vstream_fileno(vp)
#define VSTRING_AT_OFFSET(vp, offset)