aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver/ssl_util.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2021-12-08 11:37:33 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2021-12-08 11:37:33 +0000
commitb81a068aea8dca451b1f106ef191c0820db52c52 (patch)
tree4d1e9ee3ab573358d554925715e4d1f657258893 /src/libserver/ssl_util.c
parent315b61b3190f4b10f0710638bfaad27373fb3671 (diff)
downloadrspamd-b81a068aea8dca451b1f106ef191c0820db52c52.tar.gz
rspamd-b81a068aea8dca451b1f106ef191c0820db52c52.zip
[Rework] Allow to restore SSL handlers after keepalive pooling
Diffstat (limited to 'src/libserver/ssl_util.c')
-rw-r--r--src/libserver/ssl_util.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libserver/ssl_util.c b/src/libserver/ssl_util.c
index b4e905619..c229b6794 100644
--- a/src/libserver/ssl_util.c
+++ b/src/libserver/ssl_util.c
@@ -754,6 +754,21 @@ rspamd_ssl_connect_fd (struct rspamd_ssl_connection *conn, gint fd,
return TRUE;
}
+void
+rspamd_ssl_connection_restore_handlers (struct rspamd_ssl_connection *conn,
+ rspamd_ssl_handler_t handler,
+ rspamd_ssl_error_handler_t err_handler,
+ gpointer handler_data)
+{
+ conn->handler = handler;
+ conn->err_handler = err_handler;
+ conn->handler_data = handler_data;
+
+ rspamd_ev_watcher_stop (conn->event_loop, conn->ev);
+ rspamd_ev_watcher_init (conn->ev, conn->fd, EV_WRITE, rspamd_ssl_event_handler, conn);
+ rspamd_ev_watcher_start (conn->event_loop, conn->ev, conn->ev->timeout);
+}
+
gssize
rspamd_ssl_read (struct rspamd_ssl_connection *conn, gpointer buf,
gsize buflen)