110 #define TLSPROXY_INIT_TIMEOUT 10
114 #define STR vstring_str
118 VSTREAM *tls_proxy_open(
const char *service,
int flags,
120 const char *peer_addr,
121 const char *peer_port,
127 static VSTRING *tlsproxy_service = 0;
128 static VSTRING *remote_endpt = 0;
133 if (tlsproxy_service == 0) {
144 msg_warn(
"connect to %s service: %m",
STR(tlsproxy_service));
163 msg_warn(
"error sending request to %s service: %m",
164 STR(tlsproxy_service));
184 msg_warn(
"%s service role \"%s\" is not available",
185 STR(tlsproxy_service),
202 msg_warn(
"sending file handle to %s service: %m",
203 STR(tlsproxy_service));
207 return (tlsproxy_stream);
212 TLS_SESS_STATE *tls_proxy_context_receive(
VSTREAM *proxy_stream)
214 TLS_SESS_STATE *tls_context;
216 tls_context = (TLS_SESS_STATE *)
mymalloc(
sizeof(*tls_context));
221 tls_proxy_context_free(tls_context);
224 return (tls_context);
230 void tls_proxy_context_free(TLS_SESS_STATE *tls_context)
232 if (tls_context->peer_CN)
233 myfree(tls_context->peer_CN);
234 if (tls_context->issuer_CN)
235 myfree(tls_context->issuer_CN);
236 if (tls_context->peer_cert_fprint)
237 myfree(tls_context->peer_cert_fprint);
238 if (tls_context->protocol)
239 myfree((
void *) tls_context->protocol);
240 if (tls_context->cipher_name)
241 myfree((
void *) tls_context->cipher_name);
242 myfree((
void *) tls_context);
#define TLSPROXY_INIT_TIMEOUT
#define RECV_ATTR_INT(name, val)
#define MAIL_ATTR_TIMEOUT
int vstream_fclose(VSTREAM *stream)
#define TLS_PROXY_FLAG_ROLE_CLIENT
void msg_warn(const char *fmt,...)
VSTRING * vstring_alloc(ssize_t len)
#define MAIL_ATTR_REMOTE_ENDPT
VSTRING * vstring_sprintf(VSTRING *vp, const char *format,...)
#define SEND_ATTR_INT(name, val)
int vstream_fflush(VSTREAM *stream)
#define TLS_PROXY_FLAG_ROLE_SERVER
#define vstream_fileno(vp)
#define RECV_ATTR_FUNC(func, val)
#define SEND_ATTR_STR(name, val)
#define MAIL_CLASS_PRIVATE
VSTREAM * vstream_fdopen(int fd, int flags)
void * mymalloc(ssize_t len)